Иногда возникает необходимость переопределить базовые классы, чтобы получить больше функциональности или заставить некоторые основные функции работать по-другому. Есть ли способ, как переопределить основные классы? Если это возможно, то с какими проблемами я могу столкнуться, переопределив их?
20
Ответы:
Да, это возможно.
Вы можете использовать системный плагин для переопределения классов, пожалуйста, прочитайте эту ссылку, и это, и это
Две проблемы, с которыми вы столкнетесь:
вам нужно переопределить весь класс (а не только его части)
если ядро обновлено, а класс также обновлен / изменен, вам необходимо обновить переопределение (при необходимости).
источник
Некоторое время назад я создал плагин, который позволяет вам переопределять базовые классы, но он все еще остается жертвой проблем, которые @jackJoe указал в своем ответе. Тем не менее, это позволяет вам делать переопределения чисто.
https://gist.github.com/dongilbert/3237387
источник
components/com_content/models/articles.php
.Для пользователей Joomla 3 - проверьте это. Это поможет вам.
Переопределить классы MVC в Joomla 3
Плагин - https://github.com/ghazal/plg_mvcoverride
http://docs.joomla.org/How_to_override_the_component_mvc_from_the_Joomla!_core
Спасибо /joomla//users/270/ghazal
источник
Я был над этим очень долго и пообещал Дону, что, как только я закончу, я расскажу об этом подробнее.
Мне нужно было переопределить Joomla MVC для компонентов и попросить Joomla искать переопределения и в папке html моего плагина, а не только внутри папки html шаблона.
Что мне никогда не нравилось, так это то, что разработчики на самом деле беру класс Joomla по умолчанию и связываются с ним, так что я лучше расширю этот класс, если смогу, вместо того, чтобы что-то тормозить.
Мой процесс делает следующее.
вот изображение скорее http://prntscr.com/3d9syq
Первая часть в фрагменте ниже проверяет, где находится пользователь, собирается ли он обновить Joomla. Я удаляю файлы временного класса, которые были созданы, чтобы быть уверенными, что мы получим свежие файлы, когда обновление завершится, а затем позаботится о числе JackJoe. 2.
источник