wiki:ILIAS/HTML-Plugin

Das PhysikOnline-HTML-Plugin für ILIAS

Wir litten seit über einem Jahr daran, im ILIAS nicht gescheit HTML-Inhalte auf Kategorieseiten (z.B. Startseite, Impressum) bearbeiten zu können (#4). Am 12.10.2012 hab ich dann endlich ein Plugin geschrieben, dass damit Schluss macht. An dieser Stelle soll dieses Plugin beschrieben werden.

Dieses Plugin leistet auch noch in PO3 aktive Dienste.

Ansatzpunkt

Das Plugin heißt POIncludes und ist ein UserInterfaceHook für den Service UIComponent. Es hängt sich zwischen den Rendering und Ausgabeprozess template_show (siehe auch ILIAS/Codeguide) und operiert damit auf der gesamten produzierten Seite, die unten dokumentierten Tags können also an jeder Stelle, einschließlich Wiki-Seiten, (theoretisch) Namen von Lernmodulen, rohen HTML-Templates auf der Festplatte (auch wenn es da keinen Sinn macht) verwendet weden.

Syntax

Das Plugin bietet mehrere Features, die per PHP Callback-PREG-Replaces implementiert wurden.

Die Groß- und Kleinschreibung der genannten Tags spielt keine Rolle. Wichtig ist bloß, dass der (an XML-Namespaces lediglich angelehnte) Prefix PO (steht naheliegenderweise für PhysikOnline) in Großbuchstaben steht!

Nobreak-Umgebung

<b>Dies ist normaler</b> Wiki-Code
in ILIAS. Jede Zeile wird automatisch mit
<h2>einem Br abgetrennt, was nervig sein
kann</h2> und strukturierten Quelltext
unmöglich macht.

<PO:nobreak>
Zeilen, die zwischen Nobreak-Anweisungen stehen,
leiden unter dem Problem nicht mehr. Wenn man wirklich
ein Break will, kann man es mit <PO:br> bzw. XML-konform
<PO:br/> erzeugen.
</PO:nobreak>

Alternativ kann auch das Keyword <PO:html>HTML statt Nobreak</PO:html>
mit gleicher Wirkung verwendet werden.

In Nobreak-Tags werden alle <br>s gelöscht. Das sind zum einen ILIAS-eigene <br>-Hinzufügungen, können aber auch eigene, gewünschte <br>s sein. Siehe dafür das Beispiel wie man dies umgeht.

Externe Includes

Dies ist <b>HTML</b>-Code. Hier wird eine externe Ressource eingebunden:
<PO:Include id="foo">

Alternativ XML-Konform:
<PO:include id="bar" />

Externe Includes sind ein extrem mächtiges Werkzeug. Derzeit wird das Laden von der ID gleichlautenden Text- und PHP-Dateien aus dem Verzeichnis

/home/elearning-www/public_html/elearning/local/includes/*.htm

erlaubt, wobei an der Stelle von * die id eingesetzt wird. Je nach Bedarf kann das ausgebaut werden, um etwa auch dynamische (PHP-)Inhalte einbinden zu können.

Extern eingebundene Dateien sind keinen ILIAS-Schikanen unterworfen, können also jedweden selbst invaliden HTML-Code beinhalten und werden inklusive aller Whitespaces eingesetzt.

Verwendungsstellen

Beispielzeichnung zur Einbindung

So kommt man zur richtigen Stelle, um das Include-Tag zu setzen. Wir haben den kompletten Text ausgelagert in eine eingebundene HTML-Datei.

An welchen Stellen die Plugin-Tags ausgewertet werden, ist leider ein regelrechtes Mysterium, da ILIAS (an dieser Stelle) grottenhaft schlecht dokumentiert ist. Ging ich ursprünglich noch davon aus, dass man auch in Skins/Templates diese Anweisungen verwenden könne (Das nobreak-Kommando ist dort nicht nötig, da das HTML ohnehin nicht weiterverarbeitet wird, aber das includes-Kommando wäre nützlich, um Anwendungslogik und Inhalt zu trennen), stellte sich heraus, dass dem nicht so war. Aus unerfindlichen Gründen wurde der Template-Rendering-Hook dort nicht aufgerufen, wenngleich ich verschiedene Hooks ausprobierte. Dies bedarf noch mal einer Analyse.

Stattdessen kann man die Plugin-Tags hervorragend zur Gestaltung von ILIAS-Kategorien verwenden. Auch die ILIAS-Startseite (typischerweise Magazin genannt) ist eine solche Kategorienseite, weswegen sich damit prima die ILIAS-Startseite gestalten lässt. Das Bild auf der rechten Seite erläutert, wie das funktioniert.

Installationsdetails

Der Sourcecode für das Plugin findet sich unter /home/elearning-www/public_html/elearning/ilias/Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/POIncludes/. er ist hier im POTT verfügbar im Codebrowser unter POIncludes.

Siehe auch ILIAS/Benutzerschnittstelle für die Erläuterung der Customizing-Ordnerstruktur.

Last modified 3 years ago Last modified on Feb 17, 2015 9:45:25 AM

Attachments (2)

Download all attachments as: .zip