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
special.sorting
special.order
-
- Type
asc
ordesc
/ stdWrap- Default
asc
Order in which the pages should be ordered, ascending or descending. Should be
asc
ordesc
, case-insensitive. Will default toasc
in case of invalid value.
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 {
// ...
}
}