TMENU
Warning
This TypoScript object is still available to provide backward compatibility for old sites. When creating a new menu or refactoring an existing one always use the menu data processor and a Fluid template.
For examples on how to use the TMENU please refer to old version of this document, for example TMENU-.
TMENU item states
These properties are all the item states used by TMENU
.
Warning
Be aware to properly escape menu item content in order to prevent
Cross-site scripting vulnerabilities. It is therefore highly recommended
to use std
in all TMENU item states.
The following Item states are listed from the least to the highest priority:
Name | Type | Default |
---|---|---|
boolean / TMENUITEM | 1 (true) | |
boolean / TMENUITEM | 0 | |
boolean / TMENUITEM | 0 | |
boolean / TMENUITEM | 0 | |
boolean / TMENUITEM | 0 | |
boolean / TMENUITEM | 0 | |
boolean / TMENUITEM | 0 | |
boolean / TMENUITEM | 0 | |
boolean / TMENUITEM | ||
boolean / TMENUITEM |
NO
IFSUB
ACT
ACTIFSUB
CUR
CURIFSUB
USR
SPC
USERDEF1
-
User-defined, see itemArrayProcFunc for details on how to use this.
You can set the ITEM_STATE values USERDEF1 and USERDEF2 (+...RO) from a script/user function processing the menu item array. See the property itemArrayProcFunc of the menu objects.
USERDEF2
Properties
Name | Type | Default |
---|---|---|
boolean / stdWrap | ||
boolean | ||
string ("all" / "header") | ||
boolean | ||
integer / stdWrap | 0 | |
string | self | |
integer | ||
stdWrap | ||
wrap | ||
function name | ||
string | ||
integer / stdWrap | ||
integer / stdWrap | ||
integer / stdWrap +calc | ||
boolean | ||
integer (page id) | ||
string | ||
integer (page ID) / keyword "NONE" | ||
string / stdWrap | ||
function name | ||
string / optionSplit |
expAll
sectionIndex
-
- Type
- boolean
If this property is set, then the menu will not consist of links to pages on the "next level" but rather of links to the parent page to the menu, and in addition "#"-links to the cObjects rendered on the page. In other words, the menu items will be a section index with links to the content elements on the page (by default with colPos=0!).
If you set this, all content elements (from tt_content table) of "Column" = "Normal" and the "Index"-check box clicked are selected. This corresponds to the "Menu/Sitemap" content element when "Section index" is selected as type.
sectionIndex.type
-
- Type
- string ("all" / "header")
- "all"
- The "Index"-checkbox is not considered and all content elements - by default with colPos=0 - are selected.
- "header"
- Only content elements with a visible header-layout (and a non-empty 'header'-field!) are selected. In other words, if the header layout of an element is set to "Hidden" then the page will not appear in the menu.
sectionIndex.includeHiddenHeaders
-
- Type
- boolean
If you set this and sectionIndex.type is set to "header", also elements with a header layout set to "Hidden" will appear in the menu.
sectionIndex.useColPos
-
This property allows you to set the colPos which should be used in the where clause of the query. Possible values are integers, default is "0".
Any positive integer and 0 will lead to a where clause containing "colPos=x" with x being the aforementioned integer. A negative value drops the filter "colPos=x" completely.
tt_content.menu.20.3.1.sectionIndex.useColPos = -1
Copied!
target
-
- Type
- string
- Default
- self
Target of the menu links
forceTypeValue
-
- Type
- integer
If set, the
&type
parameter of the link is forced to this value regardless of target.
stdWrap
-
- Type
- stdWrap
Wraps the whole block of sub items.
wrap
-
- Type
- wrap
Wraps the whole block of sub items, but only if there were items in the menu!
IProcFunc
-
- Type
- function name
The internal array "I" is passed to this function and expected returned as well. Subsequent to this function call the menu item is compiled by implode()'ing the array $I[parts] in the passed array. Thus you may modify this if you need to.
alternativeSortingField
-
- Type
- string
Normally the menu items are sorted by the fields "sorting" in the pages- and tt_content-table. Here you can enter a list of fields that is used in the SQL- "ORDER BY" statement instead. You can also provide the sorting order.
Limitations:
This property works with normal menus, sectionsIndex menus and special-menus of type "directory".
minItems
maxItems
begin
debugItemConf
-
- Type
- boolean
Outputs (by the
debug
function) the configuration arrays for each menu item. Useful to debug optionSplit things and such...()
overrideId
-
- Type
- integer (page id)
If set, then all links in the menu will point to this pageid. Instead the real uid of the page is sent by the parameter "&real_uid=[uid]".
This feature is smart, if you have inserted a menu from somewhere else, perhaps a shared menu, but wants the menu items to call the same page, which then generates a proper output based on the real_uid.
addParams
-
- Type
- string
Additional parameter for the menu links.
Must be rawurlencoded.
showAccessRestrictedPages
-
- Type
- integer (page ID) / keyword "NONE"
If set, pages in the menu will include pages with frontend user group access enabled. However the page is of course not accessible and therefore the URL in the menu will be linked to the page with the ID of this value. On that page you could put a login form or other message.
If the value is "NONE" the link will not be changed and the site will perform page-not-found handling when clicked (which can be used to capture the event and act accordingly of course). This means that the link's URL will point to the page even if it is not accessible by the current frontend user. Note that the default behavior of page-not-found handling is to show the parent page instead.
Properties:
.addParam: Additional parameter for the URL, which can hold two markers; ###RETURN_URL### which will be substituted with the link the page would have had if it had been accessible and ###PAGE_ID### holding the page ID of the page coming from (could be used to look up which fe_groups was required for access.
.ATagParams: Add custom attributes to the anchor tag.
additionalWhere
itemArrayProcFunc
-
- Type
- function name
The first variable passed to this function is the "menuArr" array with the menu items as they are collected based on the type of menu.
You're free to manipulate or add to this array as you like. Just remember to return the array again!
Note:
.parentObj property is hardcoded to be a reference to the calling typo3/sysext/frontend/Classes/ContentObject/Menu/ object. Here you'll find e.g. ->id to be the uid of the menu item generating a submenu and such.
Presetting element state
You can override element states like SPC, IFSUB, ACT, CUR or USR by setting the key ITEM_STATE in the page records.
submenuObjSuffixes
-
- Type
- string / optionSplit
Defines a suffix for alternative sub-level menu objects.