Опции плагинов. Новые возможности
Понедельник, 6 июля 2009 г.
Просмотров: 3548
Подписаться на комментарии по RSS
У нас есть масса плагинов, которые могут иметь свои настройки. Но создавать страницу управления этими опциями может оказаться не совсем оправданной задачей: код формы, админ-страницы будет больше, чем сам плагин. Поэтому я задумал вынести весь код управления в одну специальную страницу (в админке), а в самом плагине достатачно будет лишь указать название опции, тип и ключи массива. Если в плагине определена специальная функция, то возле плагина появится ссылка на настройки этого плагина.
В последнем latest (MaxSite CMS 0.334) я наконец-то реализовал эту задумку.
На практике это выглядит так. В плагине необходимо предопределить функцию «плагин_mso_options». После активации плагина на его стутусе «вкл» появится ссылка на страницу настроек. На этой странице и находится форма с нашими опциями.
Теперь я покажу код на примере переделанного плагина «pagination2».
- function pagination2_mso_options()
- {
- # ключ, тип, ключи массива
- mso_admin_plugin_options('pagination2', 'plugins',
- array(
- 'old' => array(
- 'type' => 'text',
- 'name' => 'Записи старее',
- 'description' => 'Текст ссылок для старых записей',
- 'default' => t('Старее »»»', 'plugins')
- ),
- 'new' => array(
- 'type' => 'text',
- 'name' => 'Записи новее',
- 'description' => 'Текст ссылки на новые записи',
- 'default' => t('««« Новее', 'plugins')
- ),
- 'sep' => array(
- 'type' => 'text',
- 'name' => 'Разделитель',
- 'description' => 'Укажите разделитель',
- 'default' => ' | '
- )
- )
- );
- }
В функции pagination2_mso_options() мы прописываем всего одну функцию mso_admin_plugin_options() с тремя параметрами:
- ключ
- тип
- массив ключей-опций
То есть мы предполагаем, что все наши настройки хранятся в одном массиве. Чтобы извлечь опции в нашем случае используем стандартный код:
- $options = mso_get_option('pagination2', 'plugins', array());
То есть ничего необычного. ![]()
Самая интересная «фишка» - последний параметр mso_admin_plugin_options() - в нем мы описываем ключи-опции. Необходимо отметить, что если использовать какой-то другой способ хранения опций, например в виде строки, то новая возможность не подойдет - здесь будет работать только опция-массив.
Дальше просто. Каждый ключ описывается в виде массива. Параметр «type» может быть либо «text», либо «textarea». Со временем, я подумаю, как подключить и другие типы. Параметр «name» - название/заголовок опции. Описание - «description». Если значения опции не определено, то в форме выводится текст из «default».
Надеюсь, что данная возможность пригодится разработчикам плагинов и упростит работу с опциями.
Обсудить новую возможность можно на нашем форуме.
Комментариев: 2
О! Просто must_have это реально нужная фича.
Ну вот.
А я уже по старинке плагин написал. Все управление вручную.