DokuWiki

It's better when it's simple

Narzędzia użytkownika

Narzędzia witryny


Pasek boczny

This translation is older than the original page and might be outdated. See what has changed.
Translations of this page?:

Learn about DokuWiki

Advanced Use

Corporate Use

Our Community


Follow us on Facebook, Twitter and other social networks.

Our Privacy Policy

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