【问题标题】:TYPO3 News: add class if Media Element has video itemTYPO3 新闻:如果媒体元素有视频项目,则添加类
【发布时间】:2023-03-14 11:44:01
【问题描述】:

如果关系选项卡有视频元素,我需要向新闻项目添加类。

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

我的问题是如何更改此代码以检查新闻是否在相关选项卡中具有视频元素,如果是,则将 class"news-video" 添加到 div

【问题讨论】:

  • 你的问题是什么?
  • 我的问题是如何更改此代码以检查新闻是否在相关选项卡中具有视频元素,如果是,则将 class"news-video" 添加到 div

标签: typo3 typo3-7.6.x tx-news


【解决方案1】:

尝试将变量 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>

【讨论】:

    【解决方案2】:

    video-filetype number is 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="news-video news-video news-video"

    这个is not valid

    为避免这种情况,您可以通过 adding a counter 增强代码并跳过所有重复项,或者如果您的计数器 >= 1,则仅在之后生成类。

    【讨论】:

      猜你喜欢
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多