Full TYPO3 category tree |
This is a very plain way to create a category tree and the structure in the example is limited to 3 independent main categories (Events, Products, Staff).
Quite often, the shown example category tree is used system wide in TYPO3 and all main categories are shown for all record types. This can be confusing for editors, since when you for example want to assign categories for e.g. event records, why should one see and be able to select the categories "Products" and "Staff" including all subcategories?
Fortunately TYPO3 can be configured to limit the category tree for tables to a given root category. As an example, I limit the shown categories for event records to only "Event" categories. I assume that the category "Events" has the sys_category UID 1.
PageTS example
TCEFORM.tx_sfeventmgt_domain_model_event.category.config.treeConfig.rootUid = 1
In PageTS such configuration options can be set for any record as long as the following configuration path is met: TCEFORM.[tableName].[fieldName].[propertyName]
The fieldName is usually "categories" or "category", but this can also be different depending on how categories are implemented in 3rd party extensions.
The PageTS setting can also be set in TCA as shown below.
TCA example
$GLOBALS['TCA']['tx_sfeventmgt_domain_model_event']['columns']['category']['config']['treeConfig']['rootUid'] = 1;
As a result, the category tree for event records is now limited to the category "Events" and all subcategories.
TYPO3 category tree limited to a subcategories of one main category |
I think this is way more clear for an editor than it was before. In general, this can be configured for every table in the TYPO3 TCA (e.g. pages, files, extensions, ...)
The configuration only allows to define one UID as root for the category tree. If more flexibility is needed to limiting the category tree, then TCEFORM.[tableName].[fieldName].[config][foreign_table_where] may be the place to add own custom conditions.