Я работаю над новым расширением, и моя модель имеет атрибут «тип», который может получать разные строки из формы TCA. Только струны! Имя партиала, который должен загрузить мой шаблон, находится внутри атрибута 'type' моей модели. Итак, вот моя проблема. Начиная с TYPO3 4.7.x имена файлов .html для жидкости должны начинаться с заглавной буквы. Внутри атрибута type имя партиала, которое должно быть загружено, всегда в нижнем регистре. Для этого я написал простой помощник представления, который содержит только этот метод:
public function render($string) {
return ucfirst($string);
}
Внутри моего шаблона я попытался использовать этот помощник представления для пути к частичному:
{namespace vh=Tx_MyExtension_ViewHelpers}
<f:for each="{obj.subObjects}" as="sub">
<f:render partial="OtherObject/{vh:String.UpperFirstCharacter(string:'{sub.type}')}" arguments="{sub:sub}" />
</f:for>
Если я попытаюсь загрузить это в шрифт, ничего из моего расширения не будет отображаться, и нигде не будет сообщений об ошибках. Проблема зависит от моего помощника просмотра, потому что даже если я попытаюсь загрузить только это:
{vh:String.UpperFirstCharacter(string:'test')}
{vh:String.UpperFirstCharacter(string:'{sub.type}')}
Ничего не возвращается. Если я вывожу только {sub.type}, он показывает мне строку, которую я хочу, но в нижнем регистре.