首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >joomla com_users控制器重写

joomla com_users控制器重写
EN

Stack Overflow用户
提问于 2015-04-30 20:12:10
回答 2查看 839关注 0票数 2

我不能覆盖com_users (Joomla3.4)的控制器。(我想,如果经理在登录in.So后可以在网站上注册,我希望看到注册表格,如果我登录了该网站。)

如果我修改原始文件,那么它可以正常工作,但我不想修改原始文件。为此,我尝试了两个覆盖插件(MVC覆盖,override )。这些插件覆盖文件,但单击注册按钮后,会得到以下错误消息:

致命错误:无法在第136行的D:\wamp\www\mysite\components\com_users\controller.php中重新声明类UsersController

是同一个文件。我将行class UsersController extends JControllerLegacy修改为这个class UsersController extends UsersControllerDefault。因为我读过这个这里。有什么关系?为什么它不这样工作呢?

EN

回答 2

Stack Overflow用户

发布于 2015-12-17 14:58:48

  1. 如果安装了MVC覆盖插件,一定要在后端将"Make Extendable"设置为,yes (Plugins: System重写)
  2. 我建议您放置所有重写(html、代码等)。在模板目录中,因此将控制器文件创建为:templates/YOUR_TEMPLATE/code/com_users/controller.php
  3. 最后,在这个控制器文件中,您可以像前面提到的那样覆盖它: class UsersController extends UsersControllerDefault {

这应该能起作用。

票数 0
EN

Stack Overflow用户

发布于 2017-04-08 12:26:26

这也发生在我身上。问题是,我还重写了一个子控制器(在控制器文件夹中)。

我不得不补充

代码语言:javascript
复制
$bufferContent = str_replace('extends UsersController','extends UsersControllerDefault',$bufferContent);
$bufferContent = str_replace('require_once', '//require_once', $bufferContent);

之后

代码语言:javascript
复制
$bufferContent = str_replace($originalClass,$replaceClass,$bufferFile);

这是一个黑客,将只工作的com_user覆盖。您需要更改第一行以反映正确的组件类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29976961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档