TYPO3 添加并执行新闻扩展的操作
TYPO3 add and implement action for news extension
在我的 Configuration\TCA\Overrides\tx_news_domain_model.php 中,我将选项添加到 select 字段,如下所示:
$GLOBALS['TYPO3_CONF_VARS']['EXT']['news']['switchableControllerActions']['newItems']['News->gallery'] = 'Gallery view';
在我的ext_localconf.php
$GLOBALS['TYPO3_CONF_VARS']['EXT']['news']['classes']['Controller/NewsController'][] = 'news_extender';
在我的分机中
namespace Vendor\NewsExtender\Controller\NewsController;
class NewsController extends \GeorgRinger\News\Controller\NewsContoller {
public function galleryAction()
{
...
}
}
我得到一个错误:控制器中不存在一个动作"galleryAction" "GeorgRinger\News\Controller\NewsController" 所以我的猜测是没有覆盖实际的 NewsController。
我的问题是是否可以按照我的方式向控制器添加新操作 (['Controller/NewsController'][]
)?如果没有,我可以通过其他方式实现吗?如果是,请提供示例。
第一个代码必须进入 ext_localconf 文件。请将完整代码上传到例如 github.com 以查看,总体来说它看起来不错
我不知道我到底做了什么来修复它,但在我进行研究时我发现我的控制器路径是错误的,在更改它之后我又花了几个小时从 BE 中清除缓存并重新安装扩展没有结果。在我的 NewsController 添加行 function listAction() {}
之后,我终于得到了一个错误
Fatal error: Cannot redeclare GeorgRinger\News\Controller\NewsController::listAction() in D:\live_system\typo3\typo3_src\typo3temp\Cache\Code\news\tx_news_controller_newscontroller.php on line 618
。再次手动清除 Typo3temp/Cache 并从我的控制器中删除 listAction
后一切正常。
在我的 Configuration\TCA\Overrides\tx_news_domain_model.php 中,我将选项添加到 select 字段,如下所示:
$GLOBALS['TYPO3_CONF_VARS']['EXT']['news']['switchableControllerActions']['newItems']['News->gallery'] = 'Gallery view';
在我的ext_localconf.php
$GLOBALS['TYPO3_CONF_VARS']['EXT']['news']['classes']['Controller/NewsController'][] = 'news_extender';
在我的分机中
namespace Vendor\NewsExtender\Controller\NewsController;
class NewsController extends \GeorgRinger\News\Controller\NewsContoller {
public function galleryAction()
{
...
}
}
我得到一个错误:控制器中不存在一个动作"galleryAction" "GeorgRinger\News\Controller\NewsController" 所以我的猜测是没有覆盖实际的 NewsController。
我的问题是是否可以按照我的方式向控制器添加新操作 (['Controller/NewsController'][]
)?如果没有,我可以通过其他方式实现吗?如果是,请提供示例。
第一个代码必须进入 ext_localconf 文件。请将完整代码上传到例如 github.com 以查看,总体来说它看起来不错
我不知道我到底做了什么来修复它,但在我进行研究时我发现我的控制器路径是错误的,在更改它之后我又花了几个小时从 BE 中清除缓存并重新安装扩展没有结果。在我的 NewsController 添加行 function listAction() {}
之后,我终于得到了一个错误
Fatal error: Cannot redeclare GeorgRinger\News\Controller\NewsController::listAction() in D:\live_system\typo3\typo3_src\typo3temp\Cache\Code\news\tx_news_controller_newscontroller.php on line 618
。再次手动清除 Typo3temp/Cache 并从我的控制器中删除 listAction
后一切正常。