簡體   English   中英

包含 tt_content 子元素的自定義內容元素的后端布局和拖放 | TYPO3 11

[英]backend layout and drag&drop for custom content elements holding tt_content children | TYPO3 11

我在 TYPO3 11 核心上創建了一個自定義內容元素Box ,它有一個內聯類型的字段,用於 tt_content 的更多子元素。 到目前為止,前端工作得很好,但后端視圖讓我頭疼。

在父Box上創建子元素,它們被分配 colPos 0 並出現在我的后端布局的那一列中。

盒子

后端視圖

我想要實現的是在我的Box中有一個后端布局,並能夠自由拖放 tt_content 元素,如下所示:看起來像這樣

我遵循的文檔似乎不符合我的願望,我想在沒有任何擴展的情況下解決這個問題。

到目前為止,這是我的 TCA 和 SQL

$col = [
    'content_relation' => [
        'exclude' => true,
        'label' => 'content',
        'config' => [
            'type' => 'inline',
            'allowed' => 'tt_content',
            'foreign_table' => 'tt_content',
            'foreign_field' => 'content_relation',
            'foreign_sortby' => 'sorting',
            'minitems' => 0,
            'maxitems' => 99,
            'appearance' => [
                'collapseAll' => true,
                'expandSingle' => true,
                'levelLinksPosition' => 'bottom',
                'useSortable' => true,
                'showPossibleLocalizationRecords' => true,
                'showRemovedLocalizationRecords' => true,
                'showAllLocalizationLink' => true,
                'showSynchronizationLink' => true,
                'enabledControls' => [
                    'info' => TRUE,
                    'new' => TRUE,
                    'dragdrop' => TRUE,
                    'sort' => TRUE,
                    'hide' => TRUE,
                    'delete' => TRUE,
                    'localize' => TRUE,
                ],
            ],
        ],
    ],
];

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('tt_content', 'content_relation');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_content', $col);

$GLOBALS['TCA']['tt_content']['types']['dg_template_box'] = [
    'showitem' => '
        --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,
            --palette--;;general,
                header;Internal title (not displayed),
                content_relation;Elemente,
        ',
];

CREATE TABLE tt_content (
    content_relation int(11) unsigned DEFAULT '0',
);

我假設您需要更改content_relation字段的colPos 假設Inhalt顯示來自colPos 0 的tt_content表的內容元素。當創建新的content_relation記錄時,它將(邏輯上)顯示在您的正常( Inhalt )后端布局中,因為它表示colPos等於 0 的記錄。

最簡單的方法是您應該使用b13/container包/擴展。 您可以簡單地創建一個新的自定義“盒子”——包含所有自定義 TCA 配置的容器——最好的部分是擴展將自行處理子tt_content記錄。 :)

有關如何使用b13/container擴展的示例,請查看此處的b13/container-example

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM