faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:plugin_grundlagen:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:plugin_grundlagen:start [07.06.2021 16:44] – [Aufgaben] sbelfaecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:plugin_grundlagen:start [10.06.2021 09:53] (aktuell) – [Styling der Ausgaben] sbel
Zeile 23: Zeile 23:
  
 {{ :faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:plugin_grundlagen:auswahl_383.png?600 |}} {{ :faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:plugin_grundlagen:auswahl_383.png?600 |}}
 +
 +<WRAP center round tip 60%>
 +Tipp: Füge auf der Wiki-Seite, auf der du das Plugin testest am Seitenstart den Dokuwiki Code  
 +  ~~NOCACHE~~ 
 +ein, um das Caching der Seite abzuschalten - das erspart dir verwirrende Probleme, wenn du alte Versionen aus dem Cache angezeigt bekommst.
 +</WRAP>
 +
  
 ==== Erklärungen ==== ==== Erklärungen ====
Zeile 37: Zeile 44:
 {{ :faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:plugin_grundlagen:ablauf.png |}} {{ :faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:plugin_grundlagen:ablauf.png |}}
  
-===== Aufgaben ===== +---- 
 {{:aufgabe.png?nolink  |}} {{:aufgabe.png?nolink  |}}
 === (A1) === === (A1) ===
  
-Öffne die Datei ''syntax.php'' im Editor deiner Wahl. Der Quelltext ist mit Kommentaren versehen - vollziehe den im Diagramm oben dargestellten Ablauf beim finden des Musters und dessen Ersetzung im Quelltext nach.+Öffne die Datei ''syntax.php'' deines Plugins (innerhalb des Verzeichnisses ''projekt''im Editor deiner Wahl. Der Quelltext ist mit Kommentaren versehen - vollziehe den im Diagramm oben dargestellten Ablauf beim finden des Musters und dessen Ersetzung im Quelltext nach.
  
 Überprüfe deine Erkenntnisse, indem du das Plugin veränderst: Überprüfe deine Erkenntnisse, indem du das Plugin veränderst:
  
   * 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?    * 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 ">Zeichen weglassen? Kannst du die Option nach dem ">Zeichen weglassen?+    * Kannst du das ''>'' Zeichen weglassen? Kannst du die Option nach dem ''>'' Zeichen weglassen? 
 +    * Kannst du die geschweiften Klammern weglassen? Nur eine Klammer? 
 +    * Kannst du anstelle von ''projekt'' vor dem''>'' Zeichen etwas anderes schreiben? 
 +    * Ändere den regulären Ausdruck so ab, dass nach dem ''>'' auch nichts stehen kann.
   * Ändere die Ausgabe so ab, dass anstelle der Liste eine Tabelle ausgegeben wird:   * Ändere die Ausgabe so ab, dass anstelle der Liste eine Tabelle ausgegeben wird:
 {{ :faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:plugin_grundlagen:auswahl_384.png |}} {{ :faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:plugin_grundlagen:auswahl_384.png |}}
 +  
 +
 +  * Ändere das Plugin so ab, dass es auf das Muster ''::mondial>.+?::'' reagiert. Mach die Änderung anschließend rückgängig.
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A2) ===
 +
 +Baue eine Entscheidung in die Ausgabe ein: 
 +
 +   {{projekt>tabelle}}
 +
 +soll eine Tabelle mit Befehl und Optionen ausgeben (s.o.)
 +
 +  {{projekt>liste}}
 +
 +eine Liste wie zu Beginn.
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A3) ===
 +
 +Ein Syntax Plugin kann auch mit mehr als einem Pattern verbunden werden. Auf diese Weise kann man auch mehrere "Ersetzungs-Befehle" in einem Plugin implementieren, indem man in ''connectTo'' mehrere Muster suchen lässt:
 +
 +<code php>
 +$this->Lexer->addSpecialPattern('\{\{ptabelle>.*?\}\}', $mode, 'plugin_projekt');
 +$this->Lexer->addSpecialPattern('\{\{pliste>.*?\}\}', $mode, 'plugin_projekt');
 +</code>
 +
 +Ü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 ''style.css'' anzulegen, in denen man CSS-Regeln festlegen kann. Styles in dieser Datei werden von DokuWiki beim Seitenaufruf automatisch mitgeliefert.
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A4) ===
 +
 +Erstelle eine Datei ''style.css'' im Plugin Verzeichnis mit folgendem Inhalt:
 +
 +<code css>
 +.projekt-befehl {
 +    color: red;
 +}
 +
 +.projekt-option {
 +    color: green;
 +}
 +</code> 
 +
 +Passe dann die Ausgabe im Plugin so an, dass der Befehl zwischen 
 +  <span class="projekt-befehl">...</span>
 +steht und die Option entsprechend und überprüfe das Ergebnis.
 +
 +<WRAP center round important 60%>
 +Die CSS-Dateien werden von Dokuwiki lange im Cache gehalten. Wenn aktualisierte CSS-Regeln nicht im Browser ankommen, kann man das Löschen des Caches erzwingen, indem man auf dem Übungsserver den Zeitstempel der Datei ''../wiki/conf/dokuwiki.php'' aktualisiert: ''touch ~/public_html/wiki/conf/dokuwiki.php''.
 +</WRAP>
 +
 +===== Sichern des bearbeiteten Plugins in einem eigenen Git-Repo =====
 +
 +Da die Plugin-Vorlage aus einer Quelle geklont wurde, auf die du keine Schreibrechte besitzt, sorgen wir jetzt noch dafür dass du eine weiteren Entwicklern in einem eigenen Repo weiterverfolgen kannst.
 +
 +Lege zunächst ein leeres Git-Repo auf Gitea an. Im Beispiel verwende ich ''https://gitea.schule.social/sbel/dokuwiki-plugin-frank.git''. Die Adresse zeigt Gitea nach dem Erstellen des Repos in der Kurzanleitung an:
 +
 +{{ :faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:plugin_grundlagen:auswahl_385.png?600 |}}
 +
 +Jetzt wechselt man in das Plugin-Verzeichnis auf dem Übungsserver und setzt dort eine neue Adresse für den "origin" des Repos:
 +
 +  git remote set-url origin https://gitea.schule.social/sbel/dokuwiki-plugin-frank.git
 +
 +Von nun an kann man das Repository auf den eigenen Origin pushen - du hast einen Fork erstellt.
 +
 +=== Den gesamten Ablauf zeigt der folgende ASCII-Cast: ===
 +
  
-  * Ändere das Plugin so ab, dass es auf das Muster ''::mondial>.+::'' reagiert.+<html> 
 +<script id="asciicast-5AXcMQhGvS1VZv5LPZuVDlJUZ" src="https://asciinema.org/a/5AXcMQhGvS1VZv5LPZuVDlJUZ.js" async></script> 
 +</html>
  • faecher/informatik/oberstufe/datenbanken/projekt/dokuwiki_plugin/plugin_grundlagen/start.1623084293.txt.gz
  • Zuletzt geändert: 07.06.2021 16:44
  • von sbel