Categories HMENU¶
Makes a menu of pages belonging to one or more categories. If a page belongs to several of the selected categories, it will appear only once. By default pages are unsorted.
Each in the resulting array of pages gets an additional entry with key
_categories
containing the list of categories the page belongs to,
as a comma-separated list of uid's. It can be accessed with
field or data.
like any other field.
Properties¶
Name | Type | Default |
---|---|---|
list of categories / stdWrap | ||
string / stdWrap |
categories
|
|
string / stdWrap | ||
asc or desc / stdWrap
|
asc
|
-
special.
¶value -
- Type
- list of categories / stdWrap
- Example
- Example: List pages in categories with UID 1 and 2
Comma-separated list of categories UID's.
-
special.
¶relation -
Name of the categories-relation field to use for building the list of categorized pages, as there can be several such fields on a given table.
-
special.
¶sorting -
Which field from the
pages
table should be used for sorting. Language overlays are taken into account, so alphabetical sorting on the "title" field, for example, will work.If an unknown field is defined, the pages will not be sorted.
Examples¶
Example: Menu of pages in a certain category¶
The content element Menu > Categorized pages provided by the system
extension EXT:fluid_styled_content is configured with a Menu
which is based on the options of the HMENU and provides
all its properties:
# Pages for selected categories:
# ...
#
# CType: menu_categorized_pages
tt_content.menu_categorized_pages =< lib.contentElement
tt_content.menu_categorized_pages {
templateName = MenuCategorizedPages
dataProcessing {
10 = menu
10 {
special = categories
special {
value.field = selected_categories
relation.field = category_field
sorting = title
order = asc
}
dataProcessing {
10 = files
10 {
references.fieldName = media
}
}
}
}
}
The following Fluid template can be used to style the menu:
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="Default" />
<f:section name="Main">
<f:if condition="{menu}">
<ul>
<f:for each="{menu}" as="page">
<li>
<a href="{page.link}"{f:if(condition: page.target, then: ' target="{page.target}"')}{f:if(condition: page.current, then: ' aria-current="page"')} title="{page.title}">
<span>{page.title}</span>
</a>
</li>
</f:for>
</ul>
</f:if>
</f:section>
</html>
Example: List pages in categories with UID 1 and 2¶
20 = HMENU
20 {
special = categories
special.value = 1,2
1 = TMENU
1.NO {
// ...
}
}