1

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

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>

它不起作用。怎么做?

4

1 回答 1

1

根据CONTENT 对象的文档

由于在上面的示例中 .renderObj 没有明确设置,TYPO3 将自动设置 1.renderObj < 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>
    }
  }
}

如果上面的代码不起作用,那么只需写一个评论,然后我会看看它。

于 2015-08-27T10:17:34.997 回答