我无法覆盖com_users
(Joomla 3.4)的控制器。 (我想,如果经理可以在他加入之后在网站上进行用户注册。所以我想查看注册表,如果我在网站上。)
如果我修改原始文件,那么它工作正常,但我不想修改原始文件。我尝试了2个覆盖插件(MVC override,覆盖主机)。这些插件会覆盖该文件,但在我单击注册按钮后,我收到以下错误消息:
致命错误:无法在第136行的D:\ wamp \ www \ mysite \ components \ com_users \ controller.php中重新声明类UsersController
这是同一个文件。
我将行class UsersController extends JControllerLegacy
修改为此class UsersController extends UsersControllerDefault
。因为我读了这个here。
有什么不同?为什么不这样工作? :/
答案 0 :(得分:0)
"Make Extendable"
设置为是(插件:系统 - MVC覆盖)templates/YOUR_TEMPLATE/code/com_users/controller.php
class UsersController extends UsersControllerDefault {
这应该可以解决问题。
答案 1 :(得分:0)
这也发生在我身上。问题是我还覆盖了一个子控制器(在控制器文件夹内)
我必须添加
$bufferContent = str_replace('extends UsersController','extends UsersControllerDefault',$bufferContent);
$bufferContent = str_replace('require_once', '//require_once', $bufferContent);
之后
$bufferContent = str_replace($originalClass,$replaceClass,$bufferFile);
这是一个hack,只能用于com_user覆盖。您需要更改第一行以反映正确的组件类。