‪TYPO3CMS  ‪main
TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor Class Reference
Inheritance diagram for TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor:
TYPO3\CMS\Frontend\ContentObject\DataProcessorInterface

Public Member Functions

 __construct (protected readonly ContentDataProcessor $contentDataProcessor, protected readonly ContentObjectFactory $contentObjectFactory,)
 
 setContentObjectRenderer (ContentObjectRenderer $cObj)
 
array process (ContentObjectRenderer $cObj, array $contentObjectConfiguration, array $processorConfiguration, array $processedData)
 
 replacePlaceholderInRenderedMenuItem (array $menuItem)
 
string getFieldAsJson (string $content, array $conf)
 

Protected Member Functions

 getConfigurationValue (string $key)
 
 getRequest ()
 
 getCurrentSite ()
 
 jsonEncode ($value)
 
 validateConfiguration ()
 
 prepareConfiguration ()
 
 buildConfiguration ()
 
 validateAndBuildConfiguration ()
 

Protected Attributes

const LINK_PLACEHOLDER = '###LINKPLACEHOLDER###'
 
ContentObjectRenderer $cObj
 
array $processorConfiguration
 
array $allowedConfigurationKeys
 
array $removeConfigurationKeysForHmenu
 
array $menuConfig
 
array $menuLevelConfig
 
array $menuDefaults
 

Detailed Description

This menu processor generates a json encoded menu string that will be decoded again and assigned to FLUIDTEMPLATE as variable.

Options: if - TypoScript if condition languages - A list of languages id's (e.g. 0,1,2) to use for the menu creation or 'auto' to load from system or site languages as - The variable to be used within the result

Example TypoScript configuration: 10 = TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor 10 { as = languagenavigation }

Definition at line 46 of file LanguageMenuProcessor.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::__construct ( protected readonly ContentDataProcessor  $contentDataProcessor,
protected readonly ContentObjectFactory  $contentObjectFactory 
)

Definition at line 219 of file LanguageMenuProcessor.php.

Member Function Documentation

◆ buildConfiguration()

TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::buildConfiguration ( )
protected

Build the menu configuration so it can be treated by HMENU cObject

Definition at line 314 of file LanguageMenuProcessor.php.

References TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor\$menuLevelConfig.

Referenced by TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor\validateAndBuildConfiguration().

◆ getConfigurationValue()

TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::getConfigurationValue ( string  $key)
protected

Get configuration value from processorConfiguration

Definition at line 236 of file LanguageMenuProcessor.php.

Referenced by TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor\process().

◆ getCurrentSite()

TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::getCurrentSite ( )
protected

Returns the currently configured "site" if a site is configured (= resolved) in the current request.

Definition at line 249 of file LanguageMenuProcessor.php.

References TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor\getRequest().

Referenced by TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor\getFieldAsJson().

◆ getFieldAsJson()

string TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::getFieldAsJson ( string  $content,
array  $conf 
)

Returns the data from the field and language submitted by $conf in JSON format

Parameters
string$content‪Empty string (no content to process)
array$conf‪TypoScript configuration
Returns
‪string JSON encoded data
Exceptions

Definition at line 404 of file LanguageMenuProcessor.php.

References TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor\getCurrentSite(), and TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor\jsonEncode().

◆ getRequest()

TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::getRequest ( )
protected

◆ jsonEncode()

TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::jsonEncode (   $value)
protected

◆ prepareConfiguration()

◆ process()

array TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::process ( ContentObjectRenderer  $cObj,
array  $contentObjectConfiguration,
array  $processorConfiguration,
array  $processedData 
)
Parameters
ContentObjectRenderer$cObj‪The data of the content element or page
array$contentObjectConfiguration‪The configuration of Content Object
array$processorConfiguration‪The configuration of this processor
array$processedData‪Key/value store of processed data (e.g. to be passed to a Fluid View)
Returns
‪array the processed data as key/value store

Implements TYPO3\CMS\Frontend\ContentObject\DataProcessorInterface.

Definition at line 354 of file LanguageMenuProcessor.php.

References TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor\$cObj, TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor\$processorConfiguration, TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor\getConfigurationValue(), TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer\getRequest(), and TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor\validateAndBuildConfiguration().

◆ replacePlaceholderInRenderedMenuItem()

TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::replacePlaceholderInRenderedMenuItem ( array  $menuItem)

This UserFunc gets the link and the target

Definition at line 386 of file LanguageMenuProcessor.php.

References TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor\jsonEncode().

◆ setContentObjectRenderer()

TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::setContentObjectRenderer ( ContentObjectRenderer  $cObj)

This is called from UserContentObject via ContentObjectRenderer->callUserFunction() for nested menu items - those use a USER content object for getFieldAsJson().

Definition at line 228 of file LanguageMenuProcessor.php.

References TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor\$cObj.

◆ validateAndBuildConfiguration()

TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::validateAndBuildConfiguration ( )
protected

◆ validateConfiguration()

TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::validateConfiguration ( )
protected

Member Data Documentation

◆ $allowedConfigurationKeys

array TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::$allowedConfigurationKeys
protected
Initial value:
= [
'if',
'if.',
'languages',
'languages.',
'as',
'addQueryString',
'addQueryString.',
]

Allowed configuration keys for menu generation, other keys will throw an exception to prevent configuration errors.

Definition at line 56 of file LanguageMenuProcessor.php.

◆ $cObj

◆ $menuConfig

array TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::$menuConfig
protected
Initial value:
= [
'special' => 'language',
'addQueryString' => 1,
'wrap' => '[|]',
]

Definition at line 76 of file LanguageMenuProcessor.php.

◆ $menuDefaults

array TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::$menuDefaults
protected
Initial value:
= [
'as' => 'languagemenu',
]

Definition at line 215 of file LanguageMenuProcessor.php.

◆ $menuLevelConfig

array TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::$menuLevelConfig
protected

◆ $processorConfiguration

array TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::$processorConfiguration
protected

◆ $removeConfigurationKeysForHmenu

array TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::$removeConfigurationKeysForHmenu
protected
Initial value:
= [
'languages',
'languages.',
'as',
]

Remove keys from configuration that should not be passed to HMENU to prevent configuration errors

Definition at line 70 of file LanguageMenuProcessor.php.

◆ LINK_PLACEHOLDER

const TYPO3\CMS\Frontend\DataProcessing\LanguageMenuProcessor::LINK_PLACEHOLDER = '###LINKPLACEHOLDER###'
protected

Definition at line 48 of file LanguageMenuProcessor.php.