TYPO3 Добавить новую вкладку в свойства страницы - PullRequest
0 голосов
/ 30 октября 2018

Я потратил целый день, пытаясь добиться этого: то, что я хочу сделать, это добавить новую вкладку (давайте назовем это extralinks) в свойствах страницы. и эта вкладка будет содержать элемент IRRE для добавления ссылок на каждую страницу поэтому я создал новую таблицу:

ext_tables

CREATE TABLE links(
    uid int(11) NOT NULL auto_increment,
    link varchar(255) DEFAULT '' NOT NULL,
    PRIMARY KEY (uid)
);

и затем я добавил новый файл в TCA / Overrides / links.php

links.php

<?php
if (!defined('TYPO3_MODE')) {
    die ('Access denied.');
}

$GLOBALS['TCA']['links'] = array(
    'ctrl' => array(
        'label' => 'links',
        'title' => 'extralinks',
    ),
    'interface' => '',
    'columns' => array(
        'link' => array(
            'label' => 'extralinks',
            'exclude' => true,
            'config' => array(
                'type' => 'input',
                'size' => 50,
                'max' => 255,
                'eval' => 'trim'
            )
        )
    ),
    'types' => [
        '0' => [
            'showitem' => '
                --div--;;LLL:extralinks,
                link
            '
        ]
    ],
    'palettes' => 'extralinks'
);

$linksColumns = array(
    'extralinks' => array(
        'exclude' => true,
        'label' => 'extralinks',
        'config' => array(
            'type' => 'inline',
            'foreign_table' => 'links',
            'maxitems' => 30,
            'appearance' => [
                'collapseAll' => 1,
                'expandSingle' => 1,
            ],
        )
    )
);

Теперь в том же файле в конце мне нужно добавить это, чтобы иметь таблицы, поэтому я делаю следующее:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('pages', '--div--;Extra links,extralinks;;;;1-1-1', '');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('pages', $linksColumns);

когда я делаю это, появляется новая вкладка с новым элементом, но когда я пытаюсь добавить ссылку, я получаю сообщение об ошибке, в котором говорится, что extralinks не является столбцом в таблице страниц - что понятно -

поэтому, когда я попробую это

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('links', '--div--;Extra links,extralinks;;;;1-1-1', '');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('links', $linksColumns);

теперь я даже не вижу ни вкладки, ни пункта .... Как я могу достичь этого?

p.s

  • забыли назвать по-другому, и я почти уверен, что это не проблема
  • я использую typo3-cms 9.5

1 Ответ

0 голосов
/ 31 октября 2018

Прежде всего, как говорит @Heinz Schilling, вы должны поместить определение полей в TCA/Overrides/pages.php.

Вы также должны поместить поле "counter" в таблицу страниц, чтобы TYPO3 знал, что у вас есть элементы внутри этой страницы.

В вашем ext_tables.sql вы должны поставить следующее:

CREATE TABLE pages (
    extralinks int(11) unsigned DEFAULT '0' NOT NULL,
);
...