[TYPO3-mvc] Pass dynamic parameters to extbase plugin by typoscript

Franz Koch typo3.RemoveForMessage at elements-net.de
Wed Oct 19 10:54:57 CEST 2011


Hi,

> thanks for your answer. Your code works. The problem is that you get only static parameters. But I want the uid to be dynamically taken from the TypoScript so that I can evaluate the tag data.
>
> This:
>
> settings.uid.dataWrap = {parameters:uid}
>
> does not work.

The settings array does not contain any TypoScript logic and is not 
processed by any TS parser. It's actually impossible to know which 
setting should be automatically processed and which ones not. So in this 
case you have to convert the $this->settings array back to the 
'dot-syntax' array usually created by TS and then process it with the 
stdWrap function of the contentObject.

# Extbase 1.4 code:
$typoScriptService = 
$this->objectManager->get('Tx_Extbase_Service_TypoScriptService');
$settingsAsTypoScriptArray = 
$typoScriptService->convertPlainArrayToTypoScriptArray($this->settings);
// now override the 'uid' value in the settings array with the processed 
value
$this->settings['uid'] = 
$this->configurationManager->getContentObject()->stdWrap($settingsAsTypoScriptArray['uid'], 
$settingsAsTypoScriptArray['uid.']);


You might want to do the processing at a very early stage in the 
controllers processing chain in order to have the processed settings 
available everywhere. If you do the processing in your action then you 
might have to reassign the settings array to the view in order to have 
the updated settings available there.

-- 
kind regards,
Franz Koch


More information about the TYPO3-project-typo3v4mvc mailing list