我在TYPO3 4.5站点中使用扩展构建器设置了一个extbase扩展,其中只包含控制器中的默认listAction。
现在我想添加一个新的Action,它不起作用。
我不需要(也就是无法开始工作)flexform来选择控制器动作。
因为有一个字段“插件模式”,我想我可以在这里手动输入操作:
并在ext_localconf.php中扩展插件配置:
Tx_Extbase_Utility_Extension::configurePlugin(
$_EXTKEY,
'Pluginname',
array(
'Controllername' => 'list,listfeatured',
),
);
此外,在控制器中,我添加了一个新操作。
/**
* action listfeatured
*
* @return void
*/
public function listfeaturedAction() {
// do something
}
但是,唉,行动根本没有被召唤。
我是否解释了字段“插件模式”错误? 我错过了什么吗?
或者:我可以通过TS设置“后端”插件的操作吗?
答案 0 :(得分:5)
您需要正确使用FlexForm来设置可切换操作列表。
其他选项是创建另一个默认操作为listfeatured
的插件。
如果您决定只使用单个插件,只需要向我们展示/描述您在FlexForm中尝试了什么(可能是新问题)
编辑:当您在问题中向我们展示时,您决定哪个Controller
和action
是给定插件的默认值,因此要添加将使用现有控制器的新插件,将其添加到您的ext_localconf.php
Tx_Extbase_Utility_Extension::configurePlugin(
$_EXTKEY,
'MyFeaturedPlugin',
array(
'Controllername' => 'listfeatured',
),
);
如果您希望能够在BE中使用它,则可能还需要registerPlugin
中的ext_tables.php
(如果ie。插件只能与TS一起放置,则可以省略)。您将使用以下内容执行此操作:Tx_Extbase_Utility_Plugin::registerPlugin
答案 1 :(得分:2)
除了FlexForm之外,还有一种方法可以使用PHP
在插件中读取字段插件模式。
现在,我正在制作一个插件并希望区分modi。一些模式B应该从请求的最开始设置,更好的是它不应该通过HTTP发送,而是从数据模型中读取。
所以我在“插件模式”字段中设置文本'myModusB`,并在插件中检查:
exit (print_r($this, true));
然后我找到了
[cObj] => TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer Object
...
[data] => Array
(
...
[select_key] => myModusB
...
所以在插件中写
$modus = $this->cObj->data["select_key"];
我会得到文本并可以处理它。
这是针对6.1.3版测试的。