Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:plugin_grundlagen:start [07.06.2021 19:04] – [Styling der Ausgaben] sbel | faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:plugin_grundlagen:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== DokuWiki Plugins - Grundlagen ====== | ||
- | |||
- | Dieses Projekt kann keine vollständige Einführung in die PHP- und DokuWiki-Plugin-Programmierung sein. Wir bewegen uns innerhalb eines bestehenden Frameworks von DokuWiki Funktionen und Rahmenbedingungen und lernen, uns in dieser Umgebung zurechtzufinden, | ||
- | |||
- | ===== Installation und Test des Plugin Skeletts ===== | ||
- | |||
- | * Melde dich per ssh auf dem Übungsserver an | ||
- | * Wechsle in das Verzeichnis '' | ||
- | * Klone das Repo der Projektvorlage: | ||
- | * Benenne das entstehende Plugin Verzeichnis um: '' | ||
- | |||
- | <WRAP center round important 60%> | ||
- | Das Verzeichnis eines DokuWiki-Plugins muss immer genau so heißen, wie das Plugin in den php-Dateien auch benannt ist. Da das Vorlagen Plugin dort " | ||
- | </ | ||
- | |||
- | Füge auf deiner Startseite im Wiki den Code | ||
- | |||
- | < | ||
- | {{projekt> | ||
- | </ | ||
- | |||
- | ein und betrachte die Ausgabe. Das sollte in etwa so aussehen: | ||
- | |||
- | {{ : | ||
- | |||
- | ==== Erklärungen ==== | ||
- | |||
- | Das " | ||
- | |||
- | {{projekt> | ||
- | |||
- | gefunden wird, wird dieser durch einen durch das Plugin bestimmten Text ersetzt. Im Quelltext des Plugins wird gesteuert, nach welchen Code-Mustern in der Wiki-Seite gesucht wird, in welcher Weise gefundene Muster verarbeitet werden und was anstelle des gefundenen Musters ausgegeben werden soll. | ||
- | |||
- | |||
- | Dieser Vorgang wird in der Datei '' | ||
- | |||
- | {{ : | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A1) === | ||
- | |||
- | Öffne die Datei '' | ||
- | |||
- | Überprüfe deine Erkenntnisse, | ||
- | |||
- | * Verändere den Code in deiner Wikiseite und versuche den regulären Ausdruck zu verstehen, der das Pattern-Matching macht: Was kannst du verändern, das nicht? Warum? | ||
- | * Kannst du das ''>'' | ||
- | * Kannst du die geschweiften Klammern weglassen? Nur eine Klammer? | ||
- | * Kannst du anstelle von '' | ||
- | * Ändere den regulären Ausdruck so ab, dass nach dem ''>'' | ||
- | * Ändere die Ausgabe so ab, dass anstelle der Liste eine Tabelle ausgegeben wird: | ||
- | {{ : | ||
- | | ||
- | |||
- | * Ändere das Plugin so ab, dass es auf das Muster '':: | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A2) === | ||
- | |||
- | Baue eine Entscheidung in die Ausgabe ein: | ||
- | |||
- | | ||
- | |||
- | soll eine Tabelle mit Befehl und Optionen ausgeben (s.o.) | ||
- | |||
- | {{projekt> | ||
- | |||
- | eine Liste wie zu Beginn. | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A3) === | ||
- | |||
- | Ein Syntax Plugin kann auch mit mehr als einem Pattern verbunden werden. Auf diese Weise kann man auch mehrere " | ||
- | |||
- | <code php> | ||
- | $this-> | ||
- | $this-> | ||
- | </ | ||
- | |||
- | Übernehme diese beiden Zeilen in deine connectTo-Methode und steuere die Ausgabeart nun über den Befehl anstelle der Option. | ||
- | |||
- | ==== Styling der Ausgaben ==== | ||
- | |||
- | Um den im Plugin erzeugen und dann im Browser angezeigten HTML-Code noch mit eigenen Styles zu versehen, reicht es, im Plugin Verzeichnis eine Datei '' | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A4) === | ||
- | |||
- | Erstelle eine Datei '' | ||
- | |||
- | <code css> | ||
- | .projekt-befehl { | ||
- | color: red; | ||
- | } | ||
- | |||
- | .projekt-option { | ||
- | color: green; | ||
- | } | ||
- | </ | ||
- | |||
- | Passe dann die Ausgabe im Plugin so an, dass der Befehl zwischen | ||
- | <span class=" | ||
- | steht und die Option entsprechend und überprüfe das Ergebnis. | ||