Portál AbcLinuxu, 2. května 2025 06:08

Čuňačíme v MediaWiki - opět

1.4.2015 18:19 | Přečteno: 1527× | Za vším hledej Linux | Výběrový blog | poslední úprava: 2.4.2015 09:07

Vítám vás u dalšího dílu volného seriálu o ptákovinách v MediaWiki. Tentokrát se zaměřím na zdánlivě banální věc, a to: "Jak zajistit, aby se anonymnímu uživateli nezobrazoval stejný obsah, jako uživateli přihlášenému".

Při řešení tohoto problému se neobejdete bez rozšíření MyVariables a ParserFunctions, pro které musí být navíc povoleny funkce pro zpracování textových řetězců:

$wgPFEnableStringFunctions = true;

O rozšíření ParserFunctions, již padla zmínka v minulém blogpostu. Rozšíření MyVariables, přidává mezi "kouzelná slůvka" další proměnné využitelné v šablonách. Ty ale nemusí být dostupné pokud není uživatel přihlášený - rozuměj, nemá ve svém nastavení příslušnou hodnotu - to byl případ proměnné USERLANGUAGECODE, o které rovněž padla zmínka již minule.

V tomto případě to však využijeme v náš prospěch. Pro anonymního uživatele se totiž místo uživatelského jména v proměnné CURRENTUSER zobrazuje IP adresa. A ta vždy - jak pro IPv4, tak IPv6 - začíná číslem. Korektní uživatelské jméno ne. Proto si nejprve vytáhneme první znak proměnné CURRENTUSER, a ten podrobíme matematické operaci. Ta v případě autentifikovaného uživatele skončí chybou, kterou odchytíme. Viz příklad:

{{#iferror:
  {{#expr: 1 + {{#sub:{{CURRENTUSER}}|0|1}}
  }}
  | error
  | ok
}}

Pro anonymního uživatele se zobrazí řetězec ok, kdežto pro přihlášeného error a na tom lze postavit už prakticky cokoliv.

Ovšem jak zcela správně podotknul anonymní uživatel v diskuzi - co dělat v případě, že uživatelská jména mohou začínat číslem? Pomiňme nyní fakt, že číslem začíná tak leda jméno obyvatele koncetračního tábora.

Je to prosté - nejprve se kopnu do hlavy, a pak použiju proměnnou CURRENTLOGGEDUSER, kterou jsem prve přehlédnul.

{{#if:{{CURRENTLOGGEDUSER}}|ok}}

Aneb, proč dělat věci jednoduše, když to jde i složitě.. 8-P

Dříve vyšlo..

       

Hodnocení: 40 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

2.4.2015 06:58 1uzivatel
Rozbalit Rozbalit vše Re: Čuňačíme v MediaWiki - opět
Odpovědět | Sbalit | Link | Blokovat | Admin
a co uzivatel zacinajuci cislom?

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.