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

Просмотров: 14891Комментарии: 2
Старый архив

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

В последнем 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 RSS

2Griz07-07-2009 11:24

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

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

Комментарий будет опубликован после проверки

Вы можете войти под своим логином или зарегистрироваться на сайте.

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

О проекте

MaxSite CMS предназначена для создания сайтов любой сложности. Система отлично подходит обычным пользователям, вебмастерам, фрилансерам и вебстудиям.