Anzeige von Untis Vertretungsplänen

Auf vielfachen Wunsch habe ich ein Plugin geschrieben, das Untis Vertretungspläne der Lehrer innerhalb des Portfolios anzeigen kann. Da ich selbst keinen Zugriff auf Untis habe, benötige ich an dieser Stelle möglicherweise Ihre Hilfe, um das Plugin zu verbessern und die Dokumentation verständlich zu formulieren.

Achtung: Das Plugin ist noch in der Testphase, Bitte installieren und probieren Sie es nur aus, wenn Sie bei der Entwicklung mithelfen möchten. Gefahr für Ihre übrigen Portfoliodaten besteht nicht.

Das Plugin kann hier heruntergeladen werden. Die Installation erfolgt wie bei DokuWiki Plugins üblich. Wenn Sie die Pläne mit dem weiter unten beschriebenen Batch Skript ins Portfolio laden wollen, müssen Sie außerdem die Datei curlupload.php aus dem Plugin-Verzeichnis ins Basisverzeichnis Ihrer Portfolioinstallation kopieren.

Voraussetzungen

Sie müssen für GP Untis das Info-Modul lizenziert haben.

Prinzipielle Funtionsweise

Die Pläne, die im Portfolio angezeigt werden sollen, werden mit dem Infomodul von Untis als HTML Dateien exportiert. Sinnvoll ist es wohl, mindestens „Heute“ und „Morgen“ zu exportieren. Die Pläne landen in Verschiedenen Verzeichnissen, die (wenn ich das richtig verstanden habe) konfigurierbar sind, das sieht dann also z.B. so aus, wie im Screenshot zu sehen.

Alle nötigen Dateien (im Beispiel rechts also der ganze Ordner Export werden auf dem Verwaltungsrechner in eine zip-Datei gepackt und mit Hilfe des Programms curl ins Portfolio hochgeladen. Das kann man in einer Batch Datei automatisiert oder auf „Doppelklick“ erledigen (lassen).

Das Plugin muss passend konfiguriert werden, und eine Portfolioseite zur Anzeige des Plans muss angelegt werden.

Arbeiten im Portfolio

Portfolioseite(n) anlegen

Nach der Installation des Plugins legen sie zuerst eine Seite im Portfolio an, auf der der Plan später angezeigt werden soll:

Der Inhalt der neuen Seite muss nur

{{untis>lehrer}}

oder

{{untis>aula}}

sein, Im ersten Fall wird die Lehrerzimmerversion angezeigt, im zweiten die Schülerversion der Vertretungspläne. Man sollte nicht beide Ausgaben auf einer Seite unterbringen, wie im Screenshot zu sehen, wenngleich das prinzipiell möglich ist. Weitere Eintragungen sind nicht nötig, nach dem Speichern der Seite erscheint eine Fehlermeldung (oder eine leere Seite).

Plugin konfigurieren

Wechseln Sie nach Admin->Konfiguration und dort in den Abschnitt Untis Plugin-Konfiguration.

Geben Sie hier alle HTML-Plandateien für die Lehrerpläne an, die angezeigt werden sollen, und zwar in zeitlich richtiger Reihenfolge: Zuerst der Plan für „Heute“, dann der für „Morgen“, u.s.w. Hier muss der volle Pfad im Portfolio zur HTML-Datei angegeben werden.
Denken Sie an die Unterverzeichnisse: Wenn Sie in der Zip-Datei das Unterverzeichnis „Export“ stets mit einpacken, entsteht es bein Auspacken unterhalb des angegebenen Pfads wieder: Wenn Sie dann einstellen, dass die Zip-Datei nach untis:plandateien ausgepackt werden soll, finden Sie ihre Plandateien nach dem Auspacken z.B. im Verzeichnis untis:plandateien:export:lehrer_heute:subst001.htm - und das muss in der Konfiguration auch angegeben werden.

Wiederholen Sie die Angaben für die Lehrerpläne, nur dieses Mal für die Schülerpläne.

Hier legen Sie ein Kennwort fest, das sie auf dem StundenplanPC „wissen müssen“, um Pläne hochladen zu können. Dieses Kennwort darf lang und kompliziert sein, man muss sich das nicht merken können.

Dann geben Sie die Datei an, in die das gezippte Planarchiv nach dem Upload verschoben werden soll. Hier muss der ganze Dateiname angegeben werden. Die Schreibweise muss im „DokuWiki“-Stil sein, Verzeichnisse müssen also durch Doppelpunkte getrennt werden.

Als nächstes geben Sie das Verzeichnis an, in dem die zip-Datei entpackt werden soll. Beachten Sie, dass alle Unterverzeichnisse, die sich in Ihrer zip-Datei befinden dorthin ausgepackt werden.

Setzen Sie das Häkchen bei „Ersetzugsliste im Cache-Verzeichnis speichern?“.

Setzen Sie das Häkchen bei „Ausgaben zur Fehlersuche an/ausschalten“, dass man dann später erst mal sehen kann, was passiert.

Optional können Sie bei (7) und (8) noch Spalten von der Anzeige ausnehmen.

Arbeiten am Verwaltungsrechner

Nun muss ein erster Plan ins Portfolio geschafft werden. Dazu muss das Exportverzeichnis gezippt und ins Portfolio geschoben werden:

Zippen: Mit einem beliebigen Packprogramm.

Hochschieben ins Portfolio wird mit CURL erledigt, das sollte auch durch die meisten Firewalls funktionieren:

Damit das klappt, muss bei der CURL Kommandozeile das zuvor im Portfolio festgelegte Kennwort als Parameter mit übergeben werden:

curl -k -F filedata=@Public.zip https://www.deinserver.irgendwo/curlupload.php -F secret="geheimgeheimiy7Ohng"

Anmerkung: Man kann die zip-Datei natürlich auch „von Hand“ über den Medienmanager an die konfigurierte Stelle ins Portfolio hochladen - aber will man das wirklich x-Mal am Tag machen?

Batch Skript

Damit das alles weniger kompliziert ist, habe ich alle benötigten Werkzeuge eingepackt:

vplan2pf.zip (MD5Sum: bd73bbad3a5457510a6f97912f7de7a3)

Dieses Archiv enthält:

CURL Kommandozeilenwerkzeug für Win32 Systeme

7zip-Portable

Ein Batchskript, welches konfigurierbar ist und dann den Rest erledigt

Die „Installation“ erfolgt durch einfaches Auspacken an eine beliebige Stelle (darf auch auf einem Netzlaufwerk sein). Nach dem Auspacken, muss man die Variablen in der Datei vplan2pf.bat an die eigenen Bedürfnisse und Gegebenheiten anpassen:

rem Installationsverzeichnis der Batch Dateien
set BASEDIR=C:\DOKUME~1\ADMINI~1\Desktop\vplan2pf
rem Kennwort zum Upload, wie in der
rem Konfiguration des Untis-Plugins eingestellt
set SECRET=GeheimGeheimSupergeheim
rem Vollständige URL des Uploadscripts, wenn möglich
rem https verwenden
set UPLOADURL=https://www.meinportfolioserver/portfolio/curlupload.php
rem Proxy zur Verbindung ins Internet. Aus dem SVN via Belwue funtioniert
rem die folgende Einstellung.
rem Bei Bedarf "rem" entfernen und einstellungen anpassen:
rem -x IP_Adresse_des_Proxys:ProxyPort
rem set PROXY=-x 129.143.4.2:8080
rem Vollständiger Pfad zum Verzeichnis, das eingepackt werden soll
set EXPORTDIR=E:\untis plan\Export\

Die Kommentare und Vorgaben sollten hier hilfreich sein, besonders wichtig ist, dass als BEASEDIR der Pfad des vplan2pf-Verzeichnisses angegeben wird. In den meisten Fällen wir aus das Setzen den Proxy Option unumgänglich sein, da man aus dem Schulverwaltungsnetz ohne Proxy nicht ins Internet gelangt.

Testen im Portfolio

Wenn der Upload geklappt hat, sollte bei korrekter Konfiguration bei Aufruf der Untis-Portfolioseite eine Ausgabe wie die folgende zu sehen sein - und unter den Debugausgaben der Vertretungsplan.

Wenn das soweit klappt, gehen Sie nochmals in die Konfiguration und entfernen Sie das Häkchen bei der Debug Option - nun sollten die Kontrollausgaben verschwinden.

Ersetzungen definieren

Das Plugin bietet die Möglichkeit, Zeichenketten im Text automatisch bei der Anzeige ersetzen zu lassen und dabei auch farbige Kodierungen anzubringen.

Dazu navigieren Sie nach Admin->Weitere Plugins->Untis Plugin.

Auf der dann folgenden Seite können Sie Ersetzungen definieren, die in der Studenplananzeige automatisch vor der Ausgabe des Vertretungsplans vorgenommen werden, um z.B. sehr lange Lehrernamen abzukürzen oder bestimmte Ereigniskategorien mit einer der vordefinierten CSS-Klassen hervorzuheben.

Das Format ist

Nummer Suchmuster|Ersetzung|CSS-Klasse|Spaltennummer

Die Nummern der Ersetzungsregeln dürfen nur einmal vorkommen, andernfalls überschreibt die in der Datei weiter unten festgelegte Regel die zuerst definierte. Die Nummern müssen nicht fortlaufend sein.

Die CSS-Klasse ist optional und kann auch weggelassen werden. Wenn eine Klasse angegeben wird, wird der Text in ein span-Element mit der angegebenen Klasse eingebettet. Vordefinierte Klassen sind green, orange, red und blue. Bei diesen wird ein kleines Quadrat in der entsprechenden Farbe vor dem ersetzten Text platziert.

Die Spaltennummer ist optional. Ist Sie angegeben, werden nur in der angegebenen Spalte Ersetzungen vorgenommen. Wenn keine CSS Klasse gewünscht ist und dennoch eine Spaltennummer spezifiziert werden soll, muss die durch eine „leere“ CSS Klasse geschehen: zwei Senkrechte nacheinander. Wenn in der Plugin-Konfiguration Spalten von der Anzeige ausgenommen wurden, müssen diese trotzdem weiterhin mitgezählt werden! Spalte 7 ist also stets die 7. Spalte in der Original Untis HTML Ansicht.

Beispiele

1 Vertretung | Vertr. | red
2 Vormerkung | Vorm. | | 7
3 Entfall | (f.a.) | green | 7
4 Betreuung | Betr, | orange

Regel 1: Ersetze „Vertretung“ durch „Vertr.“ und stelle ein rotes Quadrat voran.

Regel 2: Ersetze „Vormerkung“ durch „Vorm.“, keine Farbcodierung, nur ersetzen, wenn „Vormerkung“ in der 7. Spalte des Untis HTML-Exports gefunden wird.

Regel 3: Ersetze „Entfall“ durch „(f.a.)“ und stelle ein grünes Quadrat voran, aber nur in der 7. Spalte.

Regel 4: Ersetze „Betreuung“ durch „Betr,“ mir oranger Markierung.

Das Ergebnis sieht in etwa so aus: