Как правильно вносить изменения в установленный плагин?

Как правильно вносить изменения в установленный плагин?

от Игорь Сидоров -
Количество ответов: 9
Такой вопрос: я установил плагин Subcourse  для создания и вывода субкурсов, плагин установился в папку mod.   Если мне нужно внести в него какие-либо изменения, то могу ли я править код самого плагина?  Или мне нужно переопределить его код в какой-то другой папке, например в папке самой темы или в local?
В ответ на Игорь Сидоров

Re: Как правильно вносить изменения в установленный плагин?

от Николай Козловский -
Тоже интересует такой вопрос. Только надо еще учитывать таблицы базы данных плагина.
Существуют такие варианты
1. Сделать копию плагина в соседней папке внеся правки в конфигурационные файлы, создать отдельные таблицы и работать с ним, но тогда
потеряется возможность обновлений.
2. Сделать копию плагина в соседней папке, но подключать api исходного плагина и работать с исходными таблицами. При обновлении правки минимальные.
3. Поменять оригинальный плагин максимально отделив логику в отдельном файле. Обновление только вручную.
В ответ на Николай Козловский

Re: Как правильно вносить изменения в установленный плагин?

от Игорь Сидоров -

Судя по всему, при установке данного плагина добавилась только одна таблица БД, на всякий случай прикрепил структуру таблицы.  Сам плагин, судя по всему, активно поддерживается, последняя версия вышла в сентябре этого года https://moodle.org/plugins/pluginversions.php?plugin=mod_subcourse.  Я так понимаю, лучше выбирать тот вариант реализации, при котором возможно обновление с минимальными правками?   

"Сделать копию плагина в соседней папке" - т.е. также в папке mod, только назвать по-своему?

Приложение Subcourse.PNG
В ответ на Игорь Сидоров

Re: Как правильно вносить изменения в установленный плагин?

от Николай Козловский -
Назвать недостаточно. Нужно все файлы в корне мода править, заменяя название на свое. Опции, строки перевода, пути к подключаемым файлам, имена классов, имя основного файла будут отличаться. Мороки там много. Нужно обязательно соблюдать формат имени файлов (mod_name), иначе библиотеки сами не будут подключаться. Создаваемые таблицы кстати прописаны в db\install.xml. Если его удалить, то создаваться не будут при установке.
В ответ на Николай Козловский

Re: Как правильно вносить изменения в установленный плагин?

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода
По варианту 1. Если вы копируете плагин в новую папку, чтобы сделать его клон, нужно менять всё - названия таблиц, строк переводов и т.п. Это очень глубоко зашито в ядро, основная таблица модуля должна обязательно называться по имени модуля, и в ней должен быть определенный минимальный набор полей.
Вариант 2 не подойдет, точно. Вы после плясок с бубном сможете создать запись в таблице старого плагина через форму редактирования нового плагина. Но потом плагин будет отображаться и редактироваться как старый, ведь записи в БД будут соответствовать старому плагину.
Вариант 3 в этой ситуации лучше всего. Поскольку плагин кастомный, проще менять прямо в папке плагина, это не помешает обновлять систему, так как файлы ядра не будут затронуты.

mod_subcourse сделан с умом и очень хорошо поддерживается, поэтому сначала опишите, что вы такое хотите к нему добавить, возможно это легче сделать как-то иначе
В ответ на Vadim Dvorovenko

Re: Как правильно вносить изменения в установленный плагин?

от Alexandre Scherbyna -
Да, действительно, сейчас субкурс хорошо поддерживается, а когда-то с ним мучиться приходилось. Но зато в прошлом была такая версия субкурса, которая могла сама и мета-связь создавать.
А что касается разработки плагинов, то, на мой взгляд, лучше сначала на тестовом сервере править существующий плагин. И только когда будет получен результат, можно приступать к решению следующей задачи: как измененный плагин будет сосуществовать на одном сайте с его исходным вариантом.
В ответ на Игорь Сидоров

Re: Как правильно вносить изменения в установленный плагин?

от Yevgenii Losonogov -
Можете, только не забывайте о том, что версия плагина может обновиться вместе с ней вам придётся каждый раз заново править код.

Все эксперименты такого рода, нужно делать на отдельном тестовом стенде. С проведением обязательной процедуры анализа логов. Как только тестирование на тестовом стенде будет завершено успешно.
Тогда можете переносить директорию "Subcourse" из тестового стенда на рабочий сервер, предварительно сделав резервную копию оригинала директории "Subcourse".

Когда, будете обновлять "moodle" предварительно копируйте директорию "Subcourse" с изменённым вами кодом в вашу резервную директорию.
После распаковки новой обновлённой версии "moodle", загружаете вашу директорию "Subcourse" с исправленным кодом обратно "../moodle/mod/" - ваша версия "Subcourse" будет работать как прежде до обновления.
В ответ на Игорь Сидоров

Re: Как правильно вносить изменения в установленный плагин?

от Alexandre Scherbyna -
Игорь, а позвольте поинтересоваться, какие изменения вы хотите вносить в субкурс и с какой целью? Что в нынешнем плагине вас не устраивает? Может вы новый функционал этому модулю желаете придать?
В ответ на Alexandre Scherbyna

Re: Как правильно вносить изменения в установленный плагин?

от Игорь Сидоров -
В основном кастомные изменения в рендеринге верстки страницы со списком субкурсов, вывод дополнительной информации в соответствиями с требованиями клиента