DokuWiki

It's better when it's simple

Strumenti Utente

Strumenti Sito


it:namespace_templates

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:

  • _template.txt, che è usato nella categoria corrente.
  • __template.txt (due sottolineature iniziali), che funziona come il normale file _template.txt a parte il fatto che viene usato anche in ogni categoria sotto quella in cui è inserito (sono ereditate).

Un modo per creare il file modello è di

  • usare il wiki per salvare una pagina contenente ciò che si vuole usare come modello nell'appropriata categoria
  • usare FTP o WebDAV per fare una copia di esso nella stessa cartella e rinominarlo, poi
  • usare il wiki per cancellare la pagina originale.

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.
  • Nota: questo metodo ha il vantaggio che i nuovi modelli saranno immediatamente riconosciuti. Questo non avviene con gli altri metodi (aggiungendo file o collegamenti simbolici manualmente nelle cartelle di DokuWiki).

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

  • Forse impostando il modello della categoria predefinito nella configurazione impedisce pasticci con common.php, l'aggiustamento si romperà quando un aggiornamento viene eseguito. Con ACL gli accessi a questi modelli di file possono essere ristretti.
1)
collegamenti morbidi sembrano non funzionare
2)
Righe 811 e 812 nella versione 2009-02-14
it/namespace_templates.txt · Ultima modifica: 2010-12-06 22:02 da supportovip

Ad eccezione da dove è diversamente indicato, il contenuto di questo wiki è soggetto alla seguente licenza: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki