Новости TYPO3: добавьте класс, если в Media Element есть элемент видео - PullRequest
0 голосов
/ 07 февраля 2019

Мне нужно добавить класс к элементу новостей, если на вкладке "Связи" есть элемент видео.

<f:if condition="{mediaElement.type} == 2">
    <div class="news-video">preview image</div>
 </f:if>

Мой вопрос заключается в том, как изменить этот код, чтобы проверить, есть ли в новости элемент видео на вкладке "Связь", еслида добавить класс "новости-видео" в div

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Попробуйте объединить переменную viewhelper с условием if и циклом следующим образом:

<f:if condition="{newsItem.relatedFiles}">
    <f:for each="{newsItem.relatedFiles}" as="relatedFile">
        <f:if condition="{relatedFile.originalResource.type} == 2">
            <f:variable name=”newsVideo”>1</f:variable>
        </f:if>
    </f:for>
</f:if>
<div{f:if(condition: '{newsVideo}', then: ' class="news-video"')}>preview image</div>
0 голосов
/ 10 февраля 2019

Номер типа видеофайла равен 4 , а не 2.

Вы можете создать класс с помощью for-each:

<div 
    <f:if condition="{newsItem.relatedFiles}">
        class="
        <f:for each="{newsItem.relatedFiles}" as="relatedFile">
            <f:if condition="{relatedFile.originalResource.type} == 4">
                news-video
            </f:if>
        </f:for>
        "
    </f:if>
>
preview image
</div>

Один побочный эффект заключается в том, чтокласс будет повторяться для каждого элемента видео:

class = "новости-видео новости-видео новости-видео"

Этот недействителен .

Чтобы избежать этого, вы могли бы улучшить код, добавив счетчик и пропустив все повторения или просто сгенерировав класс впоследствии, если ваш счетчик> = 1.

...