## Please edit system and help pages ONLY in the master wiki!
## For more information, please see MoinMoin:MoinDev/Translation.
##master-page:HelpOnVariables
##master-date:2009-12-21T00:50:13Z
#acl -All:write Default
#format wiki
#language ru

На данной странице описано использование переменных на страницах вики. Они особенно полезны при использовании совместно с [[ПомощьПоШаблонам|шаблонами]], но пригодятся и при использовании на других страницах (например, для подписывания своих реплик).

<<TableOfContents>>

== Предопределённые переменные ==

Перечисленные далее переменные заменяются на свои значения при сохранении стрницы.

/!\ Переменные не заменяются на свои значения во время предварительного просмотра.

||<rowstyle="background-color:#FFFFCC"> '''Переменная'''   || '''Описание'''             || '''Пример подставляемой разметки'''                        || '''Внешний вид'''                                       ||
|| @``PAGE@      || Имя страницы (обычно используетсяв шблонах, см. КакСоздаватьСтраницы) || `ПомощьПоПеременным`                                      || ПомощьПоПеременным                                      ||
|| @``TIMESTAMP@ || Временная отметка                                                     || `2004-08-30T06:38:05Z`                                    || 2004-08-30T06:38:05Z                                    ||
|| @``DATE@      || Текущая дата, отформатированная на основании локали сервера           || `<<Date(2004-08-30T06:38:05Z)>>`                          || <<Date(2004-08-30T06:38:05Z)>>                          ||
|| @``TIME@      || Текущие дата и время, отформатированные на основании локали сервера   || `<<DateTime(2004-08-30T06:38:05Z)>>`                      || <<DateTime(2004-08-30T06:38:05Z)>>                      ||
|| @``ME@        || Имя пользователя                                                      || `АлександрПривалов`                                       || АлександрПривалов                                       ||
|| @``USERNAME@  || Имя пользователя (или его домен/ip)                                   || `АлександрПривалов`                                       || АлександрПривалов                                       ||
|| @``USER@      || Подпись — имя учётной запии с предваряющими двумя дефисами            || `-- АлександрПривалов`                                    || -- АлександрПривалов                                    ||
|| @``SIG@       || Подпись с указанием временной метки                                   || `-- АлександрПривалов <<DateTime(2004-08-30T06:38:05Z)>>` || -- АлександрПривалов <<DateTime(2004-08-30T06:38:05Z)>> ||
|| @``EMAIL@     || Обфусцированный почтовый адрес пользователя                           || `<<MailTo(test DOT user AT example DOT com)>>`            || <<MailTo(test DOT user AT example DOT com)>>            ||
|| @``MAILTO@    || Почтовый адрес пользователя                                           || `<<MailTo(test.user@example.com)>>`                       || <<MailTo(test.user@example.com)>>                       ||


== Создание новых переменных ==

Если встроенных переменных недостаточно, можно определить новые путём создания вложенной страницы домашней страницы со словарём переменных на ней. Например, если имя учётной записи пользователя !АлександрПривалов, то нужно создать страницу `АлександрПривалов/MyDict` («мой словарь») с примерно следующим содержимым:
{{{
 ПЕРЕМЕННАЯ1:: какой-то текст
 ПЕРЕМЕННАЯ2:: можно использовать ''произвольную'' разметку
}}}

После чего при редактировании страницы можно использовать `@ПЕРЕМЕННАЯ1@` или `@ПЕРЕМЕННАЯ2@` для подстановки текста из этого словаря. (Заметьте, что строки в словаре начинаются ''ровно'' с одного пробела)

== Получение значений переменных ==

=== При каждом обновлении страницы ===

Можно получать значения переменных, используя [[ПомощьПоМакроКомандам|макрокоманду]] `GetVal`:

{{{
<<GetVal(RussianDict,Test)>> <<GetVal(RussianDict,WikiName)>> <<GetVal(RussianDict,MoinMoin)>>
}}}

Будет отображаться как:

<<GetVal(WikiDict,var1)>> <<GetVal(WikiDict,var2)>> <<GetVal(WikiDict,var3)>>

=== При сохранении страницы ===

Если переменные присутствуют на странице !ИмяПользователя/MyDict (!ИмяПользователя должно быть заменено на соответствующее), переменные будут подставляться при сохранении страницы при использовании их с обрамляющими символами «@»: @переменная1@, @переменная2@, и так далее, не требуя использования макрокоманды `GetVal`.

----

/!\ ''Замечание'': данные в словаре кэшируются и не требуют открытия и обработки файла страницы при каждом доступе к значению. В случае использования CGI, значение получается из [[http://docs.python.org/library/pickle.html|сериализованного представления]], при использовании долгоживущего процесса десериализация производится один раз, после чего значение получается из памяти.

/!\ ''Замечание'': значения переменных '''не''' подставляются при сохранении страниц шаблонов и использовании предварительного просмотра. Во всех других случаях, подстановка значения переменных имеет глобальное действие и работает в любой части страницы, включая блоки с заданными [[ПомощьПоПарсерам|парсерами]], [[ПомощьПоКомментариям|комментарии]], [[ПомощьПоИнструкциям|инструкции]] и любые другие «особые» места.
