typo3 - TYPO3 为 IRRE tt_content 隐藏 colPos
问题描述
当按照文档中的说明添加自己的内容元素,然后实现所谓的 IRRE(内联类型)元素时,可以将其存储在未使用的 colPos 中,例如 99:
$newTCAcolumns[] = [
'xxx_cta_blocks' => [
'exclude' => 1,
'label' => 'Content',
'config' => [
'type' => 'inline',
'allowed' => 'tt_content',
'foreign_table' => 'tt_content',
'foreign_sortby' => 'sorting',
'foreign_field' => 'xxx_foreign',
'minitems' => 1,
'maxitems' => 3,
'appearance' => [
'collapseAll' => true,
'expandSingle' => true,
'levelLinksPosition' => 'bottom',
'useSortable' => true,
'showPossibleLocalizationRecords' => true,
'showRemovedLocalizationRecords' => true,
'showAllLocalizationLink' => true,
'showSynchronizationLink' => true,
'enabledControls' => [
'info' => false,
]
],
'behaviour' => [
'allowLanguageSynchronization' => true,
],
'overrideChildTca' => [
'columns' => [
'colPos' => [
'config' => [
'default' => 99
]
],
'CType' => [
'config' => [
'default' => 'xxx_cta_block'
]
],
]
],
],
]
不幸的是,由于一些秘密的设计原因,在后端布局中需要存在假 colPos:
mod {
web_layout {
BackendLayouts {
default {
title = Default
config {
backend_layout {
colCount = 1
rowCount = 1
rows {
1 {
columns {
1 {
name = Content
colPos = 0
}
}
}
99 {
columns {
1 {
name = Within content element
colPos = 99
}
}
}
}
}
}
icon =
}
}
}
}
现在,如果后端布局中不存在此列,我们会收到可怕的警告,即在页面上检测到未使用的元素。此外,IRRE 子项将在 Column 字段中显示“无效值 99”。也许这就是为什么有些人想要隐藏这个领域,这似乎会产生所有其他问题。
如果此列存在,它将在后端页面的底部显示所有子元素。这会寻找具有大量自定义元素的大页面,当然超级混乱并且容易被编辑者犯错误,并且完全不应该在设计上显示出来。
在旧版本的 TYPO3(10.4.x 之前)中,上面的 rowCount 为 1 的后端布局定义将确保 colPos 99 不可见。[编辑] 安装 GridElements 时,它仍然有效。
似乎还有一些古老的记录不良的 tsconfig 设置,例如:
mod.SHARED.colPos_list = 0
TCEFORM.tt_content.colPos.removeItems = 99
mod.web_layout.tt_content.colPos_list = 0
他们似乎根本没有做任何值得注意的事情。
Nicole Cordes 女士做了一个扩展,“从‘未使用’列中删除具有自己 colPos 配置的已使用内容元素”。非常高贵,但在使用基本核心功能时,这种钩子不应该是这种方式。
所以也许我错过了一些东西,或者有人可以告诉我如何以“正确”的方式隐藏它?
顺便说一句,我现在通过在后端加载额外的 CSS 来隐藏这个不需要的 colPos ,然后:
.t3-page-column-99 {
display: none;
}
解决方案
PagelayoutHook 实际上是可行的方法。目前没有其他办法。如果你想自己实现它,这很容易。
我在这里解释了一切。
TYPO3 正在向 PSR 标准迁移,因此 Hooks 正在被替换。慢慢地,但它们最终会消失。相反,事件/监听将取代它们的位置。到时候,大家都会开心的:)
此致
推荐阅读
- flutter - 我正在使用图像选择器和图像裁剪器依赖项并尝试获取图像但它显示错误
- python - 将 true 和 false 的布尔区域转换为 1 或 -1
- python-3.x - Python 下载带有请求与请求、枕头和 BytesIO 的图像。后者的优势是什么?
- .net - 如何恢复 wpf 对话框内容焦点?
- python - self.canvas.create_text 消失
- laravel - 如何在分页中发送两种类型的数据库表中的数据
- django - 使用 Traefik 反向代理来托管 WordPress 和 Django
- generics - 让函数接受 u16 和使用的简洁方法,包括不受约束的小正整数文字
- c++ - Raylib C++ Shapes Spawn on click
- javascript - 如果宽度大于屏幕尺寸,iOS/Android 上的高度也会改变(约束问题)