【问题标题】:TYPO3 - Add flexform to my own extensionTYPO3 - 将 flexform 添加到我自己的扩展中
【发布时间】:2015-01-29 16:03:37
【问题描述】:

我正在构建自己的扩展。 我找到了这个关于将 Flexform 添加到扩展的页面 https://gist.github.com/alrnz/c0f00b196d378f5b9150

在我的 ext_tables.php 我有这个:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    $_EXTKEY,
    'Xlsxtotables',
    'XLSX to tables'
);

// Include flex forms
$pluginSignature = str_replace('_', '', $_EXTKEY) . '_' .    'xlsxtotables'; // from registerPlugin(...)
$TCA['tt_content']['types']['list']['subtypes_addlist']   [$pluginSignature] = 'pi_flexform';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
    $pluginSignature,    
    'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/flexform_xlsxtotables.xml'
); 

我知道 XML 文件在正确的位置,但我在 TYPO3 后端没有得到任何信息。

有什么建议吗?

【问题讨论】:

    标签: fluid extbase typo3-6.2.x


    【解决方案1】:

    尝试替换

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

    通过

    $extensionName = strtolower(\TYPO3\CMS\Core\Utility\GeneralUtility::underscoredToUpperCamelCase($_EXTKEY));
    $pluginSignature = $extensionName.'_'.'xlsxtotables';
    

    在你看到你的 flexform 发生变化之前,不要忘记清空你的常规缓存。

    【讨论】:

      【解决方案2】:

      您可以在 ext_tables.php 文件中尝试以下代码

      $pluginName = 'Pi1'; // Give Your Plugin Nmae
      $pluginSignature = preg_replace('/[^a-z0-9]/', '', strtolower($_EXTKEY)) . '_' . strtolower($pluginName);
      
      // FlexForm configuration
      $TCA['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
      \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
          $pluginSignature,
          'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/flexformname.xml'
      );
      

      要在一个或多个前端插件中添加 Flexforms,您可以在 ext_tables.php

      中使用以下代码
      $extensionName = \TYPO3\CMS\Core\Utility\GeneralUtility::underscoredToUpperCamelCase($_EXTKEY);
      $frontendpluginName = 'xxx'; //Your Front-end Plugin Name
      $pluginSignature = strtolower($extensionName) . '_'.strtolower($frontendpluginName);
      $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
      \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/xyz.xml');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多