typo3 - 为什么这个 pibase 扩展没有被加载?
问题描述
我正在从 TYPO3 更新一个项目
- 6.x 到 7.x
- 7.x 到 8.7
我已经在 8.7 上,现在正在开发扩展。我们有一个 pibase 扩展,如果 8.7 中仍然可以使用该支持
我已经重构了一些东西:
- 我用基于 ClassAliasMap.php 的新命名空间替换了旧类
- 我已经使用 Configuration/TCA/Overrides 调整了新的 TCA 方法
- 从 $TCA 更改为 $GLOBALS['TCA']
另一个任务是将模板从 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() 但它们从未被触发。
解决方案
我认为这部分
\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
推荐阅读
- laravel - React-Native fetch post to lumen/laravel 返回 MethodNotAllowed(405) 但邮递员工作
- sql-server - Informatica Cloud:无法连接到 SQL Server(接收超时)
- wolfram-mathematica - 为什么 Mathematica 对导数产生看似错误的答案?
- algorithm - 测试 DNA 串中的突变数量
- python - Python - 如何将现有字典添加到一组新键中
- r - rgl:如何制作更高分辨率的快照?
- perl - Perl/DBI selectrow_array 范围混淆
- android - 为什么安装时应用名称不显示在顶部?
- python - PythonKit 错误“找不到 Python 库。使用 Python 库的路径设置 PYTHON_LIBRARY 环境变量”
- python-3.x - 使用中值基础特定列值选择的 Python 插补值