我有一个使用TYPO3 7.6.31,扩展掩码2.1.1以及自定义内容的已在工作的mask元素的工作站点。
我试图添加一个新的mask元素,其中包含一个重复元素(还尝试了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条目的任何想法?
编辑: PageRepository中的检查如下所示:
if (isset($GLOBALS['TCA'][$table]) && is_array($GLOBALS['TCA'][$table]) && $uid > 0) {
因此该表的条目实际上完全缺失了
编辑:
mask扩展应该在这里处理内容元素的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仍然没有解决方案-目前,我们正在计划所有客户要求的更新版本...