LanguageMenuProcessor¶
This menu processor generates a list of language menu items which can be
assigned to the FLUIDTEMPLATE
as a variable.
Hint
The third party extension
b13/menus also provides
a language menu processors: B13\Menus\DataProcessing\LanguageMenu
.
Refer to the manual of the extension b13/menus for more information.
Options:¶
-
if
¶ Required: false Type: if condition Default: ”” If the condition is not met the data is not processed
-
languages
¶ Required: true Type: string, stdWrap Default: “auto” Example: “0,1,2” A list of comma separated language IDs (e.g. 0,1,2) to use for the menu creation or
auto
to load from site configuration
-
addQueryString.exclude
¶ Required: true Type: string, stdWrap Default: ”” Example: “gclid,contrast” A list of comma separated parameter names to be excluded from the language menu urls.
-
as
¶ Required: false Type: string Default: defaults to the fieldName The variable’s name to be used in the Fluid template
Example: Menu of all language from site configuration¶
Please see also About the examples.
TypoScript¶
Using the LanguageMenuProcessor
the following scenario is possible:
tt_content {
examples_dataproclang =< lib.contentElement
examples_dataproclang {
templateName = DataProcLangMenu
dataProcessing.10 = TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor
dataProcessing.10 {
languages = auto
as = languageNavigation
}
}
}
The Fluid template¶
This generated menu can be used in Fluid like this:
<html data-namespace-typo3-fluid="true" xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers">
<h2>Data in variable languageNavigation</h2>
<f:debug inline="true">{languageNavigation}</f:debug>
<h2>Output</h2>
<f:if condition="{languageNavigation}">
<ul id="language" class="language-menu">
<f:for each="{languageNavigation}" as="item">
<li class="{f:if(condition: item.active, then: 'active')}
{f:if(condition: item.available, else: ' text-muted')}">
<f:if condition="{item.available}">
<f:then>
<a href="{item.link}" hreflang="{item.hreflang}"
title="{item.navigationTitle}">
<span>{item.navigationTitle}</span>
</a>
</f:then>
<f:else>
<span>{item.navigationTitle}</span>
</f:else>
</f:if>
</li>
</f:for>
</ul>
</f:if>
</html>
Output¶
The array now contains information on all languages as defined in the site
configuration. As the current page is not translated into German, the
German language has the item.available
set to false. It therefore
doesn’t get linked in the template.
