====== WvdS.DokuWiki.Cond Plugin ====== **Plugin:** wvdscond\\ **Versione:** 1.0.0\\ **Namespace:** ''lib/plugins/wvdscond/''\\ **Autore:** Wolfgang van der Stille \\ **Licenza:** GPL 2 ---- ===== Definizione ===== Il plugin **wvdscond** consente contenuti condizionali e redirect basati su gruppi utente e lingua del browser. Unisce le funzionalità di **wvdsif** e i redirect di **wvdslang**. ===== Casi d'uso ===== * **Contenuto specifico per gruppo** - Mostra informazioni diverse per admin, utenti, ospiti * **Rilevamento lingua** - Visualizza automaticamente contenuti nella lingua del browser * **Redirect automatici** - Inoltra visitatori ai namespace linguistici appropriati * **Landing page** - Distribuisce visitatori in base a gruppi o lingua ---- ===== Sintassi ===== ==== Contenuto condizionale ==== Contenuto per questo gruppo Contenuto per questa lingua Contenuto di fallback ==== Redirect ==== {{wvds:redirect target="de:start"}} {{wvds:redirect target="{lang}:start"}} ---- ===== Parametri ===== ==== Condizioni di gruppo ==== ^ Tag ^ Descrizione ^ | '''' | Contenuto per il gruppo admin | | '''' | Contenuto per il gruppo user | | '''' | Contenuto per tutti (ospiti inclusi) | ==== Condizioni di lingua ==== ^ Tag ^ Descrizione ^ | '''' | Contenuto per browser tedesco | | '''' | Contenuto per browser inglese | | '''' | Contenuto per browser sloveno | | '''' | Contenuto per browser italiano | | '''' | Contenuto per browser croato | | '''' | Fallback per tutte le altre lingue | ==== Parametri redirect ==== ^ Parametro ^ Tipo ^ Descrizione ^ | ''target'' | string | Pagina di destinazione (supporta ''{lang}'' come placeholder) | ---- ===== Esempi ===== ==== Esempio 1: Messaggio di benvenuto specifico per gruppo ==== **Area amministratori:** Accedi alle [[admin:settings|impostazioni]]. Benvenuto nel tuo spazio personale. Benvenuto! [[wiki:login|Accedi]] per ulteriori funzionalità. ==== Esempio 2: Contenuto multilingue ==== Willkommen auf unserer Webseite! Welcome to our website! Benvenuti nel nostro sito web! Welcome! (Default) ==== Esempio 3: Redirect linguistico automatico ==== **start.txt (pagina root):** {{wvds:redirect target="{lang}:start"}} **Comportamento:** * Browser tedesco → de:start * Browser inglese → en:start * Browser italiano → it:start * Browser non configurato → Lingua predefinita ==== Esempio 4: Redirect con fallback ==== {{wvds:redirect target="{lang}:prodotti:panoramica"}} Se la pagina di destinazione non esiste, il redirect viene ignorato e la pagina corrente viene visualizzata. ---- ===== Funzionamento ===== ==== Rilevamento della lingua ==== 1. Lettura header Accept-Language └── Esempio: "it-IT,it;q=0.9,en;q=0.8" 2. Estrazione codice lingua primario └── "it-IT" → "it" 3. Verifica disponibilità └── "it" configurato? → Usa it └── Altrimenti: usa defaultLanguage ==== Elaborazione redirect ==== 1. Trova tag {{wvds:redirect target="..."}} 2. Sostituisci {lang} con lingua rilevata 3. Verifica esistenza pagina destinazione 4. Redirect o ignora ---- ===== Configurazione ===== ==== Impostazioni amministratore ==== Tramite **Admin → Configurazione → wvdscond**: ^ Impostazione ^ Tipo ^ Default ^ Descrizione ^ | ''defaultLanguage'' | Testo | de | Lingua di fallback | | ''availableLanguages'' | Testo | de,en,sl,it,hr | Lingue disponibili | ---- ===== Gestione errori ===== ^ Scenario ^ Comportamento ^ | Gruppo sconosciuto | Tag viene ignorato | | Lingua non disponibile | Fallback su defaultLanguage | | Pagina destinazione non esiste | Redirect ignorato | | Redirect multipli | Solo il primo viene eseguito | ---- ===== Note sulla versione ===== ^ Versione ^ Data ^ Modifiche ^ | 1.0.0 | 2026-01-06 | Prima pubblicazione - unione di wvdsif e redirect di wvdslang | ---- ===== Vedi anche ===== * [[.:wvdsi18n]] - Traduzioni multilingue * [[.:flat]] - Template con integrazione linguistica ---- ===== Riferimento tecnico ===== ==== Classe: syntax_plugin_wvdscond ==== **File:** ''lib/plugins/wvdscond/syntax.php'' ^ Metodo ^ Descrizione ^ | ''getType()'' | Restituisce ''substition'' | | ''getSort()'' | Restituisce ''300'' | | ''connectTo($mode)'' | Registra i pattern per ifgroup, iflang, redirect | | ''handle($match, ...)'' | Estrae i parametri | | ''render($mode, ...)'' | Esegue la logica condizionale | ==== Classe: action_plugin_wvdscond ==== **File:** ''lib/plugins/wvdscond/action.php'' ^ Metodo ^ Descrizione ^ | ''_detectLanguage()'' | Rileva lingua del browser | | ''_executeRedirect()'' | Esegue il redirect | ---- [x][x][x][x] [x][x][x][x][x] [x][x][x][-][-] ~~DISCUSSION~~