TYPO3 DCE (Fluid): Как создать объект SVG вместо тега изображения?

Наши пользователи (редакторы) TYPO3 должны обмениваться / обновлять файлы SVG на веб-сайте TYPO3. Файлы SVG кликабельны, следовательно, <img> HTML-тег не работает для них. Мы решили в пользу <object> тег, с <img> отступление ( я использую , <объект>или для файлов SVG?).

Код 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-тегах.

Другие вопросы по тегам