Следующая версия | Предыдущая версия |
wiki:devel:configuration [2025/01/03 15:58] – создано vladpolskiy | wiki:devel:configuration [2025/01/03 16:55] (текущий) – [Template settings] vladpolskiy |
---|
====== Конфигурация ====== | ====== Конфигурация ====== |
DokuWiki позволяет создавать очень гибкие [[plugins|плагены]] и [[templates|шаблоны]] делая их легко настраиваемыми.. | DokuWiki позволяет создавать очень гибкие [[plugins|плагины]] и [[templates|шаблоны]] делая их легко настраиваемыми.. |
| |
===== Default Settings ===== | ===== Default Settings ===== |
Чтобы сделать плагин или шаблон настраиваемым, необходимо предоставить ''lib/plugins/<plugin>/conf/default.php'' который будет содержать настройки по умолчанию, и ''lib/plugins/<plugin>/conf/metadata.php'' который содержит описывающие [[#Configuration Metadata|метаданные конфигурации]] используемые [[plugin:config|диспетчером конфигурации]] для обработки/отображения параметров ((шаблоны аналогичны lib/tpl/<template>/conf/default.php и т.д.)). | Чтобы сделать плагин или шаблон настраиваемым, необходимо предоставить ''lib/plugins/<plugin>/conf/default.php'' который будет содержать настройки по умолчанию, и ''lib/plugins/<plugin>/conf/metadata.php'' который содержит описывающие [[#Configuration Metadata|метаданные конфигурации]] используемые [[wiki:plugin:config|диспетчером конфигурации]] для обработки/отображения параметров ((шаблоны аналогичны lib/tpl/<template>/conf/default.php и т.д.)). |
| |
<code php> | <code php> |
==== Параметры ==== | ==== Параметры ==== |
| |
^ ''%%'_pattern'%%'' | String, a regular expression. Input is tested against this pattern before being accepted.\\ Optional all classes, except ''onoff'', ''multichoice'' and ''dirchoice'' which ignore it. | | ^ ''%%'_pattern'%%'' | Строка, регулярное выражение. Ввод проверяется на соответствие этому шаблону перед принятием.\\ Необязательно для всех классов, кроме ''onoff'', ''multichoice'' и ''dirchoice'' которые его игнорируют. | |
^ ''%%'_choices'%%'' | Array of choices. Used to populate a selection box. Choice will be replaced by a localised language string, indexed by ''<setting name>_o_<choice>'', if one exists.\\ Required by ''multichoice'' & ''multicheckbox'' classes, ignored by others. | | ^ ''%%'_choices'%%'' | Массив вариантов выбора. Используется для заполнения поля выбора. Выбор будет заменен локализованной языковой строкой, индексированной по ''<setting name>_o_<choice>'', если она существует.\\ Требуется для ''multichoice'' & ''multicheckbox'' классов, игнорируется другими. | |
^ ''%%'_dir'%%'' | Location of directory to be used to populate choice list.\\ Required by ''dirchoice'' class, ignored by other classes. | | ^ ''%%'_dir'%%'' | Расположение каталога, который будет использоваться для заполнения списка выбора.\\ Требуется ''dirchoice'' классом, игнорируется другими классами. | |
^ ''%%'_code'%%'' | Sets the obfuscation option for password fields. May be ''plain'', ''base64'' or ''uuencode''. When using the latter two, you need to use [[phpxref>conf_decodeString()]] to access the plain value. | | ^ ''%%'_code'%%'' | Устанавливает опцию запутывания для полей пароля. Может быть ''plain'', ''base64'' или ''uuencode''. При использовании последних двух вам необходимо использовать [[phpxref>conf_decodeString()]] для доступа к простому значению.. | |
^ ''%%'_combine'%%'' | Complimentary output setting values which can be combined into a single display ''checkbox''.\\ Optional for ''multicheckbox'', ignored by other classes. | | ^ ''%%'_combine'%%'' | Дополнительные выходные значения настроек, которые можно объединить в один дисплей ''checkbox.''\\ Необязательно для ''multicheckbox'', игнорируется другими классами. | |
^ ''%%'_code'%%'' | Encoding method to use, accepted values: ''base64'', ''uuencode'', ''plain''. Defaults to plain. | | ^ ''%%'_code'%%'' | Метод кодирования, допустимые значения: ''base64'', ''uuencode'', ''plain''. По умолчанию — обычный. | |
^ ''%%'_min'%%'' | Minimum numeric value.\\ Optional for ''numeric'' and ''numericopt'', ignored by others. | | ^ ''%%'_min'%%'' | Минимальное числовое значение.\\ Необязательно для ''numeric'' и ''numericopt'', игнорируется другими. | |
^ ''%%'_max'%%'' | Maximum numeric value.\\ Optional for ''numeric'' and ''numericopt'', ignored by others. | | ^ ''%%'_max'%%'' | Максимальное числовое значение.\\ Необязательно для ''numeric'' и ''numericopt'', игнорируется другими. | |
^ ''%%'_delimiter'%%'' | String, default ''/'', a single character used as a delimiter for testing regex input values. | | ^ ''%%'_delimiter'%%'' | Строка, по умолчанию ''/'' — один символ, используемый в качестве разделителя для проверки входных значений регулярного выражения. | |
^ ''%%'_pregflags'%%'' | String, default ''ui'', valid preg pattern modifiers used when testing regex input values, for more information see [[http://uk1.php.net/manual/en/reference.pcre.pattern.modifiers.php]]. | | ^ ''%%'_pregflags'%%'' | Строка, по умолчанию ''ui'', допустимые модификаторы шаблона preg, используемые при тестировании входных значений регулярных выражений, для получения дополнительной информации см. [[http://uk1.php.net/manual/en/reference.pcre.pattern.modifiers.php]]. | |
^ ''%%'_multiple'%%'' | Bool, allow multiple comma separated email values.\\ Optional for ''email'', ignored by others. | | ^ ''%%'_multiple'%%'' | Bool, разрешить несколько значений email, разделенных запятыми.\\ Необязательно для ''email'', игнорируется другими. | |
^ ''%%'_other'%%'' | How to handle other values (not listed in ''_choices''). Accepted values: ''always'', ''exists'', ''never''. Default value ''always''.\\ ''exists'' only shows 'other' input field when the setting contains value(s) not listed in choices (e.g. due to manual editing or update changing ''_choices''). This is safer than ''never'' as it will not discard unknown/other values.\\ Optional for ''multicheckbox'', ignored by others. | | ^ ''%%'_other'%%'' | Как обрабатывать другие значения (не перечисленные в ''_choices''). Принятые значения: ''always'', ''exists'', ''never''. Значение по умолчанию ''always''.\\ ''exists'' показывает поле ввода «другое», только если настройка содержит значение(я), не перечисленное в вариантах (например, из-за ручного редактирования или обновления, изменяющегоg ''_choices''). Это безопаснее, чем ''never'' так как не отбрасывает неизвестные/другие значения.\\ Необязательно для ''multicheckbox'', игнорируется другими. | |
| |
| |
==== Examples ==== | ==== Примеры ==== |
| |
=== ''multicheckbox'' with ''_other'' === | === ''multicheckbox'' с ''_other'' === |
| |
Let's say initially a plugin uses the syntax: | Предположим, изначально плагин использует следующий синтаксис:x: |
| |
<code php>$meta['multi'] = array('multicheckbox', '_choices' => array('a','b','c','d'));</code> | <code php>$meta['multi'] = array('multicheckbox', '_choices' => array('a','b','c','d'));</code> |
| |
this means the multicheckbox will show four choices plus a string input. | это означает, что в поле с несколькими флажками будут отображаться четыре варианта выбора и строковое поле ввода. |
| |
Let's suppose also that the user inserts one or more extra values not in ''_choices''. | Предположим также, что пользователь вставляет одно или несколько дополнительных значений, отсутствующих в ''_choices''. |
| |
In the next release of the plugin the author's plugin decides to use the multicheckbox without the extra string, but, in order to be backwardly compatible, adopts: | В следующем выпуске плагина авторский плагин решает использовать multicheckbox без дополнительной строки, но, в целях обратной совместимости, принимает: |
| |
<code php>$meta['multi'] = array('multicheckbox', '_other' => 'exists', '_choices' => array('a','b','c','d'));</code> | <code php>$meta['multi'] = array('multicheckbox', '_other' => 'exists', '_choices' => array('a','b','c','d'));</code> |
| |
which means: | что означает: |
* if the user has inserted comma separated values, they will be printed in the extra string; | * если пользователь ввел значения, разделенные запятыми, они будут напечатаны в дополнительной строке; |
* otherwise the extra string won't show. | * в противном случае дополнительная строка не будет отображаться. |
| |
Note also that if the user inserts comma separated values which already exist (or some of them) in ''_choices'' but: | Обратите внимание также, что если пользователь вставляет разделенные запятыми значения, которые уже существуют (или некоторые из них), в ''_choices'': |
* they are already ticked, then the extra string will be removed and nothing else; | * они уже отмечены, то лишняя строка будет удалена и ничего больше; |
* they are not already ticked, then the extra string will be removed and the relative value will be ticked. | * если они еще не отмечены, то лишняя строка будет удалена и отмечено относительное значение. |
| |
===== Accessing Settings ===== | ===== Доступ к настройкам ===== |
====Core Settings==== | ====Основные настройки==== |
Inside [[xref>inc/init.php]] the configurations settings are read into a [[devel:environment|global array]] ''$conf[]''. When no settings were set, these are read from the default settings file. | Внутри :&13:[[wiki:xref:dokuwiki:inc:init.php|init.php]] настройки конфигурации считываются в [[wiki:devel:environment|глобальный массив]] ''$conf[]''. Если настройки не заданы, они считываются из файла настроек по умолчанию. Вы можете получить доступ к основным настройкам в любом месте, используя ''$conf[]'' массив. |
You can access the core settings anywhere by using the ''$conf[]'' array. | |
| |
<code php> | <code php> |
</code> | </code> |
| |
====Plugin settings==== | ====Настройки плагина==== |
You can access settings in [[plugins]] by using the ''%%$this->%%[[xref>getConf|getConf('<setting>')]]'' method. | Вы можете получить доступ к настройкам [[plugins|плагина]] используя ''%%$this->%% |
In your plugin class you use: | [[xref>getConf|getConf('<setting>')]]'' метод. |
| В классе вашего плагина используете: |
<code php> | <code php> |
$keyvalue = $this->getConf('key'); | $keyvalue = $this->getConf('key'); |
</code> | </code> |
| |
==== Template settings==== | ==== Настройки шаблона==== |
In [[templates]] you can use ''[[xref>tpl_getConf|tpl_getConf('<setting>')]]''. | В [[templates| шаблонах]] можно использовать ''[[xref>tpl_getConf|tpl_getConf('<setting>')]]''. |
<code php> | <code php> |
$nicetoknow = tpl_getConf('special'); | $nicetoknow = tpl_getConf('special'); |
| |
| |
===== Labels in Configuration Manager ===== | ===== Метки в диспетчере конфигураций ===== |
For every setting in ''lib/plugins/<your plugin>/conf/default.php'' there can be a ''%%$lang[<setting>]%%'' value defined in ''lib/plugins/<your plugin>/lang/en/settings.php''. This value will be displayed as the label of the setting in the configuration manager. If the label file is left out or doesn't contain a value for the setting, the configuration manager will display "''%%plugin <plugin name> <setting>%%''" as the label instead. | Для каждого параметра в ''lib/plugins/<your plugin>/conf/default.php'' может быть ''%%$lang[<setting>]%%'' определено значение в ''lib/plugins/<your plugin>/lang/en/settings.php''. Это значение будет отображаться как метка параметра в диспетчере конфигурации. Если файл метки пропущен или не содержит значения для параметра, диспетчер конфигурации отобразит "''%%plugin <plugin name> <setting>%%''" в качестве метки.. |
| |
You can also create a ''settings.php'' file for other languages. | Вы также можете создать ''settings.php'' файл для других языков. |
| |
Again, this also applies to templates (see [[:localization]] for further details). | Опять же, это относится и к шаблонам (более подробную информацию см. в [[wiki:localization|Локализация]]). |