2016-12-29 4 views
0

Пользователи TYPO3 (редакторы) должны обмениваться/обновлять SVG-файлы на веб-сайте TYPO3. Файлы svg можно щелкнуть, поэтому тэг <img> html не работает для них. Мы приняли решение в пользу тега <object>, с <img> fallback (Do I use <img>, <object>, or <embed> for SVG files?).TYPO3 DCE (Fluid): Как сгенерировать объект SVG вместо тега изображения?

Жидкости код для фасада легко для создания нормальных 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 for SVG Images?, я мог бы использовать код жидкости, как это:

<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 изображения?

+0

Что это значит? «Файлы svg доступны для кликов, поэтому тэг html не работает для них». –

+0

Спасибо за подсказку. Я забыл «Теги разметки html, поэтому они были невидимыми. Я имел в виду, что html-тег '' не работает для них. Отредактированный вопрос сейчас. – user2349661

ответ

2

Я думаю, что атрибут viewhelper treatIdAsReference - это то, что вы ищете. f: изображение, а также f: uri: изображение может обрабатывать файлы и файлы.

Похоже, у вас есть FileReference, так что вы должны добавить атрибут со значением 1 Ниже приведен пример с встроенной нотацией:

{f:uri.image(src: '{fileReference.uid}', treatIdAsReference:'1')} 

Результатом этого является путем к файлу, он может использоваться в обычных HTML-тегах.