Значение TCA TYPO3 как переменная для жидкости - PullRequest
0 голосов
/ 23 мая 2018

У меня есть базовое расширение, поэтому я могу версию своего сайта.Это означает, что у меня нет контроллера или хранилища на расширение.Так что я хочу создать свои собственные настройки для существующих элементов.Я экспериментировал со значениями выравнивания текста в элементе содержимого заголовка.

Имейте в виду, для этого уже есть настройка, но я просто экспериментирую.

Я выяснил, как их добавить, и значения сохраняются набаза данных.

Что я сейчас хочу сделать, это взять значения и добавить их в качестве класса на FLUID.Вот где я застрял.Я не могу получить значения.Любая идея, как это сделать?

После этого руководства Как включить header_position в TYPO3 7.6 Мне удалось получить мой код так далеко:

В папке/Configuration/TCA/Overrides/tt_content.php

use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
ExtensionManagementUtility::addTCAcolumns('tt_content',[
'header_position_custom' => [
        'exclude' => 1,
        'label' => 'header position',
        'config' => [
                'type' => 'select',
                'renderType' => 'selectSingle',
                'items' => [
                        ['left', 'left'],
                        ['right', 'right'],
                        ['center', 'center']
                ]
        ]
]   
]);

ExtensionManagementUtility::addFieldsToPalette('tt_content', 'header', '--linebreak--,header_position_custom', 'after:header_layout');
ExtensionManagementUtility::addFieldsToPalette('tt_content', 'headers', '--linebreak--,header_position_custom', 'after:header_layout');

В папке /Configuration/Typoscript/Constants/Base.typoscript

styles.templates.templateRootPath = EXT:my_website_base/Resources/Private/Extensions/Fluid_styled_content/Resources/Private/Templates/
styles.templates.partialRootPath = EXT:my_website_base/Resources/Private/Extensions/Fluid_styled_content/Resources/Private/Partials/
styles.templates.layoutRootPath = EXT:my_website_base/Resources/Private/Extensions/Fluid_styled_content/Resources/Private/Layouts/

В /Resources/Private/Extensions/Fluid_styled_content/Resourcs/Private/Partials/Header.html

<h1 class="{positionClass} {header_position_custom} {data.header_position_custom} showed">
    <f:link.typolink parameter="{link}">{header}</f:link.typolink>
</h1>

я поместил показанный класс только для того, чтобы убедиться, чтоЯ читаю файл по указанному мною константу

Файл ext_tables.php

TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY,'Configuration/TypoScript', 'Website Base');

Файл ext_tables.sql

CREATE TABLE tt_content (
   header_position_custom varchar(255) DEFAULT '' NOT NULL,
);

Со всем этим я получаю свой блок выбора, где я хотел быть, и я получаю значения в базе данных.Это означает, что если я выберу значение «Центр» в поле выбора, то оно будет сохранено в базе данных.Как я могу получить это значение и использовать его в качестве класса на FLUID?

Заранее спасибо,

1 Ответ

0 голосов
/ 23 мая 2018

Вы найдете свое поле в объекте data.

Для проверки переменных жидкости вы можете использовать f:debug -VH:

<f:debug title="the data">{data}</f:debug>

для проверки всех (втекущий контекст) доступные переменные можно отлаживать _all:

<f:debug title="all data">{_all}</f:debug>

Подсказка: использовать атрибут title для идентификации выходных данных

ине забудьте написать функции get* и set* для новых полей!

...