DokuWiki

It's better when it's simple

Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:namespace_templates

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:namespace_templates [2013-01-29 15:01] 212.144.20.132de:namespace_templates [2022-08-27 08:06] (aktuell) – Satz ergänzt 2003:c8:a74a:7b00:ecaf:c356:16df:9e1c
Zeile 1: Zeile 1:
-====== Templates in Namensräumen (namespace templates)======+====== Namensraumvorlagen (namespace templates)======
  
-Manchmal möchte man neuen Seiten in einem bestimmten Namensraum ein vorgegebenes Skelett geben +DokuWiki unterstützt die Verwendung von "Seitengerüsten" (freie Übersetzung scaffolding) Dies erlaubt es uns, je Namensraum ein "Grundgerüst" zu definieren, auf dessen Grundlage alle neuen Seiten im betreffendem Namensraum erstellt werden. Man könnte auch von namensraumspezifischen Seitenvorlagen sprechen.
  
-Als Beispiel: In dem Namensraum ''address'' könnte man bei jeder neuen Seite eine vordefinierte Tabelle haben, welche nur noch mit Daten gefüllt werden muss.+===== Anwendungsbeispiel für Namensraumvorlage (namespace templates) =====
  
-Dies kann ganz einfach mit sogenannten "namespace templates" erledigt werden. +Um dies mit einem Beispiel zu verdeutlichen, stellen wir uns vor, wir wollen auf einfache & schnelle Weise in DokuWiki Adressen erfassen. Wir erstellen den Namensraum ''adressen'', welcher uns als Adressordner dient. Nun wollen wir beim Anlegen neuer Seiten in diesem Namensraum eine vordefinierte Tabelle haben, welche nur noch mit Daten gefüllt werden muss.
  
 +Das Konzept der Namensraumvorlagen (namespace templates) erlaubt es uns in einem solchen Fall, eine Wikiseite mit entsprechender Tabelle anzulegen & als Vorlage für alle neuen Wikiseiten im Namensraum ''adressen'' zu definieren.
 +
 +===== Hintergrund zur Funktionsweise  =====
 +
 +Dies basiert auf DokuWikis integrierter Prüfung auf das Vorhandensein von Namensraumvorlagen (namespace templates) bei jeder Seitenerstellung. Hierbei wird im angegebenen Zielnamensraum der neuen Seite stadardmäßig nach folgenden Dateien gesucht:
 +  * ''_template'': die Standardvorlage für den Namensraum
 +  * ''%%__%%template'' (zwei einleitende Unterstriche): entspricht der ersten Variante, gilt darüber hinaus jedoch auch in allen Unternamensräumen, wobei man auch von Vererbung spricht
 Wenn eine neue Seite angelegt wird, schaut [[DokuWiki]], ob eine Template-Datei existiert, und zeigt dieses im Editor an. Die Template-Dateien sind in Wiki-Sprache verfasst und als .txt Datei gespeichert. Wenn eine neue Seite angelegt wird, schaut [[DokuWiki]], ob eine Template-Datei existiert, und zeigt dieses im Editor an. Die Template-Dateien sind in Wiki-Sprache verfasst und als .txt Datei gespeichert.
  
Zeile 13: Zeile 20:
 Zwei Arten von Template-Dateien können benutzt werden: Zwei Arten von Template-Dateien können benutzt werden:
  
-  * ''_template.txt'', welche im aktuellen Namespace benutzt werden. +  * ''_template.txt'', Standardvorlage explizit für den Namensraum, in welchem sie vorzufinden ist 
-  * ''%%__%%template.txt'' (zwei führende unterstriche)welche auch als normales ''_template.txt'' funktionierenderen Inhalte allerdings auf alle untergeordneten Namensräume angewandt werden (Vererbung). +  * ''%%__%%template.txt'' entspricht der ersten Variantegilt darüber hinaus jedoch auch in allen Unternamensräumenwobei man auch von Vererbung spricht
  
 Ein Weg um eine Template-Datei zu erstellen: Ein Weg um eine Template-Datei zu erstellen:
  
-  * Öffne eine normale Wikiseite im gewünschten Namespace und füge den Inhalt für das Template ein.  +  * Erstelle eine normale Wikiseite im gewünschten Namespace und füge den Inhalt für das Template ein.  
-  * Öffne den Ordner mit FTP oder WebDAV und mache eine Kopie der Seite und benenne Sie wie oben beschrieben. +  * Öffne das Hauptverzeichnis des Wikis (z.B. auf der Festplatte oder dem Webspace) und darin den Ordner ''data''. In diesem befindet sich ein Ordner ''pages'', der die Wiki-Seiten als txt-Dateien und ggf. Namensräume als weitere Unterordner enthält. Kopiere die im ersten Schritt erstellte Seite und benenne sie und wie oben beschrieben (also ''_template.txt'' oder ''%%__%%template.txt'')
   * Benutze das Wiki, um den Template-Entwurf zu löschen.   * Benutze das Wiki, um den Template-Entwurf zu löschen.
  
 ===== Syntax ===== ===== Syntax =====
-Der Inhalt der Datei ist normale [[syntax|Wiki Sprache]]. +Der Inhalt der Datei ist normale [[de:wiki:syntax|Wiki Sprache]].
 ==== Ersetzungsmuster ==== ==== Ersetzungsmuster ====
  
Zeile 32: Zeile 37:
 ^ @ID@     | vollständige ID der Seite                                                              | ^ @ID@     | vollständige ID der Seite                                                              |
 ^ @NS@     | Namensraum der Seite                                                                   | ^ @NS@     | Namensraum der Seite                                                                   |
 +^ @CURNS@ ​ | letztes Teilstück vom Namensraum der Seite                                             |
 ^ @PAGE@   | Seitenname (ID ohne Namensraum; Unterstriche werden durch Leerzeichen ersetzt)         | ^ @PAGE@   | Seitenname (ID ohne Namensraum; Unterstriche werden durch Leerzeichen ersetzt)         |
 ^ @!PAGE@  | Das gleiche wie oben, der erste Buchstabe des ersten Wortes ist großgeschrieben        | ^ @!PAGE@  | Das gleiche wie oben, der erste Buchstabe des ersten Wortes ist großgeschrieben        |
 ^ @!!PAGE@ | Das gleiche wie oben, der erste Buchstabe von jedem Wort ist großgeschrieben           | ^ @!!PAGE@ | Das gleiche wie oben, der erste Buchstabe von jedem Wort ist großgeschrieben           |
 ^ @!PAGE!@ | Das gleiche wie oben, alle Buchstabe sind großgeschrieben                              | ^ @!PAGE!@ | Das gleiche wie oben, alle Buchstabe sind großgeschrieben                              |
-^ @FILE@   | Seiten Name (ID ohne Namensraum, unterstriche bleiben erhalten)                        |+^ @FILE@   | Seiten Name (ID ohne Namensraum, Unterstriche bleiben erhalten)                        |
 ^ @!FILE@  | Das gleiche wie oben, der erste Buchstabe des ersten Wortes ist großgeschrieben        | ^ @!FILE@  | Das gleiche wie oben, der erste Buchstabe des ersten Wortes ist großgeschrieben        |
 ^ @!FILE!@ | Das gleiche wie oben, der erste Buchstabe von jedem Wort ist großgeschrieben           | ^ @!FILE!@ | Das gleiche wie oben, der erste Buchstabe von jedem Wort ist großgeschrieben           |
Zeile 42: Zeile 48:
 ^ @NAME@   | Der Name des Benutzers, welcher die Seite erstellt                                     | ^ @NAME@   | Der Name des Benutzers, welcher die Seite erstellt                                     |
 ^ @MAIL@   | Die E-Mail Adresse des Benutzers, welcher die Seite erstellt                           | ^ @MAIL@   | Die E-Mail Adresse des Benutzers, welcher die Seite erstellt                           |
-^ @DATE@   | Datum und Uhrzeit der Erstelltung der neuen Seite                                      |+^ @DATE@   | Datum und Uhrzeit der Erstellung der neuen Seite                                       |
  
-Es ist auch möglich [[phpfn>strftime]] als Platzhalter zu verwenden, um die Zeit der Seitenerstelltung in einem anderen Format einzufügen. Um das Zeichen ''%'' im Template zu benutzen, muss es doppelt notiert werden. + 
 +Es ist auch möglich [[phpfn>strftime]] als Platzhalter zu verwenden, um die Zeit der Seitenerstellung in einem anderen Format einzufügen. Um das Zeichen ''%'' im Template zu benutzen, muss es doppelt notiert werden. 
  
 ===== Template Bearbeitung ===== ===== Template Bearbeitung =====
Zeile 75: Zeile 82:
 Bei dieser Methode sind alle Templates für jeden mit Schreibrechten editierbar. Bei dieser Methode sind alle Templates für jeden mit Schreibrechten editierbar.
  
-  - Öffne die Datei ''inc/common.php'' und ändere den standard Template namen in der Nähe von Zeile 817 ((Zeile 811 und 812 in Version 2009-02-14)) auf "template.txt" (oder aaa_template.txt)+Öffne die Datei ''inc/common.php'' und ändere den Standard-Template-Namen in der Nähe von Zeile 1056 + 1057 ((Zeile 811 und 812 in Version 2009-02-14, Zeile 1050 und 1051 in Version 2017-02-19)) auf "template.txt" (oder aaa_template.txt).
-  - Jetzt kann jeder Benutzer mit Schreibrechten in einem Namensraum eine Seite  "template" anlegen, die als Template benutzt wird+
  
-  * Notiz: Diese Methode hat den Vorteil, das neue Templates direkt genutzt werden. Dies ist bei den anderen Methoden nicht immer der Fall.+//Beispiel://\\ 
 +<file php> 
 +/* Modifikation, damit man ein Template pro Namensraum definieren kann;  
 +   siehe https://www.dokuwiki.org/de:namespace_templates#frei_editierbare_templates_fuer_alle_benutzer 
 +      if(file_exists($path.'/_template.txt')) { 
 +         $data['tplfile'] = $path.'/_template.txt'; 
 +   wurde ersetzt durch: */ 
 +      if(file_exists($path.'/template.txt')) { 
 +         $data['tplfile'] = $path.'/template.txt'; 
 +/* Ende der Modifikation */ 
 +</file> 
 + 
 +Jetzt kann jeder Benutzer mit Schreibrechten in einem Namensraum eine Seite  "template" anlegen, die als Template benutzt wird.  
 + 
 +  //Notiz:// Diese Methode hat den Vorteil, dass neue Templates direkt genutzt werden. Dies ist bei den anderen Methoden nicht immer der Fall.
  
 ==== @GROUPS@ Unterstützung ==== ==== @GROUPS@ Unterstützung ====
Zeile 112: Zeile 132:
  
   * Es ist eventuell sinnvoll den Standard Seitennamen in der Konfiguration zu setzen, um sich den Ärger bei einem Update zu ersparen. Der Zugang zu den Templates kann mit ACL eingeschränkt werden.   * Es ist eventuell sinnvoll den Standard Seitennamen in der Konfiguration zu setzen, um sich den Ärger bei einem Update zu ersparen. Der Zugang zu den Templates kann mit ACL eingeschränkt werden.
- 
de/namespace_templates.1359468062.txt.gz · Zuletzt geändert: 2013-01-29 15:01 von 212.144.20.132

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: 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