Vtičnik: wvdscond
Verzija: 1.0.0
Imenski prostor: lib/plugins/wvdscond/
Avtor: Wolfgang van der Stille zeljko.petrusic@outlook.de
Licenca: GPL 2
wvdsif in ga razširja s funkcionalnostjo preusmeritev.
Obstoječa sintaksa <ifgroup>, <ifnotgroup> in <iflang> ostaja popolnoma združljiva.
Vtičnik wvdscond združuje pogojno prikazovanje vsebine in strežniške preusmeritve v enem vtičniku. Ponuja:
<ifgroup>, <ifnotgroup>, <iflang>redirect_target s podporo spremenljivk<ifgroup !guest> ali <ifnotgroup guest><ifgroup imeskupine>Vsebina za to skupino</ifgroup> <ifgroup skupina1,skupina2>Vsebina za več skupin</ifgroup> <ifgroup !guest>Vsebina za NE-goste</ifgroup>
<ifnotgroup guest>Vsebina za prijavljene uporabnike</ifnotgroup> <ifnotgroup admin>Vsebina za ne-administratorje</ifnotgroup>
<iflang jezikovna_koda>Vsebina za ta jezik</iflang> <iflang koda1,koda2>Vsebina za več jezikov</iflang> <iflang *>Privzeta vsebina (vedno prikazana)</iflang>
{{wvds:redirect target="de:start"}}
{{wvds:redirect target="{lang}:start"}}
{{wvds:redirect target="int:home" ifgroup="user"}}
{{wvds:redirect target="{lang}:pub:start" ifnotgroup="user"}}
| Spremenljivka | Nadomeščena z | Primer |
|---|---|---|
{lang} | Jezik brskalnika | de, en, sl |
{group} | Prva uporabniška skupina | user, admin, vip |
{user} | Uporabniško ime | wvds |
{ns} | Trenutni imenski prostor | de:docs |
| Parameter | Tip | Opis |
|---|---|---|
target | Obvezno | Ciljna stran (Page-ID ali s spremenljivkami) |
ifgroup | Opcijsko | Preusmeritev samo za to skupino |
ifnotgroup | Opcijsko | Preusmeritev samo če NI v skupini |
| Parameter | Tip | Opis |
|---|---|---|
guest | vnaprej določen | Neprijavljeni obiskovalci |
user | vnaprej določen | Vsi prijavljeni uporabniki |
admin | vnaprej določen | Administratorji |
[imeskupine] | uporabniško določen | Katerakoli skupina definirana v DokuWiki |
Zahteva: Začetna stran samodejno preusmeri na jezik brskalnika.
{{wvds:redirect target="{lang}:start"}}
Rezultat:
de:starten:startsl:startZahteva: Gostje so preusmerjeni na javno stran, prijavljeni uporabniki ostanejo.
{{wvds:redirect target="pub:start" ifnotgroup="user"}}
Rezultat:
pub:startZahteva: Ne-VIP uporabniki so preusmerjeni na informacijsko stran.
{{wvds:redirect target="info:upgrade" ifnotgroup="vip,premium"}}
<ifgroup vip,premium>
===== VIP Območje =====
Dobrodošli v ekskluzivnem območju!
</ifgroup>
Zahteva: Pozdravna sporočila v različnih jezikih.
~~NOCACHE~~ <iflang de> ===== Willkommen ===== Dies ist unsere Wissensdatenbank auf Deutsch. </iflang> <iflang en> ===== Welcome ===== This is our knowledge base in English. </iflang> <iflang sl> ===== Dobrodošli ===== To je naša baza znanja v slovenščini. </iflang> <iflang *> ===== Welcome ===== Please select your language. </iflang>
Zahteva: Admin povezave so vidne samo administratorjem.
~~NOCACHE~~ ===== Navigacija ===== * [[.:start|Začetna stran]] * [[.:docs:index|Dokumentacija]] <ifnotgroup guest> * [[.:intern:index|Interno območje]] </ifnotgroup> <ifgroup admin> * [[.:admin:index|Administracija]] </ifgroup>
1. Prepoznava vzorca
└── Najde {{wvds:redirect ...}}
2. Preverjanje pogojev (če obstajajo)
├── ifgroup: Preveri članstvo v skupini
└── ifnotgroup: Preveri NE-članstvo
3. Nadomeščanje spremenljivk
├── {lang} → Jezik brskalnika
├── {user} → Uporabniško ime
├── {group} → Prva skupina
└── {ns} → Trenutni imenski prostor
4. Izvedba preusmeritve
├── HTTP 301/302 glava (prednostno)
├── Meta-Refresh (rezerva)
└── JavaScript (rezerva)
Vtičnik ne potrebuje posebne konfiguracije. Prepoznavanje skupin uporablja standardne DokuWiki-ACL skupine.
, da se vsebina pri vsakem obisku znova izriše.
| Staro (wvdsif) | Novo (wvdscond) | Status |
|---|---|---|
<ifgroup user> | <ifgroup user> | Združljivo |
<iflang de> | <iflang de> | Združljivo |
| - | <ifnotgroup guest> | NOVO |
| - | redirect | NOVO |
| Verzija | Datum | Spremembe |
|---|---|---|
| 1.0.0 | 2026-01-29 | Prva izdaja |
Datoteka: lib/plugins/wvdscond/syntax.php
| Metoda | Opis |
|---|---|
getType() | Vrne substition |
getSort() | Vrne 100 |
connectTo($mode) | Registrira ifgroup, ifnotgroup, iflang, redirect vzorce |
handle($match, …) | Razčleni oznako in izvleče pogoj |
render($mode, …) | Vrne vsebino, preusmeritev ali prazno |
Datoteka: lib/plugins/wvdscond/helper.php
| Metoda | Opis |
|---|---|
getUserGroups() | Vrne vse skupine uporabnika |
checkGroup($groups) | Preveri ali je uporabnik v skupini |
checkNotGroup($groups) | Preveri ali uporabnik NI v skupini |
detectBrowserLang() | Zazna jezik brskalnika |
checkLang($langs) | Preveri ujemanje jezika |
replaceVariables($target) | Nadomesti {lang}, {user}, itd. |