为什么这个 pibase 扩展无法加载?

问题描述 投票:0回答:1

我正在从 TYPO3 更新项目

  • 6.x 至 7.x
  • 7.x 至 8.7

我已经使用 8.7,现在正在开发扩展。我们有一个 pibase 扩展,在 8.7 中应该仍然提供支持。

我已经重构了一些东西:

  • 我用基于 ClassAliasMap.php 的新命名空间替换了旧类
  • 我已经通过配置/TCA/覆盖调整了新的 TCA 方法
  • 从 $TCA 更改为 $GLOBALS['TCA']

另一项任务是将模板从

css_styled_content
修改为
fluid_styled_content
。但我不在那里,因为我一直在努力让插件在
Template>RootPage>Info/Modify>Edit-whole-template>Includes
中可用。它只是不在“可用项目”列表中。

我认为有两个步骤可以完成此任务。

注册前端渲染插件

\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/ 目录中的

tt_content.php
的部分包含 2 个 TCA 覆盖,其中 $GLOBALS['TCA']['tt_content']['types'] 和 $GLOBALS['TCA']['tt_content'][ 'columns'] 后跟同样来自 ExtensionManagementUtility 的 3 个 addPlugin 调用

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

进一步调查: 所以我已经调试了扩展的每个部分,后端的部分似乎工作得很好,我看到了插件内容,并且可以从数据库中选择部分,理论上显示在前端。

唯一的事情是 TYPO3 从未进入我的班级

tx_extkey_pi1
来实际用内容填充模板 - 我在
var_dumps()
exit()
中都有
main()
renderTemplate()
但它们从未被触发。

typo3 typo3-7.6.x typo3-8.x typo3-extensions pibase
1个回答
0
投票

我想这部分

\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

© www.soinside.com 2019 - 2024. All rights reserved.