IT-Service-WordPress / WPF

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

Включить отдельные -admin и -frontend файлы #11

Closed sergey-s-betke closed 10 years ago

sergey-s-betke commented 10 years ago

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

Основная проблема в том, что необходимо связать объекты собственно плагина, его admin-side / frontend. И здесь пространства имён нам не помогут. Потому как переменные в них не поместить.

С определением необходимого файла (его имени) проблем нет. С корректной подпиской на событий и со своевременной загрузкой этих файлов так же нет проблем. Проблема только в одном на данном этапе: необходимо созданный объект плагина связать с создаваемым объектом frontend или admin-side. Просто для этого использовать переменные, но их нет возможности изолировать в пространстве имён!

sergey-s-betke commented 10 years ago

Есть одна идея... В подгружаемых файлах не создавать объекты, а определять функцию с предопределённым именем, которая будет возвращать объект.

Либо же определять там класс с предопределённым именем, которое указывать в объекте плагина, и в коде плагина уже создавать экземпляр этого объекта.

В общем - следует хорошо подумать над механизмом подключения admin-side. Безусловно, будет существенно проще, если после объединения они останутся единым объектом, и мы просто подключим дополнительные компоненты. Тогда достаточно действительно определить функцию, экспортирующую коллекцию компонентов, учитывая то, что связывание компонентов и плагина у нас "позднее" - через метод bind.

sergey-s-betke commented 10 years ago

Итак варианты:

Третий вариант пока что выглядит наиболее красивым, хотя и нарушает правила хорошего тона.

sergey-s-betke commented 10 years ago

Корректное условие для загрузки компонентов интерфейса консоли администратора:

if ( ! current_user_can( 'manage_options' ) && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {