簡體   English   中英

TYPO3在頁面屬性中添加新標簽

[英]TYPO3 Add new tab to page properties

我浪費了整整一天的時間來嘗試實現這一目標:我想做的是向頁面屬性添加一個新標簽(讓我們稱之為附加鏈接)。 並且此選項卡將包含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);

現在我什至都看不到選項卡,也沒有項目...。我如何實現這一目標?

PS

  • 忘記命名的不同了,我很確定那不是問題
  • 我正在使用typo3-cms 9.5

首先,正如@Heinz Schilling所說,您必須將字段定義放入TCA/Overrides/pages.php

您還必須在頁面表中放置一個“ counter”字段,以便TYPO3知道您在此頁面中有不受歡迎的元素。

在您的ext_tables.sql您必須輸入以下內容:

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

暫無
暫無

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

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