TYPO3 - проверка TCA в ext_tables.php и TCA / Overrides для v8

Обновлены ext_tables.php, TCA и TCA / Overrides для TYPO3 8LTS? Я переместил определения TCA из ext_tables.php в папку / TCA, и запрос в виде списка снова работает:

ext_tables.php

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

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    $_EXTKEY,
    'Code',
    'Description'
);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr('tx_code_domain_model_code', 'EXT:code/Resources/Private/Language/locallang_csh_tx_code_domain_model_code.xlf');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_code_domain_model_code');

Конфигурация / TCA / tx_code_domain_model_code.php

... // TCA defintions

Конфигурация / TCA / Overrides / tt_content.php

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

$_EXTKEY = 'code';

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    $_EXTKEY,
    'Code',
    'Description'
);

$extensionName = strtolower(\TYPO3\CMS\Core\Utility\GeneralUtility::underscoredToUpperCamelCase($_EXTKEY)); 
$pluginName = strtolower('Code'); 
$pluginSignature = $extensionName.'_'.$pluginName; 
$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform'; 
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($pluginSignature, 'FILE:EXT:'.$_EXTKEY . '/Configuration/FlexForms/flexform_code.xml'); 

Конфигурация / TCA / Overrides / tt_content.php

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

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('code', 'Configuration/TypoScript', 'Description');

person Philipp M    schedule 23.08.2017    source источник


Ответы (1)


Это не совместимо.

Вы должны сделать свое определение TCA для tx_code_domain_model_code в: Configuration / TCA / tx_code_domain_model_code.php

Определение статического шаблона в: Configuration / TCA / Overrides / sys_template.php

И определение вашего плагина и гибкой формы в: Configuration / TCA / Overrides / tt_content.php

Имейте в виду, что переменная $ _EXTKEY не определена в этих файлах, поэтому вам нужно ввести ключ расширения самостоятельно.

person RinyVT    schedule 23.08.2017
comment
Оберните свой код с помощью call_user_func (function () {...}); Взгляните на extensions.typo3.org/extension/styleguide - person jokumer; 23.08.2017
comment
@jokumer, хотя это хорошая практика, что вы имеете в виду под этим решением? Это не решает несовместимость ext_tables.php или отсутствие $ _EXTKEY - person RinyVT; 23.08.2017
comment
Просто хорошая практика - объявлять переменные внутри области функции, а не глобально. См. usetypo3.com/good-practices-in-extensions.html - person jokumer; 23.08.2017
comment
@RIVATI: Какие определения статических шаблонов? Я переместил $ GLOBALS ['TCA'] ['tx_code_domain_model_code'] = array ('ctrl' ... в Configuration / TCA / ... и он снова заработал. Но когда я также переместил определение плагина и гибкой формы в: Configuration / TCA / Overrides / tt_content.php ... Я получаю указанную выше ошибку ... как это должно выглядеть? - person Philipp M; 24.08.2017
comment
@PhilippM определение статического файла - это строка с addStaticFile. И, как я уже сказал, переменная $ _EXTKEY не определена в папке Configuration / TCA, поэтому вам придется заменить эту переменную своим ключом расширения. - person RinyVT; 24.08.2017
comment
@RIVATI: А, ладно ... Я обновился соответственно. Спасибо за помощь ... похоже, все снова работает. - person Philipp M; 24.08.2017