lib/tpl/<template>/conf/default.php
и т. п.Содержание
Настройки
«ДокуВики» позволяет писать очень гибкие плагины и шаблоны из-за того, что их можно сделать настраиваемыми.
Настройки по умолчанию
Для того, чтобы сделать свой плагин или шаблон настраиваемыми, нужно предоставить файл 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.php
2):
$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
для других языков. И снова, то же самое применимо и к шаблонам (см. статью «Локализация»).