внутренний макет и перетаскивание для пользовательских элементов содержимого, содержащих дочерние элементы tt_content | TYPO3 11
Я создал настраиваемый элемент содержимого в ядре TYPO3 11, в котором есть поле типа inline для дополнительных дочерних элементов tt_content. Интерфейс пока работает отлично, но вид на бэкэнд вызывает у меня головную боль.
Создавая дочерние элементы в родительском элементе, им назначается 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',
);
1 ответ
Я предполагаю, что вам нужно будет изменить свое поле. Предполагая, что отображаются элементы содержимого из таблицы 0. При создании нового
content_relation
запись будет (логично) отображаться внутри вашего обычного (
Inhalt
) backend-layout, так как он представляет записи с
colPos
что равно 0.
Самый простой способ заключается в том, что вы должны использовать
b13/container
пакет/расширение. Вы можете просто создать новый пользовательский «коробочный» контейнер со всей вашей пользовательской конфигурацией TCA, и самое приятное то, что расширение позаботится о дочерних элементах.
tt_content
записывает себя. :)
Примеры использования
b13/container
расширение посмотри здесь
b13/container-example
.