首页 > 解决方案 > 在 Typo3 7.6 中创建前端插件

问题描述

我知道有多个线程有类似的问题,但我希望有人能给我一个单独的解决方案。

因此,我正在开发一个已经运行多个插件的现有 Typo3 7.6.23 项目,我尝试复制我能找到的每个实例来复制插件并对其进行自定义以供我使用。那没有用。我在下拉列表中看不到插件。

然后我尝试按照此链接中的步骤进行操作。
(1) 注册插件

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    $_EXTKEY,
    'DocumentService',
    'DokumentenService'
);

(2) 配置插件

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
     'TYPO3.' . $_EXTKEY, 'DocumentService', array(
          'Example' => 'showDocumentService',
      ),
      // non-cacheable actions
      array(
         'Example' => '',
      )
);

我应该能够在后端下拉列表中选择插件。但它只是没有出现在我需要它的内容元素的插件列表中。

我什至在正确的文件夹中创建了一个模板,并在控制器中为它创建了一个动作..

我被困在这里,很想尽快听到解决方案。

标签: phppluginstypo3fluidtypo3-7.6.x

解决方案


这是来自 Aimeos Webshop 的工作示例。请注意,您必须更改插件的名称,您不应使用TYPO3.Aimeos.为插件名称选择您自己的名称。

configurePlugin来自https://github.com/aimeos/aimeos-typo3/blob/2018.04/ext_localconf.php#L27的示例,这将为前端配置您的插件:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'Aimeos.' . $_EXTKEY,
    'locale-select',
    array( 'Locale' => 'select' ),
    array( 'Locale' => 'select' )
);

registerPlugin例如https://github.com/aimeos/aimeos-typo3/blob/2018.04/ext_tables.php#L60,这在后端显示了您的插件:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    'Aimeos.' . $_EXTKEY,
    'locale-select',
    'Aimeos Shop - Locale selector'
);

这是操作的入口点https://github.com/aimeos/aimeos-typo3/blob/2018.04/Classes/Controller/LocaleController.php#L27

Extension Builder 可以帮助您设置新的 TYPO3 扩展,并且也可用于 TYPO3 v7.6,请参阅https://extensions.typo3.org/extension/extension_builder/

最后是关于为 TYPO3 v7.6 编写扩展的文档https://docs.typo3.org/m/typo3/reference-coreapi/7.6/en-us/ExtensionArchitecture/Index.html


推荐阅读