我们有一个 typo3实例(8.7),有时会发生这种情况,即以错误的方式使用了数百个内容元素的站点。绝对不是由系统用户完成的。
我们公司有很多typo3项目,并且这里最大的不同是我们自己开发的扩展名,您可以在其中创建记录,并且记录可以包含tt_content
元素。
“ field
”的TCA:
'content' => [
'exclude' => 0,
'label' => 'Content',
'config' => [
'type' => 'inline',
'foreign_table' => 'tt_content',
'foreign_sortby' => 'sorting',
'foreign_field' => 'event',
'foreign_record_defaults' => [
],
'maxitems' => 9999,
'appearance' => [
'collapse' => 1,
'levelLinksPosition' => 'top',
'showSynchronizationLink' => 1,
'showPossibleLocalizationRecords' => 1,
'showAllLocalizationLink' => 1,
'useSortable' => 1,
'enabledControls' => [
'dragdrop' => 1
],
],
],
],
tt_content
元素的pid带有一个钩子。
主要问题是,我无法重现此行为,并且这种情况很少发生。
答案 0 :(得分:1)
TYPO3如何组织(内容)记录的排序?
TYPO3通常使用一个名为sorting
的字段。这些值不是连续的,因此并非所有记录都需要更新才能插入或删除单个记录。只有在发生碰撞时,这些值才会重新编号。
对于tt_content,您有一个特殊的处理方法:由于内容是按列组织的(由字段colPos
标识),因此每一列的排序都是独立的。
这样,您可以为每个sorting
拥有多个colPos
值链。
在您的定义中,插入的tt_content记录没有colPos
值。 也许会导致对记录进行排序并且所有sorting
值都被重写而没有遵守colPos
字段的情况。
如果您有记录由其他字段给出显示顺序(例如标题),您会发现类似的混乱情况。如果定义sortby = title
,则记录将按此顺序显示-直到TYPO3认为它必须重新编号sorting
字段为止。这将导致数字覆盖标题。 (**不使用sortby =
,而是orderBy =
)