Table of Contents

Modelli di Categorie

A volte si potrebbe voler avere ogni pagina in una determinata categoria basata su uno schema comune. Per esempio, nella categoria address si potrebbe desiderare avere una tabella già pronta, che necessita solo di essere riempita con dei dati. Questo può essere facilmente ottenuto con i cosiddetti “modelli di categorie”.

Quando una pagina viene creata, DokuWiki controlla se un file template esiste e lo mostra all'interno della finestra di modifica. I modelli quindi sono file .txt e devono contenere marcatori wiki.

File modelli

Due tipi di file modello possono essere usati:

Un modo per creare il file modello è di

Sintassi

Il contenuto del file è costituito da semplici normali marcatori wiki.

Sostituzione modelli

All'interni del file, si può anche alcuni modelli sostitutivi per rendere lo schema un poco più dinamico.

@ID@ intero ID della pagina
@NS@ categoria della pagina
@PAGE@ nome pagina (ID senza categorie e spazi sostituiscono le sottolineature)
@!PAGE@ come sopra ma con il primo carattere maiuscolo
@!!PAGE@ come sopra ma con il primo carattere di ogni parola maiuscolo
@!PAGE!@ come sopra ma con ogni carattere maiuscolo
@FILE@ nome pagina (ID senza categoria, le sottolineature sono mantenute come sono)
@!FILE@ come sopra ma con il primo carattere maiuscolo
@!FILE!@ come sopra ma con tutti i caratteri maiuscoli
@USER@ ID dell'utente che crea la pagina
@NAME@ nome dell'utente che crea la pagina
@MAIL@ indirizzo di posta elettronica dell'utente che crea la pagina
@DATE@ data e ora di creazione della pagina

In più si può anche usare qualsiasi segnaposto strftime per inserire la data della creazione della pagina in ogni formato voluto. Se si vuole usare un carattere letterale % nel modello è necessario raddoppiarlo.

Editare modelli

Non si possono editare i _template.txt tramite DokuWiki – solo qualcuno che può editare i file all'interno delle cartelle di DokuWiki (di solito un amministratore usando FTP o WebDAV) può. Esistono due trucchi per ottenere questo risultato: uno comporta la creazione di collegamenti simbolici e uno comporta la modifica del codice.

Modelli editabili tramite collegamenti simbolici

In questo modo, si possono memorizzare i modelli in una speciale categoria. Facendo un collegamento simbolico verso di essi si può usare il modello. Si può anche scegliere di rendere un modello non editabile non usando un collegamento simbolico.

  1. Si crei una categoria chiamata “templates”, o qualcosa di simile.
  2. in questa pagina, si crei una pagina per ogni modello di categoria che si desidera rendere disponibile.
  3. Si seguano le istruzione fornite sopra, ma si renda _template.txt un collegamento duro 1) alla pagina corrente sotto il modello di categoria. A questo punto il modello può essere modificato facilmente tramite l'interfaccia wiki.

Modelli editabili da tutti gli utenti

In questo modo, tutti i modelli saranno editabili da chiunque abbia accesso in scrittura

  1. Si cambi il modello predefinito a “template.txt” (o aaa_template.txt)circa alla riga inc/common.php 2).
  2. A questo punto ogni utente che abbia accesso in scrittura alla categoria può creare una pagina chiamata “template” in questa categoria che servirà come modello.

Supporto @GROUPS@

Può essere interessante avere il supporto per la parola chiave @GROUPS@ per estendere agli utenti appartenenti al gruppo che creano pagine ( ed esempio per specificare un insieme di marcatori nella home page dell'utente). Il seguente aggiustamento implementa questo.

Index: dokuwiki-2009-02-14/inc/common.php
===================================================================
--- dokuwiki-2009-02-14.orig/inc/common.php    2009-11-19 11:58:41.000000000 +0100
+++ dokuwiki-2009-02-14/inc/common.php 2010-01-05 10:17:35.000000000 +0100
@@ -840,6 +840,7 @@
                         '@USER@',
                         '@NAME@',
                         '@MAIL@',
+                        '@GROUPS@',
                         '@DATE@',
                      ),
                      array(
@@ -855,6 +856,7 @@
                         $_SERVER['REMOTE_USER'],
                         $INFO['userinfo']['name'],
                         $INFO['userinfo']['mail'],
+                        implode(" ", $INFO['userinfo']['grps']),
                         $conf['dformat'],
                      ), $tpl);

Olivier Mehani 2010/01/05 10:19

Suggerimeti

1)
collegamenti morbidi sembrano non funzionare
2)
Righe 811 e 812 nella versione 2009-02-14