Я не могу переопределить контроллер com_users
(Joomla 3.4). (Я хочу, если менеджер может сделать регистрацию пользователя на сайте после того, как он вошел в систему. Поэтому я хочу видеть форму регистрации, если я вошел на сайт.)
Если я изменяю исходный файл, он работает нормально, но я не хочу изменять исходный файл. Я попробовал 2 плагина переопределения для этого (Переопределение MVC, Переопределить мастер). Эти плагины переопределяют файл, но после того, как я нажимаю кнопку регистрации, я получаю следующее сообщение об ошибке:
Неустранимая ошибка: невозможно переопределить класс UsersController в D: \ wamp \ www \ mysite \ components \ com_users \ controller.php в строке 136
Это тот же файл.
Я изменил строку class UsersController extends JControllerLegacy
к этому class UsersController extends UsersControllerDefault
, Потому что я читаю это Вот.
В чем разница? Почему это не работает таким образом? : /
"Make Extendable"
установлен в да в бэкэнде (плагины: система — переопределение MVC)templates/YOUR_TEMPLATE/code/com_users/controller.php
class UsersController extends UsersControllerDefault {
Это должно сделать свое дело.
Это случилось со мной тоже. Проблема заключалась в том, что я также переопределял субконтроллер (внутри папок контроллеров)
Я должен был добавить
$bufferContent = str_replace('extends UsersController','extends UsersControllerDefault',$bufferContent);
$bufferContent = str_replace('require_once', '//require_once', $bufferContent);
после
$bufferContent = str_replace($originalClass,$replaceClass,$bufferFile);
Это хак и будет работать только переопределение com_user. Вам нужно изменить первую строку, чтобы отразить ваш правильный класс компонента.