【问题标题】:TYPO3 templates and changes the div idTYPO3 模板和更改 div id
【发布时间】:2013-10-16 12:16:35
【问题描述】:

我在 TYPO3 中有一个要用于某些页面的模板,在这里我有一个 DIV。

是否可以根据页面 UID 更改 DIV ID。它是唯一改变内容/图像的 div,我希望将此 DIV 放在我的 main.html 模板中。

如果

UID = 2 <div id="topbanner_about"></div>
UID = 3 <div id="topbanner_drills"></div>

等等.... 我可以这样做吗,我可以在 TS (Typo Script) 中这样做吗?或者我该怎么做,所以我不需要制作 5 个模板。

【问题讨论】:

  • 您可能希望至少显示 TypoScript 中负责模板的相关部分。一般来说,是的,这当然可以借助标记来实现,您可以根据页面 uid 进行更改。

标签: html typo3 typoscript


【解决方案1】:

您可以通过在模板中插入标记来做到这一点。它看起来像这样:

在模板中:

[...]
<div id="topbanner_###ID_SUFFIX###"></div>
[...]

在插入模板的 TypoScript 中:

10 = TEMPLATE
10 {
    template = FILE
    template.file = fileadmin/main.html

    marks {
        ID_SUFFIX = TEXT
        ID_SUFFIX {
            insertData = 1

            # This makes sure that the output is valid and prevents XSS attacks
            htmlSpecialChars = 1

            value = {page:uid}      # Use this to insert the page ID or
            value = {page:subtitle} # Use to insert subtitle of page
            ... # Same works for other fields of the page record.
        }
    }
}

如果默认页面提供的字段不够,您可以在页面记录中添加另一个字段。最好的方法是构建一个可以做到这一点的扩展。

【讨论】:

    【解决方案2】:

    我找到了一个更好的解决方案,如果我使用 ressource 并添加一个图像,并且在下一页上对另一个图像执行相同的操作,然后在我的主 TS 中添加此代码。

    lib.imageElement = FILES
    lib.imageElement {
      references {
        data = levelmedia:-1,slide
        listNum = 0
      }
      renderObj = COA
      renderObj {
        10 = IMAGE
        10 {
          file.import.data = file:current:originalUid
          altText.data = file:current:title
        }
      }
    }
    

    它可以解决问题,然后它会在每个页面的顶部/标题中显示不同的图像。 但是谢谢...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      相关资源
      最近更新 更多