<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>
Način rada
Cjevovod obrade
1. Prepoznavanje sintakse
└── Pronalazi sve {{wvds:snippet>...}} oznake
2. Pretraga snippeta
└── Traži datoteku snippeta: snippets/{key}.html
└── Učitava HTML sadržaj iz datoteke
3. wvdsi18n obrada
└── Zamjenjuje ... oznake u snippetu
└── Primjenjuje trenutni jezik
4. HTML izlaz
└── Umeće obrađeni HTML kod u stranicu
└── Bez dodatnog escapinga (Raw HTML)
Redoslijed obrade
| Prioritet | Dodatak | Sort vrijednost |
| 1 | wvdsi18n | 305 |
| 2 | wvdssnippet | 310 |
| 3 | wvdsimage | 319 |
wvdsi18n se obrađuje prije wvdssnippet kako bi prijevodi u snippetima funkcionirali.
Integracija
S wvdsi18n
Snippeti podržavaju sve wvdsi18n sintakse:
Datoteka: lib/plugins/wvdssnippet/snippets/multilingual_block.html
<div class="info">
greeting
de:Hallo|en:Hello|hr:Bok
{{wvds:lang:en>english_only_text}}
</div>
Tipična struktura sidebara:
~~NOCACHE~~
{{wvds:snippet>go_back}}
{{wvds:acmenu}}
S wvdsimage
Snippeti mogu sadržavati i slike:
Datoteka: lib/plugins/wvdssnippet/snippets/logo_block.html
<div class="logo">
{{wvds:image>wiki:logo.png|width=100%|maxwidth=200}}
</div>
Sigurnost
Prednosti u odnosu na htmlok
| Aspekt | htmlok | wvdssnippet |
| HTML unos | Slobodan na svakoj stranici | Samo preko Admina |
| Sigurnosni rizik | Visok (XSS, Injection) | Nizak (kontrolirano) |
| Revizija | Teška (raspršeno) | Jednostavna (centralno) |
| Korisnička prava | Svatko s uređivanjem | Samo administratori |
Najbolje prakse
JavaScript minimalan - Samo ako je nužno
Vanjski linkovi s target=„_blank“ - Sigurnost s rel=„noopener“
Bez osjetljivih podataka - Bez
API ključeva, lozinki u snippetima
Jedinstvena imena - Odabir opisnih naziva snippeta
Rukovanje greškama
Ponašanje pri greškama
| Scenarij | Ponašanje |
| Snippet nije pronađen | Ispisuje [snippet_name not found] |
| Prazan snippet | Ne ispisuje ništa |
| Nevažeći format | Ignorira nevažeće redove |
| wvdsi18n greška | Vraća ključ (Fallback) |
Debugging
Kod problema provjerite:
Je li naziv snippeta ispravno napisan?
Postoji li datoteka lib/plugins/wvdssnippet/snippets/{key}.html?
Ima li datoteka ekstenziju .html?
Je li postavljen za dinamične sadržaje?
Funkcioniraju li wvdsi18n oznake pojedinačno?
Preporuke
| Scenarij | Preporuka |
| Statični snippeti | Ostaviti cache aktiviran |
| Dinamični snippeti (jezik) | Koristiti |
| Veliki snippeti | Podijeliti na manje |
| Mnogo snippeta | Ne više od 50 definiranih |
Caching
Stranice s jezično ovisnim snippetima trebaju imati na početku kako bi se prikazala ispravna jezična verzija.
Napomene o verzijama
| Verzija | Datum | Promjene |
| 2.1.0 | 2026-01-26 | Admin sučelje, pohrana u datotekama (HTML datoteke) |
| 2.0.0 | 2026-01-06 | Preimenovanje iz wvdschunk u wvdssnippet |
| 1.0.0 | 2025-01-06 | Prva objava |
Vidi također
Tehnička referenca
Klasa: syntax_plugin_wvdssnippet
Datoteka: lib/plugins/wvdssnippet/syntax.php
| Metoda | Opis |
getType() | Vraća substition |
getSort() | Vraća 310 (nakon wvdsi18n) |
connectTo($mode) | Registrira pattern \\{\\{wvds:snippet>[^}]+\\}\\} |
handle($match, …) | Izvlači naziv snippeta |
render($mode, …) | Ispisuje HTML sadržaj |
Klasa: helper_plugin_wvdssnippet
Datoteka: lib/plugins/wvdssnippet/helper.php
| Metoda | Parametri | Povratna vrijednost | Opis |
getSnippets() | - | array | Učitava sve snippete iz direktorija snippets |
get() | $name | string | Vraća sadržaj snippeta |
Klasa: admin_plugin_wvdssnippet
Datoteka: lib/plugins/wvdssnippet/admin.php
| Metoda | Opis |
html() | Renderira admin sučelje |
handle() | |