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:47] – [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:
Zeile 50: Zeile 56:
     * Kannst du die geschweiften Klammern weglassen? Nur eine Klammer?     * Kannst du die geschweiften Klammern weglassen? Nur eine Klammer?
     * Kannst du anstelle von ''projekt'' vor dem''>'' Zeichen etwas anderes schreiben?     * 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 den regulären Ausdruck so ab, dass nach dem ''>'' auch nichts stehen kann.+   
 + 
 +  * Ä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.1623084428.txt.gz
  • Zuletzt geändert: 07.06.2021 16:47
  • von sbel