Pomoc:Funkcje parsera

Z Nonsensopedii, polskiej encyklopedii humoru
Pomoc / Zaawansowane / Funkcje parsera

Funkcje parsera są małymi rozszerzeniami mechanizmu MediaWiki, dającymi różne wyniki przy zastosowaniu różnych argumentów. Najlepsze użycie znajdują w skomplikowanych szablonach.

Funkcje[edytuj • edytuj kod]

if[edytuj • edytuj kod]

Funkcja, która może wyświetlać różne wyniki w zależności od tego, czy podany parametr jest pusty lub nie.

Funkcja if zazwyczaj przyjmuje postać:

{{#if:{{{parametr|}}}|Parametr nie jest pusty.|Parametr jest pusty.}}

Oznacza to: jeśli parametr nie jest pusty, wtedy wyświetl "Parametr nie jest pusty.", a jeśli jest pusty, wtedy wyświetl "Parametr jest pusty." Przykładowo: załóżmy, że szablon o treści podanej wyżej znajduje się pod nazwą Szablon:parametr. Jeśli użyjemy szablonu w ten sposób:

{{parametr|parametr=blablabla}}

wtedy powinien zostać wyświetlony tekst: "Parametr nie jest pusty." Jeśli użyjemy go w ten sposób:

{{parametr|blablabla}}

lub na przykład tak:

{{parametr}}

zostanie wyświetlony tekst: "Parametr jest pusty."

ifeq[edytuj • edytuj kod]

Funkcja, która porównuje ze sobą dwie wartości i wyświetla wynik.

Funkcja ifeq zazwyczaj przyjmuje postać:

{{#ifeq:{{{kochanie}}}|tak|Kocham żelki!|Nie lubię żelek.}}

Oznacza to: jeśli kochanie jest równe tak, wtedy wyświetl tekst "Kocham żelki!"; jeśli kochanie jest różne od tak, wtedy wyświetl tekst "Nie lubię żelek." Załóżmy, że szablon o powyższej treści znajduje się pod nazwą Szablon:żelki. Jeśli użyjemy szablonu w ten sposób:

{{żelki|kochanie=tak}}

wtedy wyświetli się tekst "Kocham żelki!" Jeśli szablon będzie użyty w sposób

{{żelki|kochanie=nie}}

lub w jakikolwiek inny sposób, na przykład

{{żelki}}

zostanie wyświetlony tekst: "Nie lubię żelek."

ifexist[edytuj • edytuj kod]

Funkcja ifexist sprawdza, czy artykuł o podanej nazwie istnieje i wyświetla wynik. Zazwyczaj przyjmuje postać:

{{#ifexist:kot|Artykuł [[kot]] istnieje.|Artykuł [[kot]] nie istnieje.}}

Oznacza to: jeśli artykuł "kot" istnieje, wtedy wyświetl: "Artykuł kot istnieje." Jeśli nie istnieje wtedy wyświetl: "Artykuł kot nie istnieje." (artykuł kot w tym wypadku istnieje). Funkcja może mieć również nieco bardziej skomplikowaną postać:

{{#ifexist:{{{1}}}|Artykuł [[{{{1}}}]] istnieje.|Artykuł [[{{{1}}}]] nie istnieje.}}

Załóżmy, że szablon o powyższej treści znajduje się pod nazwą Szablon:istnieje. Jeśli użyjemy go w ten sposób:

{{istnieje|kot}}

wtedy sprawdzi, czy artykuł kot istnieje i w zależności od tego wyświetli wynik.

switch[edytuj • edytuj kod]

Funkcja porównuje jedną wartość z innymi i jeśli znajdzie taką samą wartość wyświetla wynik. W innym wypadku wyświetla wartość domyślną (jeżeli takowa została podana). Przykład:

{{#switch:{{{miesiąc}}}
|1=styczeń
|2=luty
|3=marzec
|4=kwiecień
|5=maj
|6=czerwiec
|7=lipiec
|8=sierpień
|9=wrzesień
|10=październik
|11=listopad
|12=grudzień
|nie podano miesiąca
}}

Przyjmijmy, że szablon o powyższej treści znajduje się pod nazwą Szablon:miesiąc. Jeśli zostanie użyty w ten sposób:

{{miesiąc|miesiąc=1}}

wtedy funkcja wyświetli "styczeń". W przypadku

{{miesiąc}}

zostanie wyświetlony tekst "nie podano miesiąca".

expr[edytuj • edytuj kod]

Funkcja oblicza wyrażenia matematyczne. Na przykład

{{#expr:1+1}}

da w wyniku "2".

Tabela używanych operatorów[edytuj • edytuj kod]

Operator Operacja matematyczna Przykład
+ Dodawanie {{#expr: 30 + 7}} = 37
Odejmowanie {{#expr: 30 - 7}} = 23
* Mnożenie {{#expr: 30 * 7}} = 210
/ lub div Dzielenie {{#expr: 30 / 7}} = 4.2857142857143
round Zaokrąglanie do pewnej liczby miejsc po przecinku, podawanej za tym operatorem {{#expr: 30 / 7 round 5}} = 4.28571
mod Dzielenie modulo (reszta z dzielenia) {{#expr: 30 mod 7}} = 2
Operatory logiczne ("1" – prawda, "0" – fałsz)
= Równa się {{#expr: 30 = 7}} = 0
<> lub != Nie równa się (jest większe lub mniejsze) {{#expr: 30 <> 7}} = 1
< Mniejsze niż {{#expr: 30 < 7}} = 0
> Większe niż {{#expr: 30 > 7}} = 1
<= Mniejsze lub równe {{#expr: 30 <= 7}} = 0
>= Większe lub równe {{#expr: 30 >= 7}} = 1
and Logiczne i {{#expr: 30 and 7}} = 1
or Logiczne lub {{#expr: 30 or 7}} = 1
not Logiczne nie {{#expr: not 7}} = 0
Specjalne
( ) Grupowanie {{#expr: (30 + 7) * 5 }} = 185

UWAGA! Łącznikiem dziesiętnym liczb jest "." kropka (półtora=1.5).

ifexpr[edytuj • edytuj kod]

Funkcja wykonuje wyrażenie matematyczne i wyświetla tekst, który jest zależny od wyniku. Przykład:

{{#ifexpr:1+1|1+1 nie jest równe 0.|1+1 równa się 0.}}

Oznacza to: jeśli wynik podanego działania (w tym wypadku 1+1) jest równy 0, wtedy funkcja wyświetli "1+1 równa się 0.", a jeśli wynik nie jest równy zeru, wtedy zostanie wyświetlony tekst "1+1 nie jest równe 0." Funkcja obsługuje te same operatory co expr.

time zwraca czas w żądanym formacie – także dla daty podanej w opcjonalnym drugim parametrze, bądź w wersji względnej (np. +1 month).

time[edytuj • edytuj kod]

Funkcja zwraca czas w żądanym formacie – także dla daty podanej w opcjonalnym drugim parametrze, bądź w wersji względnej (np. +1 month).

{{#time:format|określenie czasu(opcjonalne)}}

Składnia formatu została zapożyczona ze składni PHP. Została jednak ona rozszerzona o dodatkowe kody podane poniżej.

Kod Opis
xg Wyświetla nazwę miesiąca w dopełniaczu (np. "września").
xn Następujący po tej sekwencji znaków kod formatu (na przykład godziny 'H') zostanie wyświetlony jako kod ASCII. Dla przykładu w języku Hindi, {{#time:H, xnH}} da w wyniku ०६, 06.
xr Następujący po tej sekwencji znaków kod formatu (na przykład godziny 'H') zostanie wyświetlony jako liczba rzymska; przykład {{#time:H, xrH}} da w wyniku 22, XXII
xx Wyświetla znak 'x'

Poniżej lista kodów znakowych zapożyczonych ze składni PHP.

Kod Opis Przykład lub zakres Obecne ustawienie
Y Rok 2005 2024
y Rok w formacie dwucyfrowym (dwie ostatnie cyfry roku) od 00 do 99 (05 dla roku 2005) 24
n Numer bieżącego miesiąca od 1 do 12 (9 dla września) 11
m Numer bieżącego miesiąca, dwucyfrowy od 01 do 12 (09 dla września) 11
L Sprawdza, czy rok jest przestępny od 1 jeśli tak, 0 jeśli nie. 1
M Skrótowa nazwa miesiąca od sty do gru (lis dla listopada) lis
F Pełna nazwa miesiąca styczeń do grudzień listopad
t Liczba dni w miesiącu od 28 do 31 (30 dla listopada) 30
j Dzień miesiąca od 1 do 31 20
d Dzień miesiąca, liczba dwucyfrowa od 01 do 31 20
z Dzień roku (od liczby 0) od 0 do 364 (365 w roku przestępnym – 1 dla 2 stycznia) 324
D Skrótowa nazwa dnia tygodnia od Pon do Nie Śr
l Pełna nazwa dnia tygodnia od Poniedziałek do Niedziela środa
w Numer dnia tygodnia (według amerykańskiego kalendarza). od 0 (Niedziela) do 6 (Sobota) 3
N Numer dnia tygodnia od 1 (Poniedziałek) do 7 (Niedziela) 3
W Numer tygodnia od 1 do 52 (lub 53 – zależy od roku) 47
a "am" (między 01:00:00 a 12:59:59 tego samego dnia) lub "pm", małymi literami (wykorzystowane w formacie 12-godzinnym). am / pm pm
A Tak samo, jak a ale dużymi literami AM / PM PM
g 12-godzinny format godziny bez poprzedzającego ew. zera (jedna lub dwie cyfry, używane z am/pm lub AM/PM). od 1 do 12 10
h 12-godzinny format godziny, z poprzedzającym ew. zerem (dwie cyfry, używane z am/pm lub AM/PM). od 01 do 12 10
G 24-godzinny format godziny bez poprzedzającego ew. zera (jedna lub dwie cyfry). od 0 do 23 22
H 24-godzinny format godziny, z poprzedzającym ew. zerem (dwie cyfry). od 00 do 23 22
i Minuta, z poprzedzającym ew. zerem (dwie cyfry). od 00 do 59 48
s Sekunda, z poprzedzającym ew. zerem (dwie cyfry). od 00 do 59 49
U Sekundy, które upłynęły od 1 stycznia 1970 00:00:00 czasu GMT. od 0 do nieskończoności 1732142929
c Data w formacie ISO 8601, taka jak {{#time:Y-m-dTH:m:s{{#time:+H:m|+0 hours}}}} . ustawiona sztywna długość stringa (łańcucha) 2024-11-20T22:48:49+00:00
r Data w formacie RFC 2822, taka jak {{#time:D, j M Y H:m:s {{#time:+H:m|+0 hours}}}}. zmienna długość stringa (łańcucha) Wed, 20 Nov 2024 22:48:49 +0000

Zobacz też[edytuj • edytuj kod]


Ta strona zawiera treści z Wikipedii. Oryginalny artykuł był umieszczony pod nazwą Wikipedia:Funkcje parsera. Lista autorów jest dostępna w historii strony. Tekst z Wikipedii jest udostępniony na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach.