我不能覆盖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。因为我读过这个这里。有什么关系?为什么它不这样工作呢?
发布于 2015-12-17 14:58:48
"Make Extendable"设置为,yes (Plugins: System重写)templates/YOUR_TEMPLATE/code/com_users/controller.phpclass UsersController extends UsersControllerDefault {这应该能起作用。
发布于 2017-04-08 12:26:26
这也发生在我身上。问题是,我还重写了一个子控制器(在控制器文件夹中)。
我不得不补充
$bufferContent = str_replace('extends UsersController','extends UsersControllerDefault',$bufferContent);
$bufferContent = str_replace('require_once', '//require_once', $bufferContent);之后
$bufferContent = str_replace($originalClass,$replaceClass,$bufferFile);这是一个黑客,将只工作的com_user覆盖。您需要更改第一行以反映正确的组件类。
https://stackoverflow.com/questions/29976961
复制相似问题