DokuWiki

It's better when it's simple

Narzędzia użytkownika

Narzędzia witryny


pl:namespace_templates

Szablony przestrzeni nazw

Czasem pożądane jest by każda strona w określonej przestrzeni nazw bazowała na wspólnym szkielecie. Na przykład, w przestrzeni nazw address mógłbyś mieć już przygotowaną tabelę, w której wystarczy tylko wpisać dane. Można to w prosty sposób uzyskać przy użyciu tak zwanych „szablonów przestrzeni nazw”.

Podczas tworzenia strony DokuWiki sprawdza, czy istnieją pliki szablonów i pokazuje pasujący w oknie edytora. Szablony są zatem plikami txt i powinny zawierać znaczniki wiki.

Pliki szablonów

Mogą być użyte dwa rodzaje plików szablonu:

  • _template.txt, który jest wykorzystywany w aktualnej przestrzeni nazw.
  • __template.txt (dwa wiodące podkreślenia), który działa jak zwykłe pliki _template.txt poza tym, że używane są we wszystkich przestrzeniach nazw poniżej (są dziedziczone).

Jednym ze sposobów utworzenia szablonu jest

  • użycie wiki by zapisać stronę z zawartością jakiej chcesz użyć w szablonie w wybranej przestrzeni nazw
  • użycie FTP lub WebDAV do utworzenia kopii w tym samym folderze, a następnie
  • użycie wiki by usunąć oryginalny plik. 1)

Składnia

Plik zawiera tekst i standardowe znaczniki wiki.

Wzorce wymiany

Wewnatrz pliku możesz używać również pewnych wzorców wymiany by uczynić szablon trochę bardziej dynamicznym.

@ID@ pełny ID strony
@NS@ przestrzeń nazw strony
@PAGE@ nazwa strony (ID bez przestrzeni nazw i z podkreśleniami zastąpionymi przez spacje)
@!PAGE@ to samo co powyżej ale z dużą pierwszą literą
@!!PAGE@ to samo co powyżej ale z dużą pierwszą literą we wszystkich wyrazach
@!PAGE!@ to samo co powyżej ale dużymi literami
@FILE@ nazwa strony (ID nez przestrzeni nazw, podkreślenia pozostawione)
@!FILE@ to samo co powyżej ale z dużą pierwszą literą
@!FILE!@ to samo co powyżej ale dużymi literami
@USER@ ID użytkownika, który utworzył stronę
@NAME@ nazwa użytkownika, który utworzył stronę
@MAIL@ adres email użytkownika, który utworzył stronę
@DATE@ data i czas rozpoczęcia sesji edycji

Ponadto możesz użyć dowolnego symbolu zastępczego strftime by wstawić datę utworzenia strony w dowolnym preferowanym formacie. by wstawić w dokumencie znak % z szablonu, musi on tam być zapisany podwójnie.

Edycja szablonów

Nie możesz zmieniać _template.txt przez DokuWiki – tylko ktoś, kto może edytować pliki w folderach DokuWiki (zwykle administrator używając FTP lub WebDAV). Istnieją dwie sztuczki, aby to osiągnąć, do wyboru: jedna obejmująca utworzenie na początku dowiązania symboliczne i druga obejmująca zmiany w kodzie.

Szablony edytowane z użyciem linków symbolicznych

Wykorzystując ten sposób, możesz przechowywać szablony w odpowiedniej przestrzeni nazw. Tworząc symlink można uczynić go edytowalnym. Można również uczyniś szablon nieedytowalnym nie używając linku.

  1. Utwórz przestrzeń nazw nazwaną „szablony”, albo podobnie.
  2. W tej przestrzeni nazw utwórz stronę dla każdej przestrzeni nazw jaka powinna być dostępna.
  3. Wykonaj instrukcje powyżej, ale utwórz _template.txt jako twardy link 2) do właściwej strony w przestrzeni nazw szablony. Masz teraz szablon Teraz dysponujesz szablonem, który może być łatwo zmieniany przy użyciu interfejsu wiki.
Użyć też można innej metody, tworząc template.txt będący linkiem symbolicznym do _template.txt, jego własnej przestrzeni nazw
( cd /var/www/html/dokuwiki/data/pages/namespace/something ; ln -s _template.txt template.txt ).
W ten sposób można edytować szablon przechodząc do dowolnej strony w przestrzeni nazw a następnie zastępując nazwę strony przez 'template' w adresie URL.
(np. http://www.mywiki.somewhere/dokuwiki/doku.php?id=namespace:something:template )

W ten sposób można użyć softlinków, chociaż trochę inaczej :)


Dla użycia softlinków webserwer wymaga ustawienia opcji FollowSymLinks na folderze (drzewie).


Szablony edytowalne dla wszystkich użytkowników

W ten sposób wszystkie twoje szablony będą dostępne do edycji przez wszystkich mających uprawnienie do zmiany.

  1. Zmień domyślną nazwę szablonu na „template.txt” (lub aaa_template.txt) i mniej więcej w linii 817 inc/common.php 3).
  2. Teraz każdy użytkownik z uprawnieniami zmiany w przestrzeni nazw może tworzyć stronę nazwaną „template” w tej przestrzeni nazw, która będzie tam służyła za szablon.
  • Uwaga: Ta metoda ma zaletę, że nowe szablony będą dostępne od ręki. To może nie nastąpić w przypadku innych metod (dodawanie plików lub linków symbolicznych ręcznie w folderach DokuWiki).

Wsparcie dla @GROUPS@

Może być interesujące uzyskanie wsparcia dla słowa kluczowego @GROUPS@ rozwijanego do listy grup użytkownika tworzącego stronę (by na przykład ustawić znaczniki na stronie domowej użytkownika). Implementuje go następująca łatka.

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

Sugestie

  • Być może ustawienie domyślnej nazwy szablonu w konfiguracji zapobiegnie nieporządkowi w common.php, i pozwoli uniknąć wyczyszczenia poprawek przy kolejnej aktualizacji programu. Można ograniczyć dostęp do tych plików wykorzystując ACL.
  • Byłoby użyteczne posiadanie szablonów do określonych nazw stron. Na przykład __index.txt mógłby być szablonem dla wszystkich stron nazywanych „index” w każdej przestrzeni nazw. Byłby bezużyteczny z jednym podkreśleniem,gdyż może być tylko jedna strona z określoną nazwą w jednej przestrzeni nazw.
  • By uniknąć konfliktu nazw, pomóc mógłby inny system nazewniczy szablonów: template.tpl dla aktualnej przestrzeni nazw, template.rtpl dla przestrzeni poniżej (szablon rekurencyjny)
1)
Te zmiany zostaną zastosowane tylko do nowych stron jakie utworzysz w przestrzeni nazw.
2)
soft linki wydają się nie działać, ale przejrzyj uwagę na temat FollowSymLinks poniżej
3)
Linie 811 i 812 w wersji 2009-02-14
pl/namespace_templates.txt · ostatnio zmienione: 2014-12-01 09:23 przez 195.187.140.186

Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji: 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