2

我有一个菜单,想从页面配置访问媒体文件。这很好用,但它提供了媒体文件的所有图像。ListNum 它不起作用。您有想法或替代解决方案吗?重要我想使用 file:current:description 和 file:current:title

after.cObject = FILES
after.cObject {
references {
    table = pages
    fieldName = media
    # listNum = 1 not working
}
renderObj = IMAGE
renderObj {
    file.import.data = file:current:originalUid
    file.width = 250
    file.import.listNum = 1
    altText.data = file:current:description
}
}
4

3 回答 3

3

OP 和 maholtz 答案的代码在当前的 TYPO3 版本中不再有效。这是 6.2 及更高版本的正确 TypoScript:

1 = TMENU
1 {
    wrap = <ul>|</ul>
    NO = 1
    NO {
        wrapItemAndSub = <li>|</li>

        stdWrap.override.cObject = FILES
        stdWrap.override.cObject {
          references {
            table = pages
            fieldName = media
          }

          renderObj = IMAGE
          renderObj {
            file.import.data = file:current:uid
            file.treatIdAsReference = 1
            titleText.data = file:current:title // field:nav_title // field:title
            altText.data = file:current:alternative // field:nav_title // field:title
          }

          # start with second image
          begin = 1
          # show only one image
          maxItems = 1
        }

    }
}

该参数begin定义应该使用多张图片中的哪一张(例如,如果您需要一张图片作为页面的标题背景,另一张作为菜单中的图标)。

如果增加maxItems参数,将返回多个图像(如果在资源选项卡中定义了多个图像)。

如果您想将图像附加/添加到菜单文本而不是替换它,您必须更改stdWrap.override.cObjectafter.cObjectbefore.cObject在上面的代码中。

于 2014-12-15T14:04:18.167 回答
0
after.cObject = FILES
after.cObject {
  references {
    table = pages
    fieldName = media
    # listNum = 1 not working
  }
  renderObj = IMAGE
  renderObj {
    file.import.data = file:current:originalUid
    file.width = 250
    file.import.listNum = 1
    altText.data = file:current:description
  }
  # start with first image
  begin = 0
  # show only two images
  maxItems = 2
}

有两个注册填写:

REGISTER:FILES_COUNT

REGISTER:FILE_NUM_CURRENT

在typo3/sysext/frontend/Classes/ContentObject/FilesContentObject.php 中实现

于 2014-01-10T14:50:38.427 回答
0

这是另一个带有堆叠图像参考的示例。此代码可与 jquerypicture 一起使用。

lib.headerImg = COA
lib.headerImg.wrap =  <picture alt="some alttext">|</picture>
lib.headerImg {

    // <source>
    10 = FILES
    10 {

      references {
        table = pages
        uid.data = tsfe:id
        fieldName = media
      }

      renderObj = IMG_RESOURCE
      renderObj {
          file.import.data = file:current:uid
          file.treatIdAsReference = 1
          stdWrap.dataWrap = <source src="|">
          # the 2nd pic gets another attribute
          stdWrap.dataWrap.override = <source src="|" media="(min-width:600px)">
          stdWrap.dataWrap.override.if.value = 1
          stdWrap.dataWrap.override.if.equals.data = register:FILE_NUM_CURRENT
          # altText.data = file:current:title
      }

      begin = 0
      maxItems = 2

    }

    // <noscript>
    20 < .10
    20.begin = 1
    20.maxItems = 1
    20.renderObj.stdWrap.dataWrap = <noscript><img src="|" alt="{file:current:title}"></noscript>


}
于 2015-12-08T16:31:49.137 回答