dokuwiki:statisches_layout

Statisches Layout

Mein Dokuwiki ist so konfiguriert, dass es seine Benutzeroberfläche vollständig verbirgt, wenn der Besucher keine Schreibrechte hat. So ist auf der Homepage keine überflüssige Funktionalität sichtbar.

Dies geschieht durch ein Template das in der Datei main.php, die Rechte des Benutzers prüft, und die Seite entsprechend angepasst ausgibt.

Das Caching von Dokuwiki geht jedoch normalerweise davon aus, dass alle Seiten für alle Benutzer gleich sind. Es muss daher abgeschaltet werden:

$conf['cachetime'] = -1;

Aktivieren der ACLs

Die Verwaltung der Zugriffsrechte wurde nach dieser Anleitung aktiviert:

  1. Kopieren der Datei conf/acl.auth.php.dist nach conf/acl.auth.php
  2. Ändern dieser Datei wie folgt:
    *	        @ALL	1
    privat:*	Michael	16
    privat:*	@ALL	0

    Unangemeldete Benutzer (@ALL) haben in allen Seiten und Namenräumen (*) nur Leserechte (1). Auf allen Seiten im Namensraum privat wird unangemeldeten Benutzern (@ALL) der Zugriff verweigert (0), während dem Benutzer Michael Löschrechte (16) eingeräumt werden.

  3. Kopieren der Datei conf/users.auth.php.dist nach conf/conf/users.auth.php
  4. Setzen folgender Konfigurationsoptionen:
      $conf['useacl']       = 1;        // this enables the ACL feature
      $conf['superuser']    = '@admin'; // admin group is superuser
  5. Anmelden eines Benutzers Michael
  6. Editieren der Datei conf/users.auth.php um den Benutzer Michael zur Gruppe admin hinzuzufügen.

Anpassung des Templates

Die Dokucms-Vorlage wird so ändert, dass Benutzern ohne Schreibrecht eine statische Seite, das heißt ohne jegliche Wikifunktionalität angezeigt wird.

Metaheader

Um die Wiki-Funktionalität vor den Nur-Lese-Benutzern zu verbergen, müssen auch die Meta-Angaben verändert werden. Dies geschieht über das Plugin MetaHeaders. Die Konfigurationsdatei des Plugins ist conf/metaheaders.conf.php.

Dort habe ich eingetragen, dass die Angaben für Alternativen, Suchen, Startseite, Inhaltsverzeichnis und Editieren gelöscht werden. Weiter werden dort über selbst implementierte Funktionen die Links zur Stylesheet-Datei und Javascript-Datei umgeschrieben.

Schaltknöpfe

Die Schaltknöpfe zur Steuerung des Wikis werden ebenfalls nur angezeigt, wenn der Nutzer Schreibrechte besitzt.

RSS-Feed

Die Links zum RSS-Feed werden entfernt.

Plugins

Static Plugin

Das Plugin ist eine Erweiterung des HTML-Renderers von Dokuwiki, es besteht aus einer Datei mit dem Namen renderer.php und befindet sich im Verzeichnis lib/plugins/static. Diese Datei enthält eine PHP-Klasse mit dem Namen renderer_plugin_static, die von der Klasse Doku_Renderer_xhtml abgeleitet ist.

Funktion

Dieser Renderer verändert die Darstellung von Links:

  1. Interne Links (Funktion internallink)
    1. Der Benutzer hat Schreibrechte auf das Linkziel → unveränderte Darstellung
    2. Der Benutzer hat Leserechte auf das Linkziel → Nicht existierende Links werden ausgeblendet.
    3. Der Benutzer hat keine Leserechte auf das Linkziel → Link ausblenden.
  2. Links zu internen Bildern und Dateien (Funktion internalmedia)
    1. Der Benutzer hat Schreibrechte der aktuellen Seite und das Linkziel –> unveränderte Darstellung
    2. Der Benutzer hat Leserechte der aktuellen Seite → Detailseite bei Bildern abschalten.
    3. Der Benutzer hat Leserechte auf das Linkziel → Nicht existierende Dateien nicht verlinken.
    4. Der Benutzer hat keine Leserechte auf das Linkziel → Datei nicht verlinken.
  3. Links zu externen Bildern und Dateien (Funktion externalmedia)
    1. Der Benutzer hat Schreibrechte der aktuellen Seite → unveränderte Darstellung.
    2. Der Benutzer hat Leserechte der aktuellen Seite → Detailseite bei Bildern abschalten.

Konfiguration

Das Rendererplugin wird in der Konfigurationsoption renderer_xhtml eingetragen, um es zu aktivieren.

Scramble Plugin

Mit Hilfe dieses Plugins kann man für nicht angemeldete Benutzer (d.h. Benutzer ohne Schreibberechtigung) Inhalte verschleiern, verbergen oder ausblenden. Dazu wird der Inhalt in folgende Marker eingefasst:

Das Plugin definiert folgende Marker:

  • [<< Inhalt >>]
    Der Inhalt wird ausgeblendet.
  • [|| Inhalt1 || Inhalt 2 ||]
    Der richtige Inhalt1 wird ggf. durch Inhalt2 ersetzt.
  • [$$ Inhalt $$]
    Die Buchstaben des Inhalts werden durch zufällige Buchstaben, und die Ziffern durch zufällige Zahlen ersetzt. Groß-/Kleinschreibung bleibt erhalten. Alle anderen Zeichen (Satzzeichen) sind unverändert.
  • [** Inhalt **]
    Buchstaben und Ziffern werden durch Kreuze (×) ersetzt. Alle anderen Zeichen (Satzzeichen) sind unverändert.

Das Markup wird vor dem Parser von Dokuwiki ausgewertet, so dass es innerhalb jeden Syntaxelements eingesetzt werden kann. Eine Schachtelung ist nicht erlaubt.

Download

Das ZIP-Archiv enthält die oben beschriebenen Dateien der Verzeichnisse lib/plugins/static, lib/plugins/scramble, lib/tpl/dokuwiki und conf/metaheaders.conf.php.

dokuwiki/statisches_layout.txt · Zuletzt geändert: 2014/09/13 19:12 (Externe Bearbeitung)

Seiten-Werkzeuge