2

我必须在 TYPO3 中实现一个主页,以便它具有与backend_layout子页面不同的外观和不同。编辑者可以在一列中插入框作为内容元素。我想有一个可以插入的盒子的最大限制(或确切的数量),例如 4 个盒子。

有什么办法可以做到这一点?

我发现的唯一限制是内容元素的类型而不是它们的数量。

4

2 回答 2

3

您需要为此编写一个特殊的 PHP 函数。TYPO3 提供了一个系统范围的原则,称为“钩子”。

钩子可以拦截流经系统的数据并修改 TYPO3 的行为。

在几个重要的地方有很多钩子,所以你应该能够解决这个问题。

在您相当特殊的情况下,您将需要几个钩子来更改编辑器可以添加内容元素的几个位置。您可以通过禁止编辑器看到它们来绕过其中一些地方(这可能反过来减少您需要使用的钩子数量)。

您可以做的另一件事是限制通过 Typoscript 在前端呈现的内容元素的数量。

看看 select.limit。

请记住,这对于无法分辨的编辑来说可能看起来很奇怪,为什么他们在 BE 中添加的内容元素稍后不会出现在前端。

于 2013-11-11T16:13:02.883 回答
1

目前没有简单的方法来配置它。PHP 类 \TYPO3\CMS\Backend\View\PageLayoutView 负责为每页和每列呈现这些框(内容元素)(数据库字段名为“colPos”)。目前唯一的方法是 XCLASS/覆盖 PageLayoutView 类并后处理方法 getTable_tt_content() 的结果。

更好的解决方案是引入这种限制行为或添加允许自定义处理一致数据的挂钩(要显示的按钮,如“新建”和“粘贴”)。

于 2013-11-11T16:27:28.043 回答