Open main menu

Extension:Variables

This page is a translated version of the page Extension:Variables and the translation is 62% complete.
Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎Tiếng Việt • ‎español • ‎français • ‎polski • ‎português do Brasil • ‎русский • ‎中文 • ‎日本語 • ‎한국어
Podręcznik rozszerzeń MediaWiki
OOjs UI icon advanced.svg
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.2 (2019-07-11)
MediaWiki 1.29+
PHP 5.5+
Zmiany w bazie danych Nie
Licencja ISC License
Pobieranie
README
RELEASE-NOTES
Przetłumacz rozszerzenie Variables jeżeli jest dostępne na translatewiki.net
Sprawdź wykorzystywanie i matrycę wersji.
Rola Vagrant variables
Problemy Otwarte zadania · Zgłoś błąd

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.

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

Przypisanie wartości do zmiennej

#vardefine

  • {{#vardefine:nazwa_zmiennej|przypisana_wartość}}

Przypisuje zmiennej nazwa_zmiennej (nowej lub już istniejącej) wartość przypisana_wartość.

  • Przykład: {{#vardefine:iconwidth|25}}

przypisuje zmiennej iconwidth wartość 25

#vardefineecho

  • {{#vardefineecho:"nazwa_zmiennej"|"przypisana_wartość"}}

Działa tak samo, jak #vardefine, z tą różnicą, że zwraca wartość zmiennej na ekran.

  • Przykład: making iconwidth = <code>{{#vardefineecho:iconwidth|25}}</code>

Pobieranie wartości zmiennej (#var)

#var

Wartość zmiennej nazwa_zmiennej jest wyświetlana przez

  • {{#var:nazwa_zmiennej}}

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:nazwa_zmiennej | "wartość_domyślna" }}

Jest to równoważne:

  • {{#if: {{#var:"nazwa_zmiennej"}} | {{#var:"nazwa_zmiennej" }} | "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:"nazwa_zmiennej" }}

zwraca "1" gdy zmienna jest już zdefiniowana (także wtedy gdy jest pusta). Gdy zmienna nie jest zdefiniowana zwraca wartość pustą.

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

Jest to funkcja eksperymentalna wprowadzona w wersji 2.0. Funkcja zwraca ostateczną wartość zmiennej uzyskaną po przetworzeniu całego kodu strony. W związku z powyższym funkcja nie może zostać wykorzystana w innych funkcjach.

  • {{#var_final:"nazwa_zmiennej" | defaultvalue}}

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

  • Pobierz i umieść plik(i) w katalogu o nazwie Variables w swoim katalogu extensions/.
  • Dodaj poniższy kod na dole swojego pliku LocalSettings.php:
    wfLoadExtension( 'Variables' );
    
  •   Zrobione – Przejdź do Special:Version na swojej wiki, aby sprawdzić czy rozszerzenie zostało pomyślnie zainstalowane.

Do użytkowników mających wersję MediaWiki 1.30 lub wcześniejszą:

Powyższe instrukcje opisują nowy sposób instalowania tego rozszerzenia, poprzez wfLoadExtension(). Jeżeli chcesz zainstalować to rozszerzenie we wcześniejszych wersjach (MediaWiki 1.30 i wcześniejsze), zamiast wfLoadExtension( 'Variables' ); użyj:

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 a 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.

Zobacz też

References