TYPO3 DCE:图像部分

时间:2015-09-03 13:16:35

标签: typo3

如何在DCE部分中使用图像字段?

可以像这样访问图像元素(myImage):

<f:for each="{dce:fal(field:'myImage', contentObject:contentObject)}" as="fileReference">
   <f:image src="{fileReference.uid}" alt="" treatIdAsReference="1" />
</f:for>

但是,如果我遍历部分(mySection),则此代码不起作用。

经过大量调试后的解决方案:

  1. 将此元素用于&#34; myImage&#34;:文件抽象层(仅限部分使用)

    <config>
     <type>group</type>
     <internal_type>db</internal_type>
     <appearance>
        <elementBrowserType>file</elementBrowserType>
        <elementBrowserAllowed>jpg,jpeg,png,gif</elementBrowserAllowed>
     </appearance>
     <allowed>sys_file</allowed>
     <size>1</size>
     <minitems>1</minitems>
     <maxitems>1</maxitems>
     <show_thumbs>1</show_thumbs>
    </config>
    
  2. 使用此模板代码

     <f:for each="{field.mySection}" as="teaserbox">
       <f:image src="{teaserbox.image}" alt="" />
       {teaserbox.text}
     </f:for>
    
  3. 您必须删除treatIdAsReference="1" - 否则会导致此错误:

        No file usage (sys_file_reference) found for given UID.
    

    这不是100%完美的解决方案,因为您没有像alt这样的字段,但它有效。欢迎更好的解决方案!

2 个答案:

答案 0 :(得分:2)

在较旧的DCE版本中,这是不可能的。在较新的那些中,您可以为Section Configuration选择FAL Image。看起来像这样:

<config>
<type>group</type>
<internal_type>db</internal_type>
<appearance>
    <elementBrowserType>file</elementBrowserType>
    <elementBrowserAllowed>jpg,jpeg,png,gif</elementBrowserAllowed>
</appearance>
<allowed>sys_file</allowed>
<size>5</size>
<minitems>0</minitems>
<maxitems>5</maxitems>
<show_thumbs>1</show_thumbs>
</config>

在你的模板中,这应该有效:

<f:for each="{item.image -> dce:explode()}" as="imageUid">
    <f:image src="file:{imageUid}"/>                        
</f:for>

答案 1 :(得分:0)

//this is file upload control with little changes 

<config>
<type>group</type>
<internal_type>db</internal_type>
<appearance>
    <elementBrowserType>file</elementBrowserType>
    <elementBrowserAllowed>jpg,jpeg,png,gif</elementBrowserAllowed>
</appearance>
<allowed>sys_file</allowed>
<size>5</size>
<minitems>0</minitems>
<maxitems>5</maxitems>
<show_thumbs>1</show_thumbs>

<dce_load_schema>1</dce_load_schema>
<dce_get_fal_objects>1</dce_get_fal_objects>

它看起来像 In Dce backend it will look like below image

就我而言,它将是这样

<f:for each="{field.contentBoxes}" as="contentbox">
    <div class="col-lg-4 col-md-4 col-sm-6">
        <div class="choose__item">
            <f:for each="{contentbox.icon}" as="image">
                <f:image image="{image}"  />
            </f:for>
            <f:format.html>{contentbox.content}</f:format.html>
        </div>
     </div>
 </f:for>    

现在就您而言,您应该这样尝试

<f:for each="{field.mySection}" as="teaserbox">
   <f:for each="{teaserbox.image}" as="img">
      <f:image image="{img}"  />
   </f:for> 
   {teaserbox.text}
</f:for>