【问题标题】:TYPO3 add and implement action for news extensionTYPO3 为新闻扩展添加和实现动作
【发布时间】:2017-09-28 16:30:40
【问题描述】:

在我的 Configuration\TCA\Overrides\tx_news_domain_model.php 我添加选项来选择这样的字段:

$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()
    {
    ...
    }
}

我收到一个错误:控制器“GeorgRinger\News\Controller\NewsController”中不存在操作“galleryAction”所以我的猜测是不会发生对实际 NewsController 的覆盖。 我的问题是是否可以像我一样向控制器添加新操作(['Controller/NewsController'][])?如果没有,我可以通过其他方式实现吗?如果有,请举个例子。

【问题讨论】:

    标签: php typo3 tx-news


    【解决方案1】:

    第一个代码必须进入 ext_localconf 文件。请将完整代码上传到例如 github.com 看看,一般看起来不错

    【讨论】:

    • 感谢您的回复。除了 ext_emconf.php 文件和if (!defined ('TYPO3_MODE')) die ('Access denied.'); 部分之外,没有更多代码。我按照您的建议将第一部分的位置更改为 ext_localconf,将命名空间从 Vendor\NewsExtender\Controller\NewsController 更改为 Vendor\NewsExtender\Controller 并将扩展密钥更改为 newsextender,但没有成功。
    【解决方案2】:

    我不知道我到底做了什么来修复它,但是当我做我的研究时,我发现我的控制器路径是错误的,在更改它之后,我花了几个小时从 BE 清除缓存并重新安装扩展,没有结果。将行 function listAction() {} 添加到我的 NewsController 后,我终于得到了一个错误 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 后一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多