causal / staffdirectory
Directory of groups of persons and their department membership with RDFa support
Installs: 86
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 1
Open Issues: 0
Type:typo3-cms-extension
Requires
- php: >=7.4.0 <=7.4.99 || >=8.0.0 <=8.2.99
- giggsey/libphonenumber-for-php: ^8.12
- sjbr/static-info-tables: ^11.5 || ^12.4
- typo3/cms-core: ^11 || ^12
This package is auto-updated.
Last update: 2024-10-12 08:23:37 UTC
README
Suggested configuration
- Create a storage folder for your groups and persons
-
Edit its Page TSconfig to have:
mod.web_list.allowedNewTables ( fe_users, tx_staffdirectory_domain_model_organization ) # This makes adding new fe_users much easier, adapt to your needs! TCAdefaults.fe_users { usergroup = 1 username = nologin- password = __invalid__ country = CH tx_extbase_type = tx_staffdirectory }
-
Routing configuration
Nice URL can be configured by editing your site configuration (stored in
file config/sites/<site>/config.yaml
):
routeEnhancers:
Staffdirectory:
type: Extbase
limitToPages:
- <detail-page-of-a-person>
- <detail-page-of-an-organization>
extension: Staffdirectory
plugin: Plugin
routes:
-
routePath: '/p/{person-name}'
_controller: 'Plugin::person'
_arguments:
person-name: person
-
routePath: '/o/{organization-name}'
_controller: 'Plugin::organization'
_arguments:
organization-name: organization
aspects:
person-name:
type: PersistedAliasMapper
tableName: fe_users
routeFieldName: path_segment
organization-name:
type: PersistedAliasMapper
tableName: tx_staffdirectory_domain_model_organization
routeFieldName: path_segment
Note: you may omit the limitToPages
configuration but are advised to keep it.
Sitemap configuration
You may generate a sitemap for your staff directory by adding the following to your site's TypoScript (requires EXT:seo):
plugin.tx_seo.config.xmlSitemap.sitemaps {
persons {
provider = Causal\Staffdirectory\Seo\PersonsXmlSitemapDataProvider
config {
pid = PERSONS_STORAGE_UID
recursive = 0
url {
pageId = SINGLE_PERSON_PAGE_UID
fieldToParameterMap {
uid = tx_staffdirectory_plugin[person]
}
additionalGetParameters {
tx_staffdirectory_plugin.controller = Plugin
tx_staffdirectory_plugin.action = person
}
useCacheHash = 1
}
}
}
}
You should naturally adapt PERSONS_STORAGE_UID
and SINGLE_PERSON_PAGE_UID
to your actual page UIDs.
Further reading: https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Seo/XmlSitemap.html