如何用typo3中的div包装图像?

时间:2015-07-28 07:22:26

标签: typo3 typoscript typo3-7.x

要删除默认环绕图像,我使用了此模板代码:

tt_content.image.20.rendering.noWraps {
  imageRowStdWrap.dataWrap = |
  noRowsStdWrap.wrap = |
  oneImageStdWrap.dataWrap = |
  imgTagStdWrap.wrap = |
  editIconsStdWrap.wrap = |
  caption.wrap = |
}
# Set this as active rendering method
tt_content.image.20.renderMethod = noWraps

我想在特定部分的代码之上覆盖它。

这是我的代码:

SCREENSHOTS<styles.content.get
SCREENSHOTS.select.where = colPos = 9
SCREENSHOTS.renderObj.dataWrap = <div class="screen">|</div>

它不起作用。怎么做?

1 个答案:

答案 0 :(得分:1)

根据documentation for the CONTENT object

  

由于在上面的示例中没有明确设置.renderObj,因此TYPO3将自动设置1.renderObj&lt; tt_content ,以便renderObj引用 tt_content 的TypoScript配置。相应的TypoScript配置将被复制到renderObj。

由于您宣布SCREENSHOTS.renderObj.dataWrap = <div class="screen">|</div>正确无法将任何配置自动复制到renderObj

如果我理解你的目标是正确的,那么你希望删除“仅图像”内容元素周围的所有包裹并将其全部包装在一个div标签<div class="screen">|</div>中。以下是未经测试但如果您提供的第一个代码被阻止适用于您的所有“仅图片”内容元素,则应该可以使用。

# Create a new renderMethod named 'noWraps' which can be used across the whole system
tt_content.image.20.rendering.noWraps {
  imageRowStdWrap.dataWrap = |
  noRowsStdWrap.wrap = |
  oneImageStdWrap.dataWrap = |
  imgTagStdWrap.wrap = |
  editIconsStdWrap.wrap = |
  caption.wrap = |
}

SCREENSHOTS < styles.content.get
SCREENSHOTS {
  select.where = colPos = 9
  renderObj < tt_content
  renderObj {
    # Set renderMethod to 'noWraps' only for this section
    image.20.renderMethod = noWraps

    # Change the default wrapping around the content element but only if it's a 'image only' contant element
    stdWrap.innerWrap >
    stdWrap.innerWrap.cObject = CASE
    stdWrap.innerWrap.cObject {
      key.field = CType
      default < tt_content.stdWrap.innerWrap.cObject
      image = TEXT
      image.value = <div class="screen">|</div>
    }
  }
}

如果上述代码不起作用,那么只需写一条评论然后我会看一下。