控制器" X"此插件不允许

时间:2016-10-20 09:11:59

标签: php typo3 typo3-6.2.x

我尝试添加一个名为confirmAgbAction的动作的新控制器。

<?php
namespace Eddcapone\MyExtension\Controller;

/**
 * CustomController
 */
class CustomController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController 
{

    /**
     * action list
     *
     * @return void
     */
    public function confirmAgbAction()
    {
        echo "<p>HALLO WELT</p>";    
    }
}

我甚至将其添加到ext_localconf.php

<?php
if (!defined('TYPO3_MODE')) {
    die('Access denied.');
}

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'Eddcapone.' . $_EXTKEY,
    'Myfilelist',
    array(
        'Category' => 'list,show',
        'File' => 'show',
        'Download' => 'download',
        'Custom' => 'confirmAgb'
    ),
    // non-cacheable actions
    array(
        'Category' => 'list,show',
        'File' => 'topFive',
        'Download' => 'download',
        'Custom' => 'confirmAgb'
    )
);

这就是我在模板中调用操作的方式:

<f:link.action controller="Custom" action="confirmAgb" pluginName="Myfilelist" class="mbButton">Download</f:link.action>

然而,我总是得到:

#1313855173: The controller "Custom" is not allowed by this plugin. Please check for TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin() in your ext_localconf.php.

2 个答案:

答案 0 :(得分:7)

您的错误有两种常见的可能性:

  1. 您使用flexform嵌入插件。你没有将Custom->confirmAgb添加到flexform中允许的调用中,或者你已添加它但没有更新插件(插件配置仅在保存插件/ tt_content元素时更新)
  2. 页面上有两个插件,错误由另一个插件触发,因为不允许controller->action组合。
  3. PS:尝试将此添加到您的TS(setup.txt),如果找不到给定的插件,插件现在应该选择默认操作:

    plugin.tx_yourextensionmvc.callDefaultActionIfActionCantBeResolved = 1
    

    可能有更多不常见的案例

答案 1 :(得分:1)

您绝对应该避免在configurePlugin和其他Extbase上下文中使用$ _EXTKEY。 Extbase需要Vendor.ExtensionName格式 - $ _EXTKEY是lowercase_underscored格式。将这些参数定义为硬编码值可以解决您为给定插件解析控制器的问题。

准确地说:在命令中使用Eddcapone.Myextension作为扩展名参数来注册/配置插件。