Flexform не работает в TYPO3 9.5, не могу исправить это сам - PullRequest
0 голосов
/ 23 декабря 2018

Я работаю с расширениями FCE для TYPO3, чтобы создавать простые Contentelements.Они прекрасно работают в TYPO3 v8, но когда я устанавливаю их в TYPO3 9.5, мои FlexForms больше не работают.Я не могу найти проблему, надеюсь, кто-то здесь может мне помочь.Может быть, что-то изменилось, и я этого не заметил?

Поскольку полное расширение работает и все выглядит нормально, должна быть какая-то проблема в ext_tables.php, поэтому я скопирую свою здесь.

TCA Call работает, когда я добавляю, например, «заголовок» в список, который он показывает напрямую.Так что плагинSignature тоже подойдет.Я также попытался добавить $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');

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Ваша ошибка в том, что $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

0 голосов
/ 24 декабря 2018

Мне удалось это исправить самому.Если кто-то получил ту же ошибку, решение довольно простое.Переместите ваши объявления 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'
);
...