TYPO3 DCE (Fluid): Как создать объект SVG вместо тега изображения?
Наши пользователи (редакторы) TYPO3 должны обмениваться / обновлять файлы SVG на веб-сайте TYPO3. Файлы SVG кликабельны, следовательно, <img>
HTML-тег не работает для них. Мы решили в пользу <object>
тег, с <img>
отступление ( я использую , <объект>или ).
Код Fluid для внешнего интерфейса легко генерировать обычные теги img:
<f:layout name="Default" />
<f:section name="main">
<div class="container">
<f:for each="{dce:fal(field:'image1', contentObject:contentObject)}" as="fileReference" iteration="iterator">
<f:if condition="{iterator.isFirst}">
<f:image src="{fileReference.uid}" alt="" treatIdAsReference="1" />
</f:if>
</f:for>
</div>
</f:section>
Тем не менее, согласно FluidTYPO3 vhs ViewHelper для изображений SVG? Я мог бы использовать код жидкости, как это:
<img src="{f:uri.image(src: 'uploads/tx_myext/{imgIcon}')}">
который, адаптированный к объекту, будет:
<object data="{f:uri.image(src: 'xxx')}" type="image/svg+xml">
<img src="{f:uri.image(src: 'xxx')}">
</object>
К сожалению, я понятия не имею, что предоставить в качестве src. {fileReference.uid}
только вставляет уникальный идентификатор файла (число).
Как я могу преобразовать идентификатор файла в относительный или абсолютный URI изображения?
1 ответ
Я думаю, что атрибут viewhelper TreatIdAsReference - это то, что вы ищете. f: image, а также f: uri: image могут обрабатывать файлы и ссылки на файлы.
Похоже, у вас есть FileReference, поэтому вы должны добавить атрибут со значением 1 Вот пример со встроенной нотацией:
{f:uri.image(src: '{fileReference.uid}', treatIdAsReference:'1')}
Результатом этого является путь к вашему файлу, его можно использовать в обычных HTML-тегах.