【问题标题】:TYPO3 FLUID - image and for each - INLINETYPO3 FLUID - 图像和每个 - 内联
【发布时间】:2016-08-19 16:52:24
【问题描述】:

我需要这个 FLUID 代码“内联”:

<f:for each="{dce:fal(field:'textImageTeaserImage', contentObject:contentObject)}" as="fileReference" iteration="iterator">
<f:image src="{fileReference.uid}" treatIdAsReference="1" title="{field.textImageTeaserHeadline}" alt="{field.textImageTeaserHeadline}" class="img-responsive" width="1920c" height="780c" />
</f:for>

这里是一个带有 Image-Url 的测试:

{f:for(each: '{dce:fal(field: \'textImageTeaserImage\', contentObject:contentObject)}', as:'fileReference', iteration:'iterator') -> f:uri.image(src: 'fileReference.uid', treatIdAsReference: '1')}

但是,它不起作用:(

谢谢, 塞巴斯蒂安

【问题讨论】:

  • f:uri.image ViewHelper 似乎不支持内联渲染。符号{X -&gt; &lt;ViewHelperName&gt;()} 意味着,视图助手的“主要”参数(可能是任何一个)设置为X,仅此而已(例如,对于f:count(),主要参数是subject)。所有其他参数仍然必须在括号内传递。从source code 看来,图像 ViewHelper 没有主要参数,因此不能这样使用。

标签: image typo3 fluid


【解决方案1】:

内联语法颠倒顺序(子节点在父节点之前)。正确的语法:

{f:uri.image(src: 'fileReference.uid', treatIdAsReference: '1') 
    -> f:for(each: '{dce:fal(field: \'textImageTeaserImage\', contentObject: contentObject)}', as: 'fileReference', iteration: 'iterator')}

Same 可用于渲染部分,例如,以防您需要添加 ViewHelpers 本身未添加的其他标记。

【讨论】:

    【解决方案2】:

    我建议结合&lt;f:spaceless /&gt; ViewHelper 使用自己的部分。

    一个(未经测试的)示例:

    <f:section name="main">
        <f:render section="imgs" arguments="{field:field,fieldName:'textImageTeaserImage',contentObject:contentObject}" />
    </f:section>
    
    <f:section name="imgs">
        <f:spaceless>
            <f:for each="{dce:fal(field:fieldName, contentObject:contentObject)}" as="fileReference" iteration="iterator">
                <f:image src="{fileReference.uid}" treatIdAsReference="1" title="{field.textImageTeaserHeadline}" alt="{field.textImageTeaserHeadline}" class="img-responsive" width="1920c" height="780c" />
            </f:for>
        </f:spaceless>
    </f:section>
    

    【讨论】:

    • 使用f:uri.image ViewHelper 的image 参数可能更容易,而不是srctreatIdAsReference。无需知道给定的东西是图像还是图像参考。
    【解决方案3】:

    工作:

    <f:for each="{dce:fal(field:'textImageTeaserImage', contentObject:contentObject)}" as="fileReference" iteration="iterator">
            <div style="background-image: url('{f:uri.image(src: '{fileReference.uid}', treatIdAsReference: 1, absolute: 1)}');">
            </f:for>
    

    但这不好:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      • 2021-07-22
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多