Hallo, ich rufe den SelectViewHelper folgendermaßen auf:
[code] <f:form.select options="{leistungen}" property="uebergeordneteLeistung" additionalAttributes="{data-placeholder: 'Wählen Sie eine Leistung...'}" optionLabelField="bezeichnung" multiple="0" class="form-control chosen"/> [/code] Nun habe ich aber das Problem, dass der Text für das Attribut 'data-placeholder' aus einem Languagefile kommen soll. Meine Idee wäre gewesen, einen neuen ViewHelper zu schreiben, der erst schaut ob was zu übersetzen ist und dann einfach an den vorhanden SelectViewHelper weiterleitet. [code] <kkvh:form.selectWithTranslation options="{leistungen}" property="uebergeordneteLeistung" additionalAttributes="{data-placeholder: 'LLL:EXT:kkbaybw/Resources/Private/Language/locallang.xlf:be.chooseLeistung;bla'}" optionLabelField="bezeichnung" multiple="0" class="form-control chosen"/> [/code] [code] class SelectWithTranslationViewHelper extends SelectViewHelper { protected $viewHelperArgs = null; public function init() { $this->viewHelperArgs = $this->arguments; } public function render() { $this->init(); $this->_getAttributeFromArgs($this->viewHelperArgs); $this->setArguments($this->viewHelperArgs); return parent::render(); } protected function _getAttributeFromArgs($arguments) { foreach ($arguments as $attribute => $value) { if (is_array($value)) { $result = $this->_getAttributeFromArgs($value); $this->viewHelperArgs[$attribute] = $result; } else { if (strpos(strtolower($value), 'lll:') !== false) { $parts[] = $value; if (strpos($value, ';') !== false) { $parts = explode(';', $value); } if (count($parts) == 1) { $result[$attribute] = $this->_translated($parts[0], []); } elseif (count($parts) == 2) { $result[$attribute] = $this->_translated($parts[0], $parts[1]); } return $result; } } } } protected function _translated($id, $args) { $request = $this->renderingContext->getControllerContext()->getRequest(); $extensionName = $request->getControllerExtensionName(); return LocalizationUtility::translate($id, $extensionName, $args); } } [/code] Aber leider funktioniert das nicht. Die Argumente die im 'SelectWithTranslationVH' entgegengenommen werden ,werden schön übersetzt. Aber es kommt trotzdem der Placeholder 'LLL:xxxx' raus. Ich habe gelesen, dass sowieso davon abgeraten wird ViewHelper zu verschachteln (https://forum.typo3.org/index.php/t/152059/call-viewhelper-from-another-viewhelper). Zusammenfassend: Ich brauche eine Möglichkeit den SelectViewHelper aufzurufen, aber zusätzlich auch zusätzliche Attribute (in diesem Bsp.: 'data-placeholder') zu übersetzen. _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german