我尝试添加一个名为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.
答案 0 :(得分:7)
您的错误有两种常见的可能性:
Custom->confirmAgb
添加到flexform中允许的调用中,或者你已添加它但没有更新插件(插件配置仅在保存插件/ tt_content元素时更新)controller->action
组合。PS:尝试将此添加到您的TS(setup.txt),如果找不到给定的插件,插件现在应该选择默认操作:
plugin.tx_yourextensionmvc.callDefaultActionIfActionCantBeResolved = 1
可能有更多不常见的案例
答案 1 :(得分:1)
您绝对应该避免在configurePlugin和其他Extbase上下文中使用$ _EXTKEY。 Extbase需要Vendor.ExtensionName
格式 - $ _EXTKEY是lowercase_underscored
格式。将这些参数定义为硬编码值可以解决您为给定插件解析控制器的问题。
准确地说:在命令中使用Eddcapone.Myextension
作为扩展名参数来注册/配置插件。