TYPO3 MASK отсутствует запись TCA после добавления элемента-маски - PullRequest
0 голосов
/ 25 июня 2019

У меня есть рабочий сайт с TYPO3 7.6.31, маской расширения 2.1.1 и многими уже работающими элементами маски для пользовательского контента.

Я пытался добавить новый элемент маски, содержащий элемент repeat (также пробовал content-element и некоторые другие) (уже используется), заполненный двумя текстовыми полями.

второй ясохраните новый элемент контента с надписью «успешно добавлено ...», и я могу вернуться к обзору элементов, где я также могу найти свой недавно созданный.как только я, например, попал на целевую страницу, все, что связано с расширением маски, выдает неприятные ошибки.

после проверки журналов я получил это сообщение об ошибке:

[ALERT] request="x" component="TYPO3.CMS.Frontend.ContentObject.Exception.ProductionExceptionHandler": Oops, an error occurred! Code: 201906251014509abc80c7 - {"exception":"InvalidArgumentException: There is no entry in the $TCA array for the table \"tx_mask_ytfieldkey\". This means that the function enableFields() is called with an invalid table name as argument. in \/data\/typo3relaunch\/typo3_src-7.6.31\/typo3\/sysext\/frontend\/Classes\/Page\/PageRepository.php:1203

я вошел в mysqlклиент и проверил таблицу, таблица уже существует со всей необходимой структурой без каких-либо обновлений базы данных - так что я думаю, маска обрабатывает это внутренне - это хорошо, но теперь я застрял с отсутствующей записью TCA для этой таблицы и не знаю, где ее разместить- разве это не должно быть обработано маской тоже?

Я застрял и не могу сейчас создавать новые элементы контента из-за этого - есть идеи, как я могу это исправить или где я могу разместить эту запись TCA для таблицы?

edit: проверка в PageRepository выглядит следующим образом:

if (isset($GLOBALS['TCA'][$table]) && is_array($GLOBALS['TCA'][$table]) && $uid > 0) {

, поэтому запись для этой таблицы действительно просто полностью отсутствует

edit:

расширение маски должно обрабатывать записи TCA для элементов содержимого прямо здесь: (mask / ext_tables.php)

$tcaCodeGenerator = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('MASK\\Mask\\CodeGenerator\\TcaCodeGenerator');

// Generate TCA for Content-Elements
$contentColumns = $tcaCodeGenerator->generateFieldsTca($configuration["tt_content"]["tca"]);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_content', $contentColumns);
$tcaCodeGenerator->setElementsTca($configuration["tt_content"]["elements"]);

// Generate TCA for Pages
$pagesColumns = $tcaCodeGenerator->generateFieldsTca($configuration["pages"]["tca"]);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('pages', $pagesColumns);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('pages_language_overlay', $pagesColumns);
$tcaCodeGenerator->setPageTca($configuration["pages"]["tca"]);

// Generate TCA for Inline-Fields
$tcaCodeGenerator->setInlineTca($configuration);

, так что я думаю, мне не нужносделайте что-нибудь вручную в этом процессе.

edit:

по-прежнему нет решения для TYPO3 7.6.31 и маски 2.1.1 - на данный момент мы планируем все запросы клиентов на обновленную версию..

...