我有一个带有 TYPO3 7.6.31、扩展掩码 2.1.1 和许多已经在使用的自定义内容掩码元素的工作站点。
我试图添加一个新的掩码元素,其中包含一个填充了两个文本字段的重复元素(也尝试了内容元素和其他一些元素)(已经在使用)。
第二个我保存了新的内容元素,它说“成功添加...”,然后我可以返回到元素概述,在那里我还可以找到我新创建的元素。例如,一旦我点击着陆页,与掩码扩展相关的所有内容都会引发令人讨厌的错误。
检查日志后,我收到此错误消息:
[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 条目?
编辑:PageRepository 中的检查如下所示:
if (isset($GLOBALS['TCA'][$table]) && is_array($GLOBALS['TCA'][$table]) && $uid > 0) {
所以该表的条目真的完全丢失了
编辑:
掩码扩展应该在这里处理内容元素的 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);
所以我想我不必在那个过程中手动做任何事情。
编辑:
TYPO3 7.6.31 和 mask 2.1.1 仍然没有解决方案 - 目前我们正在计划所有客户对更新版本的请求......