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

Просмотров: 14686Комментарии: 2
MaxSite CMSХод работ

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

В последнем 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 предназначена для создания сайтов любой сложности. Система отлично подходит обычным пользователям, вебмастерам, фрилансерам и вебстудиям.