DokuWiki

It's better when it's simple

Инструменты пользователя

Инструменты сайта


ru:devel:configuration

Настройки

«ДокуВики» позволяет писать очень гибкие плагины и шаблоны из-за того, что их можно сделать настраиваемыми.

Настройки по умолчанию

Для того, чтобы сделать свой плагин или шаблон настраиваемыми, нужно предоставить файл lib/plugins/<plugin>/conf/default.php, содержащий настройки по умолчанию, и файл lib/plugins/<plugin>/conf/metadata.php, содержащий описание метаданных настроек для управления/отображения опций1).

$conf[<setting>] = <value>;

Метаданные настроек

Для каждой настройки в lib/plugins/<your plugin>/conf/default.php должно существовать значение $meta[<setting>] описанное в файле lib/plugins/<your plugin>/conf/metadata.php2):

$meta[<setting>] = array(<setting class>, <param name> => <param value>);

Если никаких параметров для класса не требуется (см. ниже), то ещё проще:

$meta[<setting>] = array(<setting class>);

Примеры:

$meta['_basic']     = array('fieldset');
$meta['title']      = array('string');
$meta['lang']       = array('dirchoice','_dir' => DOKU_INC.'inc/lang/');
$meta['dmode']      = array('numeric','_pattern' => '/0[0-7]{3,4}/'); // only accept octal representation
$meta['allowdebug'] = array('onoff');
$meta['passcrypt']  = array('multichoice','_choices' => array('smd5','md5','sha1','ssha','crypt','mysql','my411'));

Классы

'' Класс по умолчанию («setting»); текстовое поле (textarea); минимальная проверка допустимости ввода; отображение настройки в кавычках.
'string' Однострочное текстовое поле; минимальная проверка допустимости ввода; отображение настройки в кавычках.
'numeric' Текстовое поле; допустимы цифры и арифметические операции; отображение настройки без кавычек.
'numericopt' То же, что и выше, но может принимать пустые значения.
'onoff' Чекбокс, отображение настройки: 0 или 1.
'multichoice' Поле единственного выбора; отображение настройки в кавычках; необходимый параметр «_choices».
'email' Текстовое поле; ввод должен соответствовать формату адреса электропочты; отображение настройки в кавычках.
'richemail' Текстовое поле, input must conform to email address header format, may include a text part and replacement patterns, отображение настройки в кавычках.
'password' Поле пароля; минимальная проверка допустимости ввода; отображение открытого текста в кавычках.
'dirchoice' Поле множественного выбора; элементы показываются на основании содержания папки, указанной в обязательном параметре «_dir».
'multicheckbox' Чекбоксы для каждого элемента плюс «другое» текстовое поле; отображение в файле конфигурации — разделённый запятыми список отмеченных элементов.
'fieldset' Используется для группировки настроек, но сам по себе не является настройкой. Для ясности в языковых файлах ключи этого типа должны начинаться с символа подчёркивания «_».
'authtype' Создаёт выбор доступных методов аутентификации, на основании имён классов в inc/auth, которые совпадают с шаблоном authtype.class.php.

Параметры

'_pattern' Строка, регулярное выражение. Ввод проверяется на соответствие этому шаблону перед тем, как будет принят.
Опционален для всех классов, исключая «onoff», «multichoice» и «dirchoice», которые просто его игнорируют.
'_choices' Массив вариантов (choices). Используется для заполнения поля выбора. Вариант (choice) будет заменён на локализованную строку, найденную по индексу <setting name>_o_<choice>, если таковая существует.
Необходим для классов «multichoice» и «multicheckbox», игнорируется другими классами.
'_dir' Местонахождение директории, используемой для заполнения списка вариантов.
Необходим для класса «dirchoice», игнорируется другими классами.
'_combine' complimentary output setting values which can be combined into a single display checkbox
Опционален для «multicheckbox», игнорируется другими классами.

Доступ к настройкам

Вы можете получить значение настройки в плагинах с помощью метода $this->getConf('<setting>'). В шаблонах с помощью $tpl_getConf('<setting>').

Метки

Для каждой настройки из lib/plugins/<your plugin>/conf/default.php может быть задано значение $lang[<setting>] в файле lib/plugins/<your plugin>/lang/en/settings.php. Это значение будет отображаться в качестве метки данной настройки в менеджере конфигурации. Если файл с метками отсутствует или не содержит значения для конкретной настройки, то менеджер конфигурации будет отображать вместо метки строку «plugin <plugin name> <setting>». Вы также можете создать файл settings.php для других языков. И снова, то же самое применимо и к шаблонам (см. статью «Локализация»).

1)
по аналогии? для шаблонов lib/tpl/<template>/conf/default.php и т. п.
2)
Для шаблонов полностью аналогично: lib/tpl/<your template>/conf/default.php и lib/tpl/<your template>/conf/metadata.php.
ru/devel/configuration.txt · Последнее изменение: 2010-12-26 19:08 — Aleksandr

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki