Seitenaktionen der Site

für die Liste aller Seiten

Autoren (Grundlagen)

Die Seitenaktionen der Site-Seite wird als Quelle benutzt, um die Standardaktionen von PmWiki in der oberen rechten Ecke des Standard-Skins von PmWiki zu zeigen. Das sieh dann so aus:




Beachten Sie, dass es noch viele andere Verfügbare Aktionen in den Kochbüchern und PmWikis Diagnosen und Skripten gibt.

Die Site.PageActions-Seite nutzt das Zusammenwirken einer ganzen Reihe von PmWiki-Charakteristika.

Diese Seite gibt eine kurze Erläuterung der Möglichkeiten, die gewöhnlich in den Seitenaktionen der Site eingesetzt werden und gibt Hinweise darauf, wo weitere Informationen zu finden sind.

Beginnen wir mit einem Blick auf den Anfang einer typischen Site.PageAction-Seite, wie sie mit der PmWiki-Version 2.2.25 ausgeliefert wurde.

* %item rel=nofollow class=browse accesskey='$[ak_view]'    % [[ {*$FullName}               | $[View]    ]]
* %item rel=nofollow class=edit   accesskey='$[ak_edit]'    % [[ {*$FullName}?action=edit   | $[Edit]    ]]
* %item rel=nofollow class=diff   accesskey='$[ak_history]' % [[ {*$FullName}?action=diff   | $[History] ]]
(:if auth upload:)
* %item rel=nofollow class=upload accesskey='$[ak_attach]'  % [[ {*$FullName}?action=upload | $[Attach]  ]]
(:ifend:)
* %item rel=nofollow class=print  accesskey='$[ak_print]'   % [[ {*$FullName}?action=print  | $[Print]   ]]
(:if group Site,SiteAdmin,Cookbook,Profiles,PmWiki*:) (:comment delete if and ifend to enable backlinks:)
* %item rel=nofollow class=backlinks accesskey='$[ak_backlinks]'% [[{*$Name}?action=search&q=link={*$FullName} | $[Backlinks] ]]
(:ifend:)
(:if enabled AuthPw:)
* %item rel=nofollow class=logout    accesskey="$[ak_logout]"%''  [-[[{*$FullName}?action=logout | $[Logout] ]]-]''
(:ifend:)

Das könnte ein bisschen entmutigend wirken, aber wir nähern uns Schritt für Schritt. Beginnen wir damit, die erste Zeile anzusehen und auseinander zunehmen. Das gibt uns auch gute Hinweise, wie denn all die anderen Zeilen funktionieren.

Liste

Jede Zeile ist Bestandteil einer ungeordneten Liste, deshalb beginnt sie mit einem nicht eingerückten Sternchen '*'. Sie können mehr über Listen in der Seite mit den Grundlagen der Bearbeitung erfahren.

PmWiki stellt eine solche ungeordnete Liste gewöhnlich als einem Satz mit 'Knöpfchen' versehener Aufzählungspunkte dar. Sie können aber auch anders in Erscheinung treten, je nach dem Zusammenhang, in dem sie erscheinen. Diese Unterschiede sind in CSS-Regeln festgelegt, die das Aussehen der PmWiki-Oberfläche (Skin) bestimmen.

Wenn Sie einen Blick auf die Seite PageActions mit der Standard-Oberfläche von PmWiki werfen, sehen Sie, dass die Liste zweimal erscheint, einmal in der Mitte der Seite als normale, senkrechte Aufzählung mit Knöpfchen und einmal rechts oben als waagerechte Aneinanderreihung ohne Knöpfchen. Das wird durch die Tatsache kontrolliert, dass sie dort oben innerhalb einer HTML-<div>-Umgebung mit der ID 'wikicmds' dargestellt werden und die CSS-Regeln der Standard-Oberfläche setzen Listenelemente in dieser Umgebung eben nebeneinander und unterdrücken die Knöpfchen.

Sie können den Effekt selbst sichtbar machen, denn PmWiki hat Textauszeichnungen, die es möglich machen, etwas in einer <div>-Umgebung mit der ID 'wikicmds' darzustellen:

* test1
* test2
* test3
(:div id=wikicmds:)
* test1
* test2
* test3
(:divend:)
  • test1
  • test2
  • test3
  • test1
  • test2
  • test3

Stil

Dem '*' folgt in der Zeile ein '%item ... %', das ist ein Wikistil. Er wird benutzt, um die Eigenschaften eines gegebenen Ausgabeelements zu bestimmen, wie die Größe oder die Farbe. Standardmäßig wirken sie auf den Text zwischen sich und dem Zeilenende oder einem schließenden '%%', je nachdem, was zuerst kommt. So kann man z. B. "dieser %blue%Text%% ist blau" eingeben und es erscheint als "dieser Text ist blau".

In diesem Fall beginnt der Wikistil mit dem Wort 'item', und das bedeutet, der Stil soll auf das gesamte Listenelement wirken, für das dieser Wikistil eingesetzt wird und nicht nur für den Text, der folgt, insbesondere wird hier so ein HTML-Kode erzeugt

<li class='edit'>...</li>

anstatt solcher

<li><span class='edit'>...</span></li>

Das Setzen des Klassenattributs für die Liste gestattet es, CSS-Eigenschaften auf das Listenelement anzuwenden, passend zur aktuellen Aktion. Um zum Beispiel die aktuelle Aktion mit einem blauen Hintergrund zu versehen, könnte ein Administator dies tun:

# das gehört in die Datei local/config.php
$HTMLStylesFmt[] = ' .{$Action} { background-color: blue; }';

Dann würde die aktuell ausgeführte Aktion blau hinterlegt werden. Wenn Sie also gerade eine Seite bearbeiten (auf englisch 'edit'), wobei PmWiki ein '?action=edit' an den URL der Seite anhängt, wird das Listenelement 'Bearbeiten' passend zur ('edit'-)-Bearbeiten-Aktion mit einem blauen Hintergrund versehen werden. Das sieht allerdings erbärmlich aus.

Die andere Eigenschaft innerhalb des %item ... %-WikiStils ist die 'accesskey='$[ak_view]''-Anweisung (jetzt geht es wieder um die erste Zeile ganz oben). AccessKeys sind Tastaturkürzel für Aufgaben, die anderenfalls mit der Maus ausgeführt würden. Sie können an einen Verweis (engl. link) oder ein Formular-Element angeheftet werden, der Wikistil nimmt das, was er zuerst auf der Zeile findet. In diesem Fall wird es an den Verweis [[ {*$FullName} | $[View] ]] angeheftet.

Tastaturkürzel (Accesskey)

Ein Tastaturkürzel kann an verschiedenen Stellen definiert werden, aber im Wesentlichen passiert es in einer Phrasenübersetzung, die dem Modell für die Internationalisierung folgt. PmWikis Tastaturkürzel werden in der Datei scripts/prefs.php definiert, können aber an vielen Stellen überschrieben werden, einschließlich Oberflächen (skins), Sprachübersetzungsseiten (XLPage) und sogar durch Browser-Einstellungen (siehe Site.Preferences).

Das $[...]-Markup definiert die Phrasenübersetzung, die für die Internationalisierung (und Tastaturkürzel, wie oben bemerkt) zuständig ist. In der ersten Zeile der Site.PageActions-Seite wird es sowohl in $[ak_view] als auch in $[View] eingesetzt. $[View] weist PmWiki an, die Übersetzung von 'View' einzusetzen, im deutschen also 'Anzeigen', der erste Eintrag in der Reihe. Wenn es keine Übersetzung gibt, wird die Phrase innerhalb der eckigen Klammern selbst eingesetzt. $[ak_view] setzt das Tastaturkürzel ein.

Man kann bei der deutschen Oberfläche gut sehen, wie diese Übersetzung arbeitet. In der Aktionsleiste stehen die Wörter 'Anzeigen', 'Bearbeiten', 'Versionen' und 'Druckansicht' für 'View', 'Edit', 'History' und 'Print'. In der Datei PmWikiDe.XLPage findet sich dazu ein Abschnitt —

'View' => 'Anzeigen'
'Edit' => 'Bearbeiten'
'History' => 'Versionen'
'Print' => 'Druckansicht'

— in dem diese Übersetzung definiert wird. Wenn Sie französisch oder spanisch können, überzeugen Sie sich, dass das auch mit anderen Sprachen funktioniert.

Das macht es sehr einfach für PmWiki, diverse Sprachen zu unterstützen, da ein Rezept-Autor einfach alle übersetzbaren Phrasen ins Innere von $[...] schreibt und es anderen überlässt, die Übersetzungstabellen zu schreiben, entweder lokal oder in pmwiki.org zum Nutzen auch anderer. Weitere Informationen zu $[...] sind verfügbar in Internationalisierungen.

Verweis (Link)

Alles was von der ersten Zeile zu erklären übrig bleibt, ist der Verweis selbst: [[ {*$FullName} | $[View] ]]. Verweise sind nicht komplex, aber ausgerechnet dieser hier benutzt gleich zwei der Fähigkeiten von PmWiki, die Übersetzungstabelle und eine Seitenvariable. Das $[View] ist schon erklärt und taucht hier in dem Verweistextteil des Verweises auf (rechts vom Pipesymbol '|'), so dass der Verweis als Anzeigen erscheint.

Der Linkzielteil (links vom Pipesymbol '|') enthält die {*$FullName}-Variable. Diese Variable wird ersetzt durch den vollen Namen der Seite, die im Browser gerade angesehen wird, einschließlich Gruppen- und Seitennamen. Für einfaches Ansehen ist das gut genug, denn Seiten-Ansehen ist die Standardaktion, die man mit einer Seite machen kann. Spätere Zeilen enthalten Ziele wie {*$FullName}?action=edit, dieses bedeutet, dass die gerade angesehene Seite bearbeitet werden soll.

If

Damit ist erklärt, was es mit allen diesen '*'-Zeilen auf sich hat. Das lässt noch die (:if auth upload:)- und (:ifend:)-Zeilen zu erklären übrig, die zusammen gehören. Die erste beginnt eine Art Bedingte Auszeichnung und die zweite beendet sie. Das (:if Test :)-Markup lässt den folgenden Text nur anzeigen, wenn der Test erfolgreich verläuft. Der bedingt angezeigte Text endet bei der nächsten (:if...:)-Anweisung. Statt dessen lässt sich das Ende des bedingten Blocks auch durch ein leeres (:ifend:) setzen. Der Test, der hier durchgeführt wird, ist 'auth upload'. Das ist nur dann wahr, wenn der Benutzer des Wiki autorisiert ist, Dateien hochzuladen. Dadurch wird der Verweis zur Durchführung eines Hochladens nur dann angezeigt, wenn der aktuelle Benutzer das Recht dazu hat.

Abhängig vom Sicherheits- und Rechte-Modell einer gegebenen Site ist es nicht ungewöhnlich, viel mehr bedingte Auszeichnungen zu sehen, die zum Beispiel testen, ob ein Benutzer das Bearbeiten-Recht an der augenblicklichen Seite hat. Fehlt dieses Recht, wird die Bearbeiten-Aktion nicht angezeigt. — Im einfachsten Modell wird das Recht erst abgefragt, wenn man die Aktion beginnt, dort darf man die Aktion also nicht ausblenden. Andererseits spart einem das Ausblenden auch nicht, die Schreibrechte einzurichten, denn jeder kann '?action=edit' an die URL anhängen. Weitere Informationen über die verschiedenen Bedingungen findet sich in der Seite Bedingte Auszeichnung, die generelle Übersicht über alle PmWiki-Dokumentationen finden Sie im Dokumentations-Index.

Gruppen-Seitenaktionen

Jede Gruppe kann ihre eigene PageActions-Seite haben, nicht nur die Gruppe Site. Wenn es eine Seite mit dem Namen Group.PageActions gibt, benutzt PmWiki diese Seitenaktionen in der Gruppe 'Group'. Auf die Seitenaktionen der Site-Gruppe fällt PmWiki zurück, wenn die entsprechende Gruppenseite nicht vorhanden ist. Das funktioniert gerade so wie bei den SideBar-Seiten.

Verbergen von Aktionen

Wollen Sie die Aktionen in einer Seite nicht angezeigt sehen, fügen Sie in die Seite die Direktive (:noaction:) ein, siehe die Seitendirektive noaction. Alternativ fügen Sie das Folgende in die local/Group.Page.php-Datei ein (wobei 'Group' der Gruppenname und 'Page' der Seitenname ist):

SetTmplDisplay('PageActionFmt',0);

Sollen die Aktionen für eine ganze Gruppe verborgen werden, fügen Sie das Folgende in die local/Group.php-Datei ein (wobei 'Group' der Name der Gruppe ist):

SetTmplDisplay('PageActionFmt',0);

Hoffentlich hat diese Dokumentation ein wenig Licht ins Dunkle gebracht, wenigsten, was die PageActions angeht. Wenn nicht, möchten Sie vielleicht in den PmWiki-Mailing-Listen Rat suchen. für die Liste aller Seiten


Übersetzung von PmWiki.SitePageActions,   Originalseite auf PmWikiDe.SitePageActions   —   Rückverweise

Zuletzt geändert:   PmWikiDe.SitePageActionsam 09.12.2020
 PmWiki.SitePageActionsam 02.01.2022