<p>© 2026 conf:title</p>
<nav class="footer-links">
<a href="?id=impressum">menu_imprint</a> |
<a href="?id=datenschutz">menu_privacy</a> |
<a href="?id=sitemap">menu_sitemap</a>
</nav>
</div>
</footer>
</code>
Funzionamento
Pipeline di elaborazione
1. Riconoscimento sintassi
└── Trova tutti i tag {{wvds:snippet>...}}
2. Ricerca snippet
└── Cerca file snippet: snippets/{key}.html
└── Carica contenuto HTML dal file
3. Elaborazione wvdsi18n
└── Sostituisce i tag ... nello snippet
└── Applica la lingua corrente
4. Output HTML
└── Inserisce codice HTML elaborato nella pagina
└── Nessun escaping aggiuntivo (Raw HTML)
Ordine di elaborazione
| Priorità | Plugin | Valore Sort |
| 1 | wvdsi18n | 305 |
| 2 | wvdssnippet | 310 |
| 3 | wvdsimage | 319 |
wvdsi18n viene elaborato prima di wvdssnippet affinché le traduzioni negli snippet funzionino.
Integrazione
Con wvdsi18n
Gli snippet supportano tutte le sintassi wvdsi18n:
File: lib/plugins/wvdssnippet/snippets/multilingual_block.html
<div class="info">
greeting
de:Hallo|en:Hello|it:Ciao
{{wvds:lang:en>english_only_text}}
</div>
Struttura tipica della sidebar:
~~NOCACHE~~
{{wvds:snippet>go_back}}
{{wvds:acmenu}}
Con wvdsimage
Gli snippet possono contenere anche immagini:
File: lib/plugins/wvdssnippet/snippets/logo_block.html
<div class="logo">
{{wvds:image>wiki:logo.png|width=100%|maxwidth=200}}
</div>
Sicurezza
Vantaggi rispetto a htmlok
| Aspetto | htmlok | wvdssnippet |
| Input HTML | Libero in ogni pagina | Solo tramite Admin |
| Rischio sicurezza | Alto (XSS, Injection) | Basso (controllato) |
| Audit | Difficile (disperso) | Semplice (centralizzato) |
| Permessi utente | Chiunque con modifica | Solo amministratori |
Best practice
JavaScript minimale - Solo se assolutamente necessario
Link esterni con target=„_blank“ - Sicurezza con rel=„noopener“
Nessun dato sensibile - Nessuna chiave
API, password negli snippet
Nomi univoci - Scegliere nomi snippet descrittivi
Gestione errori
Comportamento in caso di errori
| Scenario | Comportamento |
| Snippet non trovato | Restituisce [snippet_name not found] |
| Snippet vuoto | Non restituisce nulla |
| Formato non valido | Ignora righe non valide |
| Errore wvdsi18n | Restituisce chiave (fallback) |
Debugging
In caso di problemi verificare:
Il nome dello snippet è scritto correttamente?
Esiste il file lib/plugins/wvdssnippet/snippets/{key}.html?
Il file ha l'estensione .html?
È impostato per contenuti dinamici?
I tag wvdsi18n funzionano singolarmente?
Raccomandazioni
| Scenario | Raccomandazione |
| Snippet statici | Lasciare cache attivata |
| Snippet dinamici (lingua) | Usare |
| Snippet grandi | Dividere in più piccoli |
| Molti snippet | Non più di 50 definiti |
Caching
Le pagine con snippet dipendenti dalla lingua dovrebbero avere all'inizio per visualizzare la versione linguistica corretta.
Note sulla versione
| Versione | Data | Modifiche |
| 2.1.0 | 2026-01-26 | Interfaccia admin, archiviazione basata su file (file HTML) |
| 2.0.0 | 2026-01-06 | Rinominato da wvdschunk a wvdssnippet |
| 1.0.0 | 2025-01-06 | Prima pubblicazione |
Vedi anche
Riferimento tecnico
Classe: syntax_plugin_wvdssnippet
File: lib/plugins/wvdssnippet/syntax.php
| Metodo | Descrizione |
getType() | Restituisce substition |
getSort() | Restituisce 310 (dopo wvdsi18n) |
connectTo($mode) | Registra pattern \\{\\{wvds:snippet>[^}]+\\}\\} |
handle($match, …) | Estrae nome snippet |
render($mode, …) | Restituisce contenuto HTML |
Classe: helper_plugin_wvdssnippet
File: lib/plugins/wvdssnippet/helper.php
| Metodo | Parametri | Ritorno | Descrizione |
getSnippets() | - | array | Carica tutti gli snippet dalla directory snippets |
get() | $name | string | Restituisce contenuto snippet |
Classe: admin_plugin_wvdssnippet
File: lib/plugins/wvdssnippet/admin.php
| Metodo | Descrizione |
html() | Renderizza interfaccia admin |
handle() | |