Опции плагинов. Новые возможности

Рубрика: MaxSite CMS -> Ход работ
Понедельник, 6 июля 2009 г.
Просмотров: 3548
Подписаться на комментарии по RSS
]]>
]]>

У нас есть масса плагинов, которые могут иметь свои настройки. Но создавать страницу управления этими опциями может оказаться не совсем оправданной задачей: код формы, админ-страницы будет больше, чем сам плагин. Поэтому я задумал вынести весь код управления в одну специальную страницу (в админке), а в самом плагине достатачно будет лишь указать название опции, тип и ключи массива. Если в плагине определена специальная функция, то возле плагина появится ссылка на настройки этого плагина.

В последнем latest (MaxSite CMS 0.334) я наконец-то реализовал эту задумку.

На практике это выглядит так. В плагине необходимо предопределить функцию «плагин_mso_options». После активации плагина на его стутусе «вкл» появится ссылка на страницу настроек. На этой странице и находится форма с нашими опциями.

Теперь я покажу код на примере переделанного плагина «pagination2».

  1.  function pagination2_mso_options()
  2.  {
  3.   # ключ, тип, ключи массива
  4.   mso_admin_plugin_options('pagination2', 'plugins',
  5.   array(
  6.   'old' => array(
  7.   'type' => 'text',
  8.   'name' => 'Записи старее',
  9.   'description' => 'Текст ссылок для старых записей',
  10.   'default' => t('Старее »»»', 'plugins')
  11.   ),
  12.   'new' => array(
  13.   'type' => 'text',
  14.   'name' => 'Записи новее',
  15.   'description' => 'Текст ссылки на новые записи',
  16.   'default' => t('««« Новее', 'plugins')
  17.   ),
  18.   'sep' => array(
  19.   'type' => 'text',
  20.   'name' => 'Разделитель',
  21.   'description' => 'Укажите разделитель',
  22.   'default' => ' | '
  23.   )
  24.   )
  25.   );
  26.  }

В функции pagination2_mso_options() мы прописываем всего одну функцию mso_admin_plugin_options() с тремя параметрами:

  • ключ
  • тип
  • массив ключей-опций

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

  1.  $options = mso_get_option('pagination2', 'plugins', array());

То есть ничего необычного. grin

Самая интересная «фишка» - последний параметр mso_admin_plugin_options() - в нем мы описываем ключи-опции. Необходимо отметить, что если использовать какой-то другой способ хранения опций, например в виде строки, то новая возможность не подойдет - здесь будет работать только опция-массив.

Дальше просто. Каждый ключ описывается в виде массива. Параметр «type» может быть либо «text», либо «textarea». Со временем, я подумаю, как подключить и другие типы. Параметр «name» - название/заголовок опции. Описание - «description». Если значения опции не определено, то в форме выводится текст из «default».

Надеюсь, что данная возможность пригодится разработчикам плагинов и упростит работу с опциями.

Обсудить новую возможность можно на нашем форуме.

]]>twitter.com Google Buzz google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru]]>

Комментариев: 2

  1. 2009-07-06 в 21:56:03 | librarian
    ]]>]]>

    О! Просто must_have это реально нужная фича.

  2. 2009-07-07 в 11:24:10 | Griz
    ]]>]]>

    Ну вот.smile А я уже по старинке плагин написал. Все управление вручную.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

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



grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)