Flexform 在 TYPO3 9.5 中不工作,无法自行修复
Flexform not working in TYPO3 9.5, not able to fix it myself
我正在使用 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_content 声明移动到 /Configuration/TCA/Overrides/tt_content.php
所以你有 ext_tables 这样的:
<?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');
你 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);
\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']
)
还要确保将此配置放在文件中 your_extension_key/Configuration/TCA/Overrides/tt_content.php
我正在使用 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_content 声明移动到 /Configuration/TCA/Overrides/tt_content.php
所以你有 ext_tables 这样的:
<?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');
你 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);
\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']
)
还要确保将此配置放在文件中 your_extension_key/Configuration/TCA/Overrides/tt_content.php