Englisch: HomePage |
PmWikiDe /
Eigene Aktionen
Administratoren (Fortgeschritten), Entwickler
Mit Kochbuchrezepten ist es möglich, eigene Seitenaktionen für PmWiki zu definieren. Der korrespondierende Kode wird ausgeführt, wenn ein Parameter wie in dem folgenden Beispiel angegeben wird: [[MyGroup/MyPage ?action=myaction]]
Mit einer solchen Aktion kann man die Anzeige und Behandlung der aktuellen Seite ändern - wie in den Standardaktionen
Während ein Eigene Auszeichnungen vornehmlich bedeutungsvolle Textersetzungen an der aktuellen Seite vornehmen soll, wird eine Seitenaktion von einem URL-Parameter ausgelöst und kann deshalb in Verweisen als Aufruf von PHP-Funktionen eingesetzt werden, mit Wirkung auf die aktuelle Seite oder auf das ganze Wiki, wie in diesem Beispiel:
Auf jeden Fall müssen Sie sich klar darüber sein, wenn Sie PmWikis eingebaute Funtionen für angepasste Aktionen (Benutzeraktionen) nutzen wollen, dass Kochbuchrezepte in die Das folgende Beispiel zeigt, wie Sie eine Benutzeraktion $HandleActions['myaction'] = 'HandleMyAction'; # Wenn der URL 'action=myaction' enthält, # rufe HandleMyAction zur rechen Zeit auf $HandleAuth['myaction'] = 'admin'; # Autorisierungsebene $auth für HandleMyAction function HandleMyAction($pagename, $auth) { # Parameter (Signatur) der Handler-Funktion, die PmWiki erwartet global $Author; # aktuellen Benutzernamen behalten, z. B. für Seitenverlauf $old = RetrieveAuthPage('MyGroup.MyOtherPage', $auth); # Alle Informationen der Seite MyGroup.MyOtherPage holen $new = $old; # die Seiteninformationen, die unverändert bleiben, # kopieren (z. B. Seitenverlauf) $new['text'] = "x".$old['text']; # ... etwas am alten Text manipulieren $Author='myactionbot'; # Autorname, der im Seitenverlauf für diese Manipulation # eingetragen werden soll $pn='MyGroup.MyOtherPage'; # nötig, weil UpdatePage nur mit Variablen (by reference) # als Parameter aufgerufen werden darf UpdatePage($pn,$old,$new); # ändere die aktuelle Wikiseite HandleBrowse($pagename); # zeige die in dem URL angegebene Seite (z. B. MyGroup.MyPage) an } Anmerkungen:
Kategorie: PmWiki Developer Übersetzung von PmWiki.CustomActions, Originalseite auf PmWikiDe.CustomActions — Backlinks
|