Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flexform无法在TYPO3 9.5中工作,无法自行修复_Typo3_Fluid_Typo3 9.x_Flexform - Fatal编程技术网

Flexform无法在TYPO3 9.5中工作,无法自行修复

Flexform无法在TYPO3 9.5中工作,无法自行修复,typo3,fluid,typo3-9.x,flexform,Typo3,Fluid,Typo3 9.x,Flexform,我正在使用TYPO3的FCE扩展来创建简单的Contentelements。它们在TYPO3 v8中运行良好,但当我在TYPO3 9.5中安装它们时,我的FlexForms不再工作。我找不到问题,希望这里有人能帮我解决。也许有些事情改变了,而我没有注意到 由于完整的扩展正在工作,而且一切看起来都很好,ext_tables.php中肯定存在某种问题,因此我将在这里复制我的扩展 TCA调用正在工作,当我将例如“header”添加到它直接显示的列表中时。所以pluginSignature也很好。我还尝

我正在使用TYPO3的FCE扩展来创建简单的Contentelements。它们在TYPO3 v8中运行良好,但当我在TYPO3 9.5中安装它们时,我的FlexForms不再工作。我找不到问题,希望这里有人能帮我解决。也许有些事情改变了,而我没有注意到

由于完整的扩展正在工作,而且一切看起来都很好,ext_tables.php中肯定存在某种问题,因此我将在这里复制我的扩展

TCA调用正在工作,当我将例如“header”添加到它直接显示的列表中时。所以pluginSignature也很好。我还尝试添加了
$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature]='pi_flexform'这也帮不了我

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

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::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';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
        $pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/flexform_contactbar.xml', '*');

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:' . $_EXTKEY . '/Configuration/TSconfig/Content.ts">');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'contactbar');

我自己设法修好了。如果有人犯了同样的错误,那么解决方法很简单。将tt_内容声明移动到/Configuration/TCA/Overrides/tt_content.php

所以你有这样的ext_表:

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

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    $_EXTKEY,
    'Content',
    'Contactbar'
);


$pluginSignature = str_replace('_', '', $_EXTKEY) . '_content';

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:' . $_EXTKEY . '/Configuration/TSconfig/Content.ts">');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'contactbar');
<?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);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::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']

另外,请确保将此配置放在文件
扩展名\u key/configuration/TCA/Overrides/tt\u content.php