IT-Service-WordPress / WPF

Шаблон плагина для WordPress (CMS)
GNU General Public License v2.0
0 stars 0 forks source link

Обеспечить поддержку нескольких плагинов в одном пакете #3

Closed sergey-s-betke closed 10 years ago

sergey-s-betke commented 10 years ago

Необходимо обеспечить поддержку нескольких плагинов в одном пакете. Для каждого плагина будет свой "главный" файл, остальное будет общим.

sergey-s-betke commented 10 years ago

Дополнительные плагины в большинстве случаев зависят от "главного", и должны при активации проверять его активацию, и, возможно, - активировать главный плагин. А главный плагин, в свою очередь, при деактивации должен деактивировать дочерние плагины.

Сейчас такой возможности в WPF нет, но необходимо добавить.

Для этих целей определим отдельные компоненты в admin-part плагина - главный плагин, дочерний плагин. Потому как если он один в пакете - нет смысла грузить лишний код и выполнять лишние проверки. Если же их несколько - тогда и нужно выполнять все указанные выше проверки и действия.

Необходимо продумать механизм, позволяющий определить главному плагину активированные дочерние плагины. Пока вижу достаточно простой способ - запросить активированные плагины, и проверить директорию. Если она совпадает с директорией главного плагина - нашли активированный дочерний плагин.

Сложнее из дочернего плагина найти главный. Как вариант - всегда искать главный плагин в файле main.php в каталоге плагина.

Ну и последний момент - что делать с удалением. Вероятнее всего, обработчик удаления отработает корректно только для удаляемого плагина, но при этом будет удалён весь каталог. То есть удаление необходимо обрабатывать в одном плагине - в главном.

sergey-s-betke commented 10 years ago

Необходимо найти решение проблемы с удалением...

sergey-s-betke commented 10 years ago

wordpress не предполагает наличия нескольких плагинов в одном каталоге. Удаление не проверяет наличия других плагинов в том же каталоге. Может, не рушить логику wordpress?

sergey-s-betke commented 10 years ago

Можно фильтром убрать действие "удалить", однако - фильтр то можно повесить только после активации плагина. А делать для этого отдельный плагин совершено ни к чему.

sergey-s-betke commented 10 years ago

Можно удаление обрабатывать через uninstall.php... Он один, на весь каталог набора плагинов, он в любом случае будет вызван...

sergey-s-betke commented 10 years ago

Итого, в любом случае WordPress не подразумевает активации и удаление других плагинов из процедуры удаления. Посему пока откажусь от этой идеи.