Extension:Variables/pl
Variables Status wydania: stabilne |
|
---|---|
Realizacja | Funkcja parsera |
Opis | Dodaje funkcje parsera, obsługujące zmienne z zasięgiem do końca strony. |
Autor(zy) |
|
Opiekun(owie) | MGChecker |
Ostatnia wersja | 2.5.1 (2019-07-11) |
MediaWiki | 1.29+ |
PHP | 5.5+ |
Zmiany w bazie danych | Nie |
Licencja | Nie określono |
Pobieranie | README RELEASE-NOTES |
Quarterly downloads | Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin'). |
Public wikis using | Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin'). |
Przetłumacz rozszerzenie Variables jeżeli jest dostępne na translatewiki.net | |
Rola Vagrant | variables |
Problemy | Otwarte zadania · Zgłoś błąd |
InternalParseBeforeSanitize
hook for MediaWiki 1.35 - MediaWiki 1.38 , or missing the #var_final
parser function in MediaWiki 1.39 +, please update to the latest version (master
branch for now). See <translate> task <tvar name=1>T276627</tvar></translate> and <translate> task <tvar name=1>T250963</tvar></translate> for further information.Rozszerzenie Variables pozwala na zdefiniowanie zmiennych na stronie i późniejsze wykorzystanie ich na tej samej stronie oraz w użytych na niej szablonach. Wartości zmiennych mogą być następnie modyfikowane bezpośrednio, przez przypisanie wprost nowej wartości lub za pomocą wbudowanych funkcji oprogramowania Wiki (np. funkcje parsera) oraz innych rozszerzeń.
Zmienne działają podobnie do szablonów, z tą jednak różnicą, że, wpływają tylko na stronę, na której są używane, a nie na całą wiki. Można użyć na stronie wiele zmiennych bez obawy o spowolnienie działania ("zamulenie") wiki dużą liczbą załączonych szablonów. Najlepsze rezultaty daje używanie rozszerzenia "Variables" w połączeniu z rozszerzeniem ParserFunctions .
Przypisanie wartości do zmiennej
#vardefine
{{#vardefine:nazwazmiennej | przypisanawartość }}
Przypisuje zmiennej nazwa_zmiennej (nowej lub już istniejącej) wartość przypisana_wartość.
- Przykład:
{{#vardefine:iconwidth|25}}
przypisuje zmiennejiconwidth = 25
#vardefineecho
{{#vardefineecho:nazwazmiennej | przypisanawartość }}
Działa tak samo, jak #vardefine
, z tą różnicą, że zwraca wartość zmiennej na ekran.
- Przykład: making
iconwidth = {{#vardefineecho:iconwidth|25}}
Pobieranie wartości zmiennej (#var)
#var
Wartość zmiennej nazwa_zmiennej jest wyświetlana przez
{{#var:nazwazmiennej}}
Jeżeli zmienna nie została zdefiniowana, to wyrażenie to zwróci pusty ciąg znaków bez komunikatu o błędzie.
Można określić domyślną wartość, która zostanie użyta w przypadku gdy zmienna nie została zdefiniowana lub jest pusta.
{{#var:nazwazmiennej | wartośćdomyślna }}
Jest to równoważne:
{{#if: {{#var:nazwazmiennej }} | {{#var:nazwazmiennej }} | wartośćdomyślna }}
ale jest krótsze i bardziej czytelne. W wersjach starszych niż 2.0 wartość domyślna zawsze była wyświetlana (rozwijana). Począwszy od wersji 2.0 jest wyświetlana jedynie wtedy, kiedy jest faktycznie potrzebna.
Wartość może zostać użyta np. z funkcją parsera.
#varexists
{{#varexists:nazwazmiennej }}
zwraca 1 gdy zmienna jest już zdefiniowana. Gdy zmienna nie jest zdefiniowana zwraca wartość pustą.
It supports a second and a third parameter to replace these values.
{{#varexists:nazwazmiennej | if-value | else-value }}
This is equivalent to:
{{#if: {{#varexists: nazwazmiennej }} | 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
Jest to funkcja eksperymentalna wprowadzona w wersji 2.0. Funkcja zwraca ostateczną wartość zmiennej uzyskaną po przetworzeniu całego kodu strony. 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. Przykład:
{{#var_final:"nazwazmiennej" | wartośćdomyślna }}
Wartość domyślna zostanie użyta wtedy, gdy w wyniku przetworzenia całego kodu strony zmienna albo nie została zdefiniowana albo jest pusta. Wartość domyślna zawsze zostanie wyświetlona na ekranie w miejscu, w którym użyto tej funkcji, niezależnie od tego, czy rzeczywiście jest potrzebna.
Przykłady
W celu użycia #expr
niezbędne jest wcześniejsze zainstalowanie rozszerzenia ParserFunctions .
Oblicz x = 2*a + b
:
{{#vardefine:x|{{#expr:2*{{#var:a}}+{{#var:b}}}}}}
Dodaj 1 do n:
{{#vardefine:n|{{#expr:{{#var:n}}+1}}}}
Instalacja
- <translate> [[<tvar name=2>Special:ExtensionDistributor/Variables/pl</tvar>|Download]] and move the extracted <tvar name=name>
Variables/pl
</tvar> folder to your <tvar name=ext>extensions/
</tvar> directory.</translate>
<translate> Developers and code contributors should install the extension [[<tvar name=git>Special:MyLanguage/Download from Git</tvar>|from Git]] instead, using:</translate>cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Variables%2Fpl - <translate> Add the following code at the bottom of your <tvar name=1>LocalSettings.php </tvar> file:</translate>
wfLoadExtension( 'Variables/pl' );
- Configure as required
- File:OOjs UI icon check-constructive.svg <translate> Done</translate> – <translate> Navigate to <tvar name=special>Special:Version</tvar> on your wiki to verify that the extension is successfully installed.</translate>
Konfiguracja
This extension provides two configuration parameters:
$egVariablesAreVolatile
- Allows to disable the parser frame being marked as volatile by the extension, i.e. disable template caching.
- Default:
true;
$egVariablesDisabledFunctions
- Allows to disable specified parser functions provided by this extension.
- Default:
[];
- Przykład:
[ 'var_final', 'vardefineecho' ];
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.
MediaWiki version | Variables version |
---|---|
1.19–1.22 | 2.1.x |
1.23–1.28 | 2.2.x |
1.29–1.34 | 2.5.x |
1.35–1.39 | 2.5.x (deprecated) |
1.40+ | unsupported (WIP) |
Alternatives
As this extension will not be enabled for wikis run by the Wikimedia Foundation (WMF), here are some alternatives:[1][2][3][4]
- 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, which can be increased if necessary.
- If you use Variables to do more complex template operations than possible with simple Extension:ParserFunctions , and if you have sufficient permissions on the server, you can use Scribunto's Lua functionality instead. You may not be able to install Scribunto on shared hosting. Note that this does not add support for global Variables. However, Extension:VariablesLua adds a Scribunto interface for the Variables store.
- Don't use variables, instead duplicate the information you need as a variable. If that information is acquired by an expensive template call, performance may suffer. This will work until you reach the node count limit.
- If you require variables just for autonumbering, you could look into Extension:NumerAlpha .
Zobacz też
- Extension:PhpTags
- Extension:MyVariables - Tworzy nowe zmienne w sensie MediaWiki
- Extension:Loops — Zapewnia funkcje parsera do wykonywania pętli
- Extension:Arrays — Utwórz tablicę i zapewnij funkcje tablicowe (takie jak wyszukiwanie, dzielenie i sortowanie) oraz operacje na zestawach (takie jak przecięcie, suma i różnica)
- Extension:HashTables — Nowe funkcje parsera do obsługi tablic mieszających w MediaWiki
Przypisy
- ↑ 1.0 1.1 phab:T9865
- ↑ 2.0 2.1 phab:T65324
- ↑ 3.0 3.1 phab:T113859
- ↑ 4.0 4.1 phab:T151192
File:OOjs UI icon information-progressive.svg | <translate> This extension is included in the following wiki farms/hosts and/or packages:</translate>
<translate> This is not an authoritative list.</translate> <translate> Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here.</translate> <translate> Always check with your wiki farms/hosts or bundle to confirm.</translate> |
- Pages with script errors
- Pages with broken file links
- Stable extensions/pl
- Parser function extensions/pl
- Extensions with manual MediaWiki version
- Extensions with no license specified/pl
- Extensions in Wikimedia version control/pl
- All extensions/pl
- Extensions not in ExtensionJson
- Modifiable variables extensions/pl