首页 > 解决方案 > 为什么这个 pibase 扩展没有被加载?

问题描述

我正在从 TYPO3 更新一个项目

我已经在 8.7 上,现在正在开发扩展。我们有一个 pibase 扩展,如果 8.7 中仍然可以使用该支持

我已经重构了一些东西:

另一个任务是将模板从 css_styled_content 改写为 fluid_styled_content。但我不在那里,因为我坚持让插件在模板>根页面>信息/修改>编辑-整体-模板>包含中可用。它只是不在“可用项目”列表中。

我认为有两个步骤可以完成

注册用于前端渲染的插件

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPItoST43($_EXTKEY, 'pi1/class.tx_rxextkey_pi1.php', '_pi1', 'list_type', FALSE);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPItoST43($_EXTKEY, 'pi2/class.tx_rxextkey_pi2.php', '_pi1', 'list_type', FALSE);

并使插件在后端可选择

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPlugin(
array('LLL:EXT:rx_extkey/Resources/Private/Language/locallang_db.xml:tt_content.list_type_pi1',
     'rx_extkey_pi1',
     \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('rx_extkey') . 'ext_icon.png'
     ),
     'list_type',
     'rx_extkey'
    );

以下是扩展/插件的一般结构:

myextension
- configuration/
  - TCA/
   - Overrides/
     tt_content.php
- doc/
  wizard_form.dat
  wizard_form.html
- eId/
  classX.php
  classO.php
  classL.php
- pi1/
  class.tx_myextension_pi1.php
  flexform_ds.xml
  locallang.xml
- pi2/
  class.tx_myextension_pi1.php
  flexform_ds.xml
  locallang.xml
- res/
  something.html
  somethingelse.html
ext_emconf.php
ext_icon.gif
ext_localconf.php
ext_tables.php
locallang_db.xml

所以在 ext_localconf 我从 ExtensionManagementUtility 调用 addPItoST43 来实际添加类文件

emconf 只是“默认”,可以说是插件的描述

文件 ext_tables.php 现在是空的,因为那里的所有东西都移到了 Configuration/ 部分

我移至 Configuration/ 目录中的 tt_content.php 的部分包含 2 个 TCA 覆盖,带有 $GLOBALS['TCA']['tt_content']['types'] 和 $GLOBALS['TCA']['tt_content'][' columns'] 后跟来自 ExtensionManagementUtility 的 3 个 addPlugin 调用

因此,完成所有这些后,我仍然无法在根页面中包含插件以获取实际功能-我不知道如何进一步处理以使其正常工作-非常感谢任何帮助,如果需要任何进一步的信息或代码只是发表评论

进一步调查: 所以我已经像扩展的每个部分一样进行了调试,后端的部分似乎工作得很好,我看到了插件内容,并且可以从数据库中选择部分以理论上显示在前端。唯一的问题是 TYPO3 从未进入我的类 tx_extkey_pi1 以实际用内容填充模板 - 我在 main() 和 renderTemplate() 中都有带有 exit() 的 var_dumps() 但它们从未被触发。

标签: typo3typo3-7.6.xtypo3-8.xtypo3-extensionspibase

解决方案


我认为这部分

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPlugin(
array('LLL:EXT:rx_extkey/Resources/Private/Language/locallang_db.xml:tt_content.list_type_pi1',
     'rx_extkey_pi1',
     \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('rx_extkey') . 'ext_icon.png'
     ),
     'list_type',
     'rx_extkey'
    );

属于 ext_tables.php


推荐阅读