Open main menu

Расширение:Variables

This page is a translated version of the page Extension:Variables and the translation is 25% complete.

Other languages:
Deutsch • ‎English • ‎Tiếng Việt • ‎español • ‎français • ‎polski • ‎português do Brasil • ‎русский • ‎中文 • ‎日本語 • ‎한국어
Справка по расширениям MediaWiki
OOjs UI icon advanced.svg
Variables
Статус релиза: стабильный
Реализация Parser function
Описание Introduces parser functions for dealing with page-scoped variables.
Автор(ы)
Осуществляющий поддержку MGChecker
Последняя версия 2.5.1 (2019-03-10)
MediaWiki 1.29+
PHP 5.5+
Изменения БД Нет
Лицензия ISC License
Загрузка
README
RELEASE-NOTES
Переведите расширение Variables если оно доступно на translatewiki.net
Проверьте использование и версию.
Vagrant role variables
Проблемы Открытые задачи · Сообщить об ошибке

Расширение Variables позволяет вам определить переменную на странице, использовать ее позже на той же странице или включить шаблоны, изменить ее значение, возможно, на значение, заданное выражением в терминах старого значения и т. д.

Это похоже на шаблоны, только более лёгкое и ограничено только одной страницей, поэтому вы можете использовать множество переменных на странице, не замедляя вики с огромным количеством шаблонов. Объедините это расширение с расширением ParserFunctions для достижения наилучших результатов.

This extension will not be enabled for wikis run by the Wikimedia Foundation (WMF).[1][2][3][4] See alternatives.

Присвоение значения переменной

#vardefine

  • {{#vardefine:variablename|specifiedvalue}}

Присваивает значение specifiedvalue (уже существующей или введенной) переменной variablename.

  • Пример: {{#vardefine:iconwidth|25}} присваивает iconwidth значение 25

#vardefineecho

  • {{#vardefineecho:variablename|specifiedvalue}}

Работает так же, как #vardefine, но выводит затронутые значения.

  • Пример: making iconwidth = <code>{{#vardefineecho:iconwidth|25}}</code>

Получение значения переменной

#var

The value of the variable variablename is produced by

  • {{#var:variablename}}

If undefined, this produces an empty string; it does not give an error message.

Можно определить значение для случая, когда переменная не определена или void:

  • {{#var:variablename | defaultvalue }}

This is equivalent to:

  • {{#if: {{#var:variablename}} | {{#var:variablename }} | defaultvalue }}

but it is much shorter and better arranged. Before version 2.0 though, the default value always was expanded. From version 2.0 on the default only gets expanded in case it is actually used.

The value can be used in parser functions, etc.

#varexists

  • {{#varexists:variablename }} returns 1 if the variable is already defined. If the variable is not defined the return value is void.

It supports a second and a third parameter to replace these values.

  • {{#varexists: variablename | if-value | else-value }}

This is equivalent to:

  • {{#if: {{#varexists: variablename }} | if-value | else-value }}

but it is much shorter and better arranged. Before version 2.5 though, both were always expanded. From version 2.5 on the if and else values only get expanded when their cases are actually entered.

#var_final

Experimental new function introduced in Variables 2.0. This function will output the final, last value a variable has at the end of the page rendering. Naturally, the value will be inserted after the parser went over the entire wiki markup, so this function can't be used in other functions, expecting the right value is being used. Example:

  • {{#var_final:variablename | defaultvalue}}

Значение default будет использоваться, если переменная не существует на этапе рендеринга последней страницы или если ее значение является пустой строкой. Значение по умолчанию будет расширяться прямо там, где используется функция, поэтому параметр будет расширен, даже если он не понадобится.

Примеры

The ParserFunctions extension must also be installed to use #expr.

Compute x = 2*a + b:

  • {{#vardefine:x|{{#expr:2*{{#var:a}}+{{#var:b}}}}}}

Add one to n:

  • {{#vardefine:n|{{#expr:{{#var:n}}+1}}}}

Установка

  • Скачайте и распакуйте файл(ы) в папку с названием Variables в вашей папке extensions/.
  • Добавьте следующий строки в конец файла LocalSettings.php:
    wfLoadExtension( 'Variables' );
    
  •   Готово – Перейдите на страницу Special:Version на своей вики, чтобы удостовериться в том, что расширение успешно установлено.

Для использующих MediaWiki 1.30 или более ранние:

В приведенных выше инструкциях описывается новый способ установки этого расширения с использованием wfLoadExtension()

Если вам нужно установить это расширение на более ранние версии (MediaWiki 1.30 и более ранние), вместо wfLoadExtension( 'Variables' );, вам необходимо использовать:

require_once "$IP/extensions/Variables/Variables.php";

Compatibility

The recommended version of the Variables extension for recent MediaWiki releases is listed below. Older versions of the extensions might work as well, but aren't tested for new MediaWiki releases.

Alternatives

As this extension will not be enabled for wikis run by the Wikimedia Foundation (WMF)[1][2][3][4], here are some alternatives:

  • If you use Variables as cache for expensive operations, you can transform the section where you need them into a template and pass the required information as template parameters instead. This will work until you reach the expansion depth limit.
  • If you use Variables to do more complex template operations than possible with simple ParserFunctions, you can use Scribunto's Lua functionality instead. Note that this does not add support for global Variables. However, Extension:VariablesLua adds an Scribunto interface for the Variables store.
  • Don't use variables, instead duplicate the information you need as a variable. If that information is aquired by an expensive template call, performance may suffer. This will work until you reach the node count limit.

См. также

References