wiki:ILIAS/Benutzerschnittstelle

ILIAS User Interface-Veränderungen

Diese Seite erklärt die Bedeutung der Unterordner im großen ILIAS-Ordner Customizing. Er ist online erreichbar unter https://elearning.physik.uni-frankfurt.de/Customizing/ (man kann ihn soweit wie möglich durchbrowsen), außerdem ist sein Inhalt/Änderungen per git erfasst und hier im POTT eingebunden, und zwar unter Quellen durchsehen: local/Customizing.

Im Dateisystem findet man den Customizing-Ordner seit PO3 unterhalb von /home/elearning-www/public_html/elearning/local/Customizing. Alles andere sind Softlinks auf diesen Ordner.

Übersicht

Veränderungen der Benutzerschnittstelle in Form von Plugins, Skins, etc. werden im Unterordner Customizing unter der ILIAS-Installation vorgenommen (bereits seit ILIAS 3 ist das so).

Dieser Ordner enthält im kanonischen Unterordner global die drei Ordner Screenshot der Ordnerstruktur in einem File Manager (Windows Explorer, per sshfs-cifs-Mount)

  • agreement, in dem die Nutzungsvereinbarungen drin abgespeichert sind
  • skin, in dem eigene Skins für die ILIAS-Oberfläche drin gespeichert sind
  • plugins, in dem eigene Plugins gespeichert sind

Skin/Templates

ILIAS verwendet die Begriffe Skin und Template synonym, während es unter einem Style eine Ausprägung eines Templates versteht, was allerdings niemand nutzt, sodass das auch Synonym ist. Die Nomenklautur auf der ILIAS-Seite ist stehts Templatename / Stylename. Für das PhysikOnline-Skin ist dies PhysikOnline / Desktop-Version. Diese Namen stehen in der template.xml im Verzeichnis des entsprechenden Skins.

Es gibt derzeit drei bis vier installierte Skins:

  • delos ist das Standard-Skin von ILIAS
  • neu hat Mirko als erstes eigenes Skin zu Testzwecken angelegt, dies ist mittlerweile gelöscht
  • physik ist das von Sven auf Basis von delos vollständig überarbeitete und erweiterte Skin (PO2)
  • mobile ist das Skin von ILIAS Mobile, in dem einzelne Anpassungen für PhysikOnline vorgenommen wurden. Dieser Ordner ist ein SVN-Checkout des Branches im offiziellen ILIAS-SVN-Repository, siehe #39.
  • po-3.0 ist das von Philip geschriebene neue Skin für PO3

Ein Skin in ILIAS kann alle Template-Files überschreiben, die im ILIAS-Code Verwendung finden (siehe Codeguide für Details). Das sind vor allem Header, Footer, Menüs, Login- und Logout-Seiten. Die Namen der spezifischen Templates haben sich von ILIAS 4.2 zu ILIAS 4.3 verändert. Sie müssen in den Unterordnern (etwa Services/UICore) stehen, in denen sie auch im ILIAS-Code stehen.

Desweiteren lädt ILIAS automatisch eine dem Template gleichnamige CSS-Datei physik.css in jede ILIAS-Seite. Da das monolithische delos.css, auf dem das Physik-Template aufbaut, alleine aus fast 4000 Codezeilen besteht (was monströs viel ist), hab ich das CSS in viele kleine Dateien in den Unterordner physik.css.d aufgeteilt, die von einem Script manuell oder mit einem Continous-Script (welches den Ordner per inotify quasi ständig pollt und im Hintergrund ausgeführt werden kann) zusammengefasst werden in physik.css. Damit ist der Code sehr leicht wartbar. Einziges Problem ist der enorme Umfang von 4200 Zeilen (fast 70kB). Hier ist noch Optimierungspotential (Minify, LESS, …), aber wirklich Performance gewinnt man erst wenn dies mit einem RessourceLoader, wie bei MediaWiki, implementiert wäre.

Die JavaScript-Dateien im Unterordner js werden nicht automatisch eingebunden, sondern müssen bei Bedarf mit der Hand an Ort und Stelle eingebunden werden. Das kann in Templates geschehen, aber auch auf Inhaltsseiten selber dank dem HTML-Plugin.

Sprachen/Messages

ILIAS verwendet wie jede größere Software das Prinzip von kleinen Sprachmessages, die über einen Identifikationsstring aus einer Tabelle eingebunden werden. Im Code steht dann bloß etwa login-welcome-text, dies wird mit dem Messages-System (ILIAS: $ilLng) dann automatisch auf etwa Willkommen zu ILIAS oder etwa Welcome to ILIAS aufgelöst.

Solche Sprachmessages lassen sich typischerweise missbrauchen, um die GUI an der betroffenen Stelle deutlich zu überstrapazieren. Ein sehr gutes Beispiel ist profile_incomplete, welches unten gezeigt ist, und statt einem einfachen Plain-Text-String eine komplette hübsche mit CSS aufgewertete Box anzeigt. Das geht aber auch nur, weil der Ausgabestring von ILIAS nicht HTML-Escaped wurde.

Über das ILIAS-Messaging-System wurden demnach eigene (z.T. per HTML angereicherte) Texte injekziert. Diese könnten bei einem Update kaputt gehen, daher werden sie hier dokumentiert.

profile_incomplete
Wird angezeigt, wenn jemand sich das erste mal bei ILIAS mit seinem HRZ-Login einloggt und das Profil invalide unvollständig ist. Das ist eine hübsche Box die den Benutzer darauf hinweist was das neue ILIAS alles tolles kann und was er ausfüllen sollte.
<div id="PE-DE-profile_incomplete"><h2>Willkommen bei Physik Online</h2><p>Du wurdest mit deinem <b>HRZ-Account erfolgreich eingeloggt</b>. Damit du mit einem etwas weniger anonymen Namen als <i>s1852931</i> durch Physik Online bewegen kannst, hast du im Folgenden die Möglichkeit, einen vollen <b>Vor- und Nachname</b> angeben. Das ist nicht verpflichtend, wenn du anonym auftreten willst kannst du auch nur Initialen oder Unsinn eintragen. Allerdings dienen die Angaben ohnehin nur zur Kollaboration in studentischen Bereichen, Dozenten bekommen sie nicht zu sehen.<p>Noch wichtiger ist deine <b>E-Mail-Adresse</b>. Sie wird benötigt, damit Professoren Nachrichten an Kurse verschicken können. Natürlich wird deine Mailadresse geheimgehalten. <a href="https://elearning.physik.uni-frankfurt.de/goto.php?target=pg_64_1378" target="_blank">Erhalte weitere Informationen über Profildaten, Benutzernamen und Datenschutz</a><p>Alle weiteren Angaben sind freiwillig. Bitte fülle nun alle Felder mit einem rotern Stern<span class="asterisk">*</span> aus.</div>
Normalerweise steht da bloß: Ihr Profil ist nicht vollständig. Bitte geben Sie alle erforderlichen Daten an. Dieser Text gehört zu dem umfassenden Erstanmeldungs-Workflow, den ich fürs WS 11/12 erstmals erdacht habe (erste Anmeldung über LDAP, Account-Synchronisation, usw). Siehe auch #388
login_to_alias
Statt Bei ILIAS anmelden anzeigen: Bei Physik Online anmelden
startpage
Statt ILIAS-Anmeldeseite: Physik Online-Anmeldeseite
no_access_item_public
Standardtext Um dieses Objekt zu nutzen, müssen Sie angemeldet sein und entsprechende Zugriffsrechte besitzen. ersetzt durch einen hübschen Text mit Aufforderung zum Login und Icon

Plugins

ILIAS verwendet ein Plugin-System, welches auf Hooks basiert: Im ILIAS-eigenen Code wird an Stellen, die für ILIAS-Entwickler sinnvoll erscheinen, eine Art Codemarke gesetzt, und dann kann man ausgewiesene lokale Variablen verändern und dementsprechend die Funktionsweise dieses Codes verändern.

Genutzt wird das bislang nur für UIComponent/UserInterfaceHook-Klassen. Derzeit sind drei Plugins installiert:

  • LfMainMenu ist ein Plugin für die Administrator-Website, mit dem sich das ILIAS-Hauptmenü hübsch bearbeiten lässt, ohne in Templates rumfummeln zu müssen.
  • SkinTransformer ist ein Plugin, welches mit XSL-Transformationen Skins transformieren kann, es gehört zu ILIAS Mobile #39
  • POIncludes sind die PhysikOnline-Includes, mein selbstgeschriebenes Plugin um Roh-HTML-Text ohne nervigen Linebreaks darstellen zu können und sogar externe Dateien einbinden zu können, siehe dafür HTML-Plugin.

Die komplette Konfiguration der einzelnen Plugins verbirgt sich gut versteckt unter einem Admin-Menüpunkt, wo man die Plugins einzeln aktivieren oder deaktivieren kann und eben auch Updaten und Konfigurieren. So maßt es etwas absurd an, dass das Bearbeiten des Hauptmenüs dadurch an einer sehr versteckten Stelle aufwartet.

Last modified 4 years ago Last modified on Oct 23, 2013 11:30:19 AM

Attachments (1)

Download all attachments as: .zip