TYPO3 8.7随机排序内容

时间:2019-12-04 10:37:31

标签: typo3 typo3-8.x

我们有一个 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带有一个钩子。

主要问题是,我无法重现此行为,并且这种情况很少发生。

1 个答案:

答案 0 :(得分:1)

TYPO3如何组织(内容)记录的排序?

TYPO3通常使用一个名为sorting的字段。这些值不是连续的,因此并非所有记录都需要更新才能插入或删除单个记录。只有在发生碰撞时,这些值才会重新编号。

对于tt_content,您有一个特殊的处理方法:由于内容是按列组织的(由字段colPos标识),因此每一列的排序都是独立的。
这样,您可以为每个sorting拥有多个colPos值链。


在您的定义中,插入的tt_content记录没有colPos值。 也许会导致对记录进行排序并且所有sorting值都被重写而没有遵守colPos字段的情况。


如果您有记录由其他字段给出显示顺序(例如标题),您会发现类似的混乱情况。如果定义sortby = title,则记录将按此顺序显示-直到TYPO3认为它必须重新编号sorting字段为止。这将导致数字覆盖标题。 (**不使用sortby =,而是orderBy =