Flexform在TYPO3 9.5中不起作用,无法自己修复



我正在使用 FCE Extensions for TYPO3,以创建简单的 Contentelements。它们在 TYPO3 v8 中工作正常,但是当我在 TYPO3 9.5 上安装它们时,我的 FlexForms 不再工作了。我找不到问题,希望这里有人可以帮助我。也许有什么变化而我没有注意到?

由于完整的扩展正在工作并且一切看起来都很好,因此ext_tables.php一定存在某种问题,所以我将在此处复制我的扩展。

TCA呼叫是有效的,当我将例如"标题"添加到列表中时,它会直接显示。所以插件签名也很好。我也尝试添加$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';但这也没有帮助我。

<?php
if (!defined('TYPO3_MODE')) {
    die('Access denied.');
}
TYPO3CMSExtbaseUtilityExtensionUtility::registerPlugin(
    $_EXTKEY,
    'Content',
    'Contactbar'
);

$pluginSignature = str_replace('_', '', $_EXTKEY) . '_content';
$TCA['tt_content']['types'][$pluginSignature]['showitem'] = '
--palette--;LLL:EXT:cms/locallang_ttc.xlf:palette.general;general, pi_flexform, 
--div--;Style, --palette--;LLL:EXT:cms/locallang_ttc.xlf:palette.frames;frames,
--div--;LLL:EXT:cms/locallang_tca.xml:pages.tabs.access, hidden, starttime, endtime,tx_gridelements_container, tx_gridelements_columns';
TYPO3CMSCoreUtilityExtensionManagementUtility::addPiFlexFormValue(
        $pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/flexform_contactbar.xml', '*');
TYPO3CMSCoreUtilityExtensionManagementUtility::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:' . $_EXTKEY . '/Configuration/TSconfig/Content.ts">');
TYPO3CMSCoreUtilityExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'contactbar');

我设法自己修复了它。如果有人遇到相同的错误,解决方案非常简单。将tt_content声明移动到/配置/TCA/覆盖/tt_content.php

所以你有这样的ext_tables:

<?php
if (!defined('TYPO3_MODE')) {
    die('Access denied.');
}
TYPO3CMSExtbaseUtilityExtensionUtility::registerPlugin(
    $_EXTKEY,
    'Content',
    'Contactbar'
);

$pluginSignature = str_replace('_', '', $_EXTKEY) . '_content';
TYPO3CMSCoreUtilityExtensionManagementUtility::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:' . $_EXTKEY . '/Configuration/TSconfig/Content.ts">');
TYPO3CMSCoreUtilityExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'contactbar');

你有这样的tt_content.php:

<?php
$tca = [
    'types' => [
        'contactbar_content' => [
            'showitem' => '--palette--;LLL:EXT:cms/locallang_ttc.xlf:palette.general;general, pi_flexform,--div--;Style, --palette--;LLL:EXT:cms/locallang_ttc.xlf:palette.frames;frames,--div--;LLL:EXT:cms/locallang_tca.xml:pages.tabs.access, hidden, starttime, endtime,tx_gridelements_container, tx_gridelements_columns'
        ]
    ]
];
$GLOBALS['TCA']['tt_content'] = array_replace_recursive($GLOBALS['TCA']['tt_content'], $tca);
TYPO3CMSCoreUtilityExtensionManagementUtility::addPiFlexFormValue(
    '*',
    'FILE:EXT:contactbar/Configuration/FlexForms/flexform_contactbar.xml',
    'contactbar_content'
);

你的错误是,$TCA不再存在......只需使用$GLOBALS['TCA'].

(在您的情况下$GLOBALS['TCA']['tt_content']['types'][$pluginSignature]['showitem']而不是$TCA['tt_content']['types'][$pluginSignature]['showitem']

还要确保将此配置放在文件your_extension_key/Configuration/TCA/Overrides/tt_content.php

相关内容

  • 没有找到相关文章

最新更新