Dodatak: wvdscond
Verzija: 1.0.0
Imenski prostor: lib/plugins/wvdscond/
Autor: Wolfgang van der Stille zeljko.petrusic@outlook.de
Licenca: GPL 2
wvdsif i proširuje ga funkcijom preusmjeravanja.
Postojeća sintaksa <ifgroup>, <ifnotgroup> i <iflang> ostaje potpuno kompatibilna.
Dodatak wvdscond kombinira uvjetno prikazivanje sadržaja i serverska preusmjeravanja u jednom dodatku. Pruža:
<ifgroup>, <ifnotgroup>, <iflang>redirect_target s podrškom varijabli<ifgroup !guest> ili <ifnotgroup guest><ifgroup imegrupe>Sadržaj za ovu grupu</ifgroup> <ifgroup grupa1,grupa2>Sadržaj za više grupa</ifgroup> <ifgroup !guest>Sadržaj za NE-goste</ifgroup>
<ifnotgroup guest>Sadržaj za prijavljene korisnike</ifnotgroup> <ifnotgroup admin>Sadržaj za ne-administratore</ifnotgroup>
<iflang jezicni_kod>Sadržaj za ovaj jezik</iflang> <iflang kod1,kod2>Sadržaj za više jezika</iflang> <iflang *>Rezervni sadržaj (uvijek prikazan)</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"}}
| Varijabla | Zamjenjuje se s | Primjer |
|---|---|---|
{lang} | Jezik preglednika | de, en, sl, hr |
{group} | Prva korisnička grupa | user, admin, vip |
{user} | Korisničko ime | wvds |
{ns} | Trenutni imenski prostor | de:docs |
| Parametar | Tip | Opis |
|---|---|---|
target | Obavezno | Ciljna stranica (Page-ID ili s varijablama) |
ifgroup | Opcionalno | Preusmjeravanje samo za ovu grupu |
ifnotgroup | Opcionalno | Preusmjeravanje samo ako NIJE u grupi |
| Parametar | Tip | Opis |
|---|---|---|
guest | unaprijed definirano | Neprijavljeni posjetitelji |
user | unaprijed definirano | Svi prijavljeni korisnici |
admin | unaprijed definirano | Administratori |
[imegrupe] | korisnički definirano | Bilo koja grupa definirana u DokuWiki |
Zahtjev: Početna stranica automatski preusmjerava na jezik preglednika.
{{wvds:redirect target="{lang}:start"}}
Rezultat:
de:starten:starthr:startZahtjev: Gosti se preusmjeravaju na javnu stranicu, prijavljeni korisnici ostaju.
{{wvds:redirect target="pub:start" ifnotgroup="user"}}
Rezultat:
pub:startZahtjev: Ne-VIP korisnici se preusmjeravaju na info stranicu.
{{wvds:redirect target="info:upgrade" ifnotgroup="vip,premium"}}
<ifgroup vip,premium>
===== VIP Područje =====
Dobrodošli u ekskluzivno područje!
</ifgroup>
Zahtjev: Pozdravi na različitim jezicima.
~~NOCACHE~~ <iflang de> ===== Willkommen ===== Dies ist unsere Wissensdatenbank auf Deutsch. </iflang> <iflang en> ===== Welcome ===== This is our knowledge base in English. </iflang> <iflang hr> ===== Dobrodošli ===== Ovo je naša baza znanja na hrvatskom. </iflang> <iflang *> ===== Welcome ===== Please select your language. </iflang>
Zahtjev: Admin poveznice vidljive samo administratorima.
~~NOCACHE~~ ===== Navigacija ===== * [[.:start|Početna stranica]] * [[.:docs:index|Dokumentacija]] <ifnotgroup guest> * [[.:intern:index|Interno područje]] </ifnotgroup> <ifgroup admin> * [[.:admin:index|Administracija]] </ifgroup>
1. Prepoznavanje uzorka
└── Pronalazi {{wvds:redirect ...}}
2. Provjera uvjeta (ako postoji)
├── ifgroup: Provjerava članstvo u grupi
└── ifnotgroup: Provjerava NE-članstvo
3. Zamjena varijabli
├── {lang} → Jezik preglednika
├── {user} → Korisničko ime
├── {group} → Prva grupa
└── {ns} → Trenutni imenski prostor
4. Izvršavanje preusmjeravanja
├── HTTP 301/302 zaglavlje (preferirano)
├── Meta-Refresh (rezerva)
└── JavaScript (rezerva)
Dodatak ne zahtijeva posebnu konfiguraciju. Prepoznavanje grupa koristi standardne DokuWiki ACL grupe.
kako bi se sadržaj ponovno renderirao pri svakom zahtjevu.
| Staro (wvdsif) | Novo (wvdscond) | Status |
|---|---|---|
<ifgroup user> | <ifgroup user> | Kompatibilno |
<iflang de> | <iflang de> | Kompatibilno |
| - | <ifnotgroup guest> | NOVO |
| - | redirect | NOVO |
| Verzija | Datum | Promjene |
|---|---|---|
| 1.0.0 | 2026-01-29 | Prva izdanja |
Datoteka: lib/plugins/wvdscond/syntax.php
| Metoda | Opis |
|---|---|
getType() | Vraća substition |
getSort() | Vraća 100 |
connectTo($mode) | Registrira ifgroup, ifnotgroup, iflang, redirect uzorke |
handle($match, …) | Parsira oznaku i izvlači uvjet |
render($mode, …) | Vraća sadržaj, preusmjeravanje ili prazno |
Datoteka: lib/plugins/wvdscond/helper.php
| Metoda | Opis |
|---|---|
getUserGroups() | Vraća sve grupe korisnika |
checkGroup($groups) | Provjerava je li korisnik u grupi |
checkNotGroup($groups) | Provjerava je li korisnik NIJE u grupi |
detectBrowserLang() | Detektira jezik preglednika |
checkLang($langs) | Provjerava podudaranje jezika |
replaceVariables($target) | Zamjenjuje {lang}, {user}, itd. |