https://www.dokuwiki.org/namespace_templates
DokuWiki podporuje scaffolding. Někdy můžete chtít, aby každá stránka v určitém jmenném prostoru vycházela ze společného základu. Například ve jmenném prostoru address můžete mít předem připravenou tabulku, kterou stačí jen vyplnit daty. Toho lze snadno dosáhnout pomocí tzv. „šablony jmenného prostoru“.
Když se vytvoří stránka, DokuWiki zjistí, zda existuje soubor šablony, a zobrazí ho v okně pro úpravy. Šablony jsou tedy .txt soubory a měly by obsahovat značkovací jazyk DokuWiki.
Lze použít dva typy souborů šablon:
_template.txt, který se použije v aktuálním jmenném prostoru (ale ne níže).__template.txt (všimněte si dvou podtržítek na začátku), pokrývá aktuální jmenný prostor a všechny podřízené (tato šablona se tedy dědí).
Pokud jsou v jednom jmenném prostoru přítomny obě šablony (běžná i děděná), při vytváření nové stránky má přednost běžná _template.txt. To umožňuje odlišit stránky v hlavním jmenném prostoru od všech stránek v podřízených prostorech, což může být velmi užitečné.
POZNÁMKA: Jakékoli změny v souborech šablon ovlivní pouze nově vytvořené stránky, stávající stránky zůstanou nedotčeny.
Jedním ze způsobů, jak vytvořit soubor šablony, je:
pokud je to možné, upřednostněte použití pluginu TemplatePagename (viz vysvětlení níže).
Obsah souboru je běžný značkovací jazyk wiki.
Uvnitř souboru můžete použít některé nahrazovací vzory, které šablonu trochu zpřístupní.
| @ID@ | úplné ID stránky |
|---|---|
| @NS@ | jmenný prostor stránky |
| @CURNS@ | poslední část jmenného prostoru stránky |
| @!CURNS@ | totéž jako výše, ale první znak je velké písmeno |
| @!!CURNS@ | totéž jako výše, ale první znak každého slova je velké písmeno |
| @!CURNS!@ | totéž jako výše, ale všechna písmena jsou velká |
| @PAGE@ | název stránky (ID bez jmenného prostoru, podtržítka nahrazena mezerami) |
| @!PAGE@ | totéž jako výše, ale první znak je velké písmeno |
| @!!PAGE@ | totéž jako výše, ale první znak každého slova je velké písmeno |
| @!PAGE!@ | totéž jako výše, ale všechna písmena jsou velká |
| @FILE@ | název stránky (ID bez jmenného prostoru, podtržítka zůstávají) |
| @!FILE@ | totéž jako výše, ale první znak je velké písmeno |
| @!FILE!@ | totéž jako výše, ale všechna písmena jsou velká |
| @USER@ | ID uživatele, který stránku vytváří |
| @NAME@ | jméno uživatele, který stránku vytváří |
| @MAIL@ | e-mailová adresa uživatele, který stránku vytváří |
| @DATE@ | datum a čas zahájení editační relace |
| %a %d-%m-%y atd. | např. Čt 06-12-12. strftime zástupné znaky nahrazeny časem vytvoření stránky |
| %% | v šabloně se objeví doslovný znak % |
Soubor _template.txt nelze upravovat přes DokuWiki (pouze někdo, kdo má přístup k souborům v systému souborů – obvykle administrátor přes FTP nebo WebDAV – může tyto soubory upravovat). Existují však tři způsoby, jak to obejít:
_template a __template na jiný název, např. c_template a i_template. Tyto soubory jsou považovány za běžné wiki stránky, protože nezačínají podtržítkem.POZNÁMKA: Tato část obsahuje instrukce pro použití na Linux serveru a nebude fungovat na systému Windows.
Tímto způsobem můžete uložit šablony do speciálního jmenného prostoru a vytvořit symbolické odkazy, aby je DokuWiki našla. Můžete také zvolit, že konkrétní šablona nebude upravitelná tím, že odstraníte její konkrétní symlink.
_template.txt pevný odkaz 1) na správnou stránku ve vašem jmenném prostoru šablon. Nyní máte šablonu, kterou lze snadno upravovat přes wiki rozhraní.
Další možností je vytvořit symbolické odkazy přímo ve složce. Vytvoříte tedy template.txt, což je symbolický odkaz na _template.txt ve vlastním jmenném prostoru.
cd /var/www/html/dokuwiki/data/pages/namespace/something ln -s _template.txt template.txt
Aby tyto měkké odkazy (softlinky) fungovaly, může být nutné nastavit volbu FollowSymLinks pro tento adresář v konfiguraci vašeho webového serveru.
POZNÁMKA: Tato část obsahuje instrukce pro použití na Windows serveru a nebude fungovat na Linux systému.
Otevřete příkazový řádek (cmd.exe) na serveru a přejděte do umístění, kde chcete mít šablonu. Použijte příkaz MKLINK pro vytvoření symbolického odkazu.
cd c:\inetpub\wiki\data\pages\namespace\something mklink template.txt _template.txt
Další funkce šablon jsou implementovány pomocí pluginů.
_template a __template dle vašeho výběru přes konfiguračního správce. Výchozí názvy jsou c_template a i_template. Tento plugin umožňuje používat běžné wiki stránky jako šablony, takže jsou upravitelné přes wiki rozhraní.~yourpagename.txt pro stránku s názvem yourpagename v aktuálním jmenném prostoru;~yournamespace.txt pro všechny stránky v podjmenném prostoru yournamespace;start stránky.Všechny tyto pluginy jsou upravitelné pouze přes souborový systém.
snippets.
Problém: Dojde k neočekávané chybě „no timestamp“, když server (Linux Ubuntu) nemůže zapisovat do adresáře /dokuwiki/data/pages/namespace. To se může stát, pokud adresář jmenného prostoru vytvoří administrátor jako <root>, aby mohl umístit soubor šablony jmenného prostoru do /dokuwiki/data/pages/namespace/, ještě před vytvořením první stránky.
1. Řešení: Než vytvoříte skrytý soubor šablony, nejprve vytvořte pomocnou stránku pomocí grafického rozhraní DokuWiki, například: yourserver/doku.php?id=namespace:dummy&do=edit Tím umožníte DokuWiki vytvořit adresář jmenného prostoru pod vlastní správou a zajistíte DokuWiki plná práva zápisu do vytvořeného adresáře.
2. Řešení: Administrátor <root> by měl být schopen změnit nastavení vlastníka a skupiny pomocí příkazu chown (např. chown www-data:www-data /dokuwiki/data/pages/namespace/ v CLI2)) a v první řadě by měl vytvořit nové adresáře a soubory s nastavením vlastník:skupina (owner:group) platným pro instalaci DokuWiki.