我必须在TYPO3中实现一个主页,以便它具有与子页面不同的外观和不同的backend_layout
。在一列中,编辑者可以将框作为内容元素插入。我希望有一个可以插入的最大限制框(或精确数量),例如4盒。
有没有办法实现这个目标?
我发现的唯一限制是内容元素的类型而不是其数量。
答案 0 :(得分:3)
您需要为此编写一个特殊的PHP函数。 TYPO3提供了一种称为“挂钩”的系统范围原则。
钩子可以拦截流经系统的数据并修改TYPO3的行为。
在几个重要的地方有很多钩子,所以你应该能够解决这个问题。
在你特别喜欢的情况下,你需要几个钩子来改变编辑器可以添加内容元素的几个地方。 您可以通过禁止编辑器查看它们来绕过其中一些地方(这可能会减少您需要使用的钩子数量)。
你可以做的另一件事是限制通过Typoscript在前端渲染的内容元素的数量。
看看select.limit。
请记住,对于编辑来说,这可能看起来很奇怪,因为他们在BE中添加的内容元素以后不会显示在前端。
答案 1 :(得分:1)
目前没有简单的方法来配置它。 PHP类\ TYPO3 \ CMS \ Backend \ View \ PageLayoutView负责每页和每列呈现这些框(内容元素)(数据库字段名为“colPos”)。目前唯一的方法是使用XCLASS /覆盖PageLayoutView类并对方法getTable_tt_content()的结果进行后处理。
更好的解决方案是引入这种限制行为或添加一个钩子,允许自定义处理一致数据(按钮显示,如'new'和'paste')。