У меня есть проект TYPO3 с расширением, использующим Extbase, и для реализации ленивой загрузки и изображений сетчатки при сохранении совместимости, если javascript отключен, мне нужно сгенерировать такой вывод:
<noscript data-src-small="small.jpg" data-src-large="large.jpg" data-width="300" data-height="200">
<img src="small.jpg" width="300" height="200">
</noscript>
Поэтому я написал собственный ViewHelper (или, скорее, я скопировал и изменил существующий), который делает именно это, и он работает, но я не уверен, что делаю это правильно, потому что я вручную создаю <img>
следующим образом:
$content = '<img class="'.$class.'" alt=" " src="'.$imageSource.'" width="'.$imageInfo[0].'" height="'.$imageInfo[1].'">';
$this->tag->setContent($content);
Интересно, нет ли лучшего способа сделать это, в идеале я бы хотел вызвать стандартную функцию ImageViewHelper::render()
внутри моего пользовательского ViewHelper.
Есть ли способ сделать это? Следует ли вообще это делать?
Я знаю, что могу настроить свой шаблон следующим образом:
<x:noscript src="filename.jpg" width="300">
<f:image src="filename.jpg" width="300" />
</x:noscript>
(x:noscript
предполагается, что это мой пользовательский ViewHelper)
и вызовите renderChildren()
внутри моего ViewHelper.
Но тогда мне придется повторять src="filename.jpg" width="300"
, и я обычно не люблю повторять ввод, если есть лучший способ.