如果我有以下Typoscript让一个页面从控制器呈现一个动作,我是否也可以用它来设置另一个视图而不是默认值?
151 = USER_INT
151 {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
pluginName = Pi1
extensionName = WdProducts
controller = Products
vendorName = Bitmotion
action = showFromTyposcriptAction
switchableControllerActions {
Products {
1 = showFromTyposcript
}
}
settings =< plugin.tx_wdproducts.settings
persistence =< plugin.tx_wdproducts.persistence
view =< plugin.tx_wdproducts.view
update =< plugin.tx_wdproducts.update
}
呈现的视图为ShowFromTyposcript.html
,但我想要查看Show.html
。或者我可以使用setTemplatePathAndFilename
从控制器设置另一个视图(已经尝试但没有让它工作)?
我使用TYPO3 6.2。
答案 0 :(得分:1)
创建两个插件,即ShowFromTyposcript
和Show
,作为ext_localconf.php
中的第一个使用所需的操作,因此您可以:
10 = USER
10 {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
extensionName = WdProducts
pluginName = ShowFromTyposcript
vendorName = Bitmotion
}
20 = USER
20 {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
extensionName = WdProducts
pluginName = Show
vendorName = Bitmotion
}
其他方法是根据条件使用forwarding
对其他操作的一个共同操作:
public function showFromTyposcriptAction(){
if (intval(GeneralUtility::_GET('product'))>0){
$this->forward('show');
}
....
}
public function showAction(){
$productUid = intval(GeneralUtility::_GET('product'));
$product = $this->productRepository->finByUid($prodcutUid);
....
}