Необходимо отличать конфигурацию сайта от обычных страниц!
- Конфигурация сайта действительна для полного сайта, поэтому для каждой страницы
- Страница может отличаться на уровне страницы
Оба варианта использования действительны, поэтому давайте объясним подробно
Расширение конфигурации сайта
Конфигурацию сайта можно легко расширить, создав файл <site-extension>/Configuration/SiteConfiguration/Overrides/sites.php
<?php
defined('TYPO3_MODE') || die('Access denied.');
call_user_func(
function ($table) {
$GLOBALS['SiteConfiguration'][$table]['columns']['trackingCode'] = [
'label' => 'Label',
'config' => [
'type' => 'input',
'eval' => 'trim',
'placeholder' => 'GTM-123456',
],
];
$GLOBALS['SiteConfiguration'][$table]['types']['0']['showitem'] .= ',--div--;Extra,trackingCode';
},
'site'
);
Значение нового поля trackingCode
может быть легко получено, например, по TS с data = site:trackingCode
. В качестве альтернативы вы также можете использовать SiteProcessor
, чтобы получить доступ к конфигурации сайта в FLUIDTEMPLATE
.
Расширение страниц
Создать файл <site-extension>/Configuration/TCA/Overrides/pages.php
<?php
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'pages',
[
'trackingCode' => [
'exclude' => true,
'label' => 'A label',
'config' => [
'type' => 'input',
]
],
]
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
'pages',
'--div--;Extra, trackingCode'
);
и `ext_tables.sql``
CREATE TABLE pages (
trackingCode text NOT NULL
);
и вы получаете доступ к полю с TypoScript и внутри FLUIDTEMPLATE с {data.trackingCode}
.
Использование слайда
Путем добавления trackingCode
в список через запятую в [FE][addRootLineFields]
(используйте Установочный инструмент> Настройки> Конфигурировать параметры для всей установки, можно переопределить значение для всех подстраниц.
Следующий TypoScript восстановит корневую линию и вернет первый набор значений.
lib.code = TEXT
lib.code.data = levelfield:-1,trackingCode, slide