Road to V3
LIMBAS V3.0 - die Neuerungen
Mitte September erscheint eine neue Version des Datenbankframeworks LIMBAS. Mit Version 3.0 gibt es einige Erweiterungen und Neuerungen, sowie eine Überarbeitung des grafischen User Interface. Einige Funktionen sind zwar noch aus Version 2 bekannt, wurden aber teilweise stark überarbeitet. Also was gibt es Neues in Version 3.0? Hier ein kleiner Überblick.
Seit geraumer Zeit kann man LIMBAS in verschiedenen Sprachen verwenden, doch mit dem Update ist es nun auch möglich, nicht nur die Systemsprache zu wechseln, sondern auch die Datensatzinhalte in die ausgewählte Sprache zu übersetzen und in dieser zu verwenden. Dabei muss man wissen, dass LIMBAS dazu die zu übersetzenden Felder als neue physische Felder in der Tabelle anlegt, sie aber vor dem Anwender versteckt. Wer sich also mit der englischen Sprache anmeldet, wird auch ausschließlich die englischen Felder sehen und bearbeiten können. Das zieht sich über das gesamte System, wie unter anderem in Berichten, Formularen und Diagrammen – das Rechtesystem bleibt davon allerdings unberührt. So werden immer alle Felder einer Sprache als Einheit berechtigt. Dieser Ansatz unterscheidet sich von dem, einfach mehrere Felder unterschiedlicher Sprache selbst anzulegen und über Gruppen zu berechtigen. Auch unterscheidet LIMBAS „System-“ und „Lokale“ Sprachtabellen. In der Systemsprachtabelle werden alle Menüpunkte, Meldungen und sonstige internen Sprachobjekte gespeichert, die bei einem Update auf eine neue Version überschrieben werden. In der lokalen Sprachtabelle werden alle variablen Spracheinträge, wie z. B. Tabellen und Feldnamen, gespeichert. Sie bleiben bei Updates unberührt und gehören zur selbst erstellten Anwendung. Die Einrichtung dieser Sprachunabhängigkeit benötigt ein paar Vorbereitungen. Zum einen müssen die gewünschten Sprachen im SETUPMENÜ | SPRACHEN angelegt sein. In LIMBAS ist als Systemsprache aktuell nur Deutsch und Englisch vollständig übersetzt. Weitere Sprachen können aber selbst angelegt und administriert sowie übersetzt werden. Dazu bietet das Sprachmodul komfortable Übersetzungstools.
Als Nächstes wählt man in SETUPMENÜ | SPRACHEN | LOKALE SPRACHTABELLE über das Häkchen „Übersetzen“ die Sprachen aus, für die eine datensatzbezogene Übersetzung aktiviert werden soll. Über die Umgebungsvariable multi_language in SETUP | UMGVAR kann man die ausgewählten Sprachen überprüfen. Um die Mehrsprachigkeit für ein Feld zu aktivieren, kann man nun nach einem Reset der Session auf die Einstellungen eines gewünschten Tabellenfelds navigieren und den Punkt „mehrsprachig“ auswählen. Damit wird dieses einzelne Feld als mehrsprachig behandelt, was allerdings nur bei Feldern vom Typ Text funktioniert. Eine Besonderheit bieten dabei Auswahlpools: Da für einen Auswahlpool ja schon Werte vorgegeben werden, können die entsprechenden Übersetzungen direkt in der Pooldefinition eingegeben werden.
So werden Änderungen in einem Drop-down-Feld in allen Sprachen übernommen (Abb. 1).
Abb. 1: Das Pflegen der mehrsprachigen Drop-Down-Felder
Der Diagrammeditor
Der Diagrammeditor ist ein LIMBAS-Modul, das lange auf sich hat warten lassen. Waren vorher nur eigene Erweiterungen möglich, die über externe Tools wie z. B. JP Graphics Diagramme erstellen konnten, bietet das neue Modul zusätzlich einen Diagrammeditor, mit dem man automatisiert Diagramme für Abfragen und Tabellen erstellen kann. Der neue Diagrammeditor ist unter ADMIN | DIAGRAMME zu finden.
Um ein Diagramm mit dem Editor zu erstellen, wählt man neben dem Namen und einer der drei Diagrammarten (Kuchen-, Linien- oder Balkendiagramm) eine Tabelle oder Abfrage aus, deren Daten dargestellt werden sollen. Nach dem Erstellen können noch Schriftgröße, Position der Legende, Beschriftung etc. eingestellt werden.
Auch muss der Nutzer für jedes anzuzeigende Feld entscheiden, ob dessen Inhalte als Daten oder Beschriftung interpretiert werden sollen. Inhalte eines Beschriftungsfelds werden dann unter der x-Achse des Diagramms angezeigt. Nach Auswahl der Felder erfordert LIMBAS einen Reset, damit das Diagramm dargestellt werden kann.
Ist die Option „Transponiert“ aktiviert, werden nicht die Datensätze einer Spalte, sondern einer Zeile als zusammengehörig betrachtet und so z. B. im Liniendiagramm auf einer Linie angezeigt.
Diagramme können auch in einen Bericht eingebunden werden. Dies geschieht durch das Hinzufügen einer Formel mit folgendem Code in einen Bericht:
$chart_id = 12;
append_subChart($pdf, $report, $ID, $el, $chart_id);
Dieses Beispiel bindet das Diagramm mit der ID 12 in einen Bericht ein. Der Bericht kann anschließend in der zugehörigen Tabelle oder Abfrage erstellt werden (Abb. 2).
Apropos Bericht: Auch hier hat sich einiges getan. Um die Gestaltung im Bericht- oder Formeleditor zu vereinfachen, kann man nun auch mehrere Elemente gleichzeitig auswählen und bearbeiten, zum Beispiel das gleichzeitige Verschieben oder Vergrößern.
Abb. 2: Der Diagrammeditor
Die parametrisierte/tabellenübergreifende Verknüpfung
Für Verknüpfungen jeder Art werden in LIMBAS Zwischentabellen mit fixen Feldern erstellt. Sie konnten nicht verändert werden; daher war es nicht möglich, zusätzliche Informationen für die Verknüpfung zu speichern. Das neue Feature „Verknüpfungsparametrisierung“ soll nun genau das ermöglichen. Nach Aktivierung der Funktion über den Verknüpfungseditor (Häkchen gesetzt) und einem Reset, können in der automatisch veröffentlichten Tabelle mit dem Namen [ursprünglicher Tabellenname]_params neue Felder angelegt werden. Die Feldtypen hierfür sind jedoch begrenzt, Verknüpfungen in parametrisierten Verknüpfungen sind beispielsweise nicht möglich.
Angenommen man hat eine Tabelle „Mitarbeiter“ und eine Tabelle „Projekte“. Mit der parametrisierten Verknüpfung ist es möglich, festzulegen, welche Funktion welcher Mitarbeiter in welchem Projekt hat.
Eine zusätzliche Hilfe für das Administrieren von Verknüpfungen bietet neben der Konvertierungsmöglichkeit von 1:n in n:m und umgekehrt die „Tabellenübergreifende Verknüpfung“, die ebenfalls im Verknüpfungseditor erstellt werden kann. Sie ermöglicht es, eine „nur lesende“ Verknüpfung zu erstellen, die über mehrere, schon vorhandene Verknüpfungen zusammengefasst wird. Ein Beispiel wäre Auftrag | Kunde | Ansprechpartner. Mithilfe der tabellenübergreifenden Verknüpfung können nun alle Ansprechpartner des Auftrags angezeigt werden, ohne extra eine Abfrage zu erstellen. Genauso ist es umgekehrt im Ansprechpartner nun ein Leichtes, den Auftrag anzuzeigen, ohne zuerst über den Kunden zu gehen oder eine Erweiterung schreiben zu
müssen (Abb. 3).
Abb. 3: Tabellenübergreifende Verknüpfungen leicht gemacht
Mit der neuen Version kommt auch das neue Layout comet, das an moderne Standards angepasst wurde.
Das Erstellen von Wiedervorlagen in Massen
Wiedervorlagen waren in LIMBAS schon immer eine grundlegende Funktion, mit der auf einfache Art und Weise Datensätze für sich oder andere User bzw. Gruppen zeitlich organisiert werden können. Neben einer allgemeinen "Build-in"-Wiedervorlage können auch selbst definierte Wiedervorlagen für bestimmte Tabellen mit bestimmten Rechten definiert werden. Einen besonderen Stellenwert bekommen diese Wiedervorlagen im Zusammenhang mit Workflows. In der Version 3.0 ist es nun auch möglich, Wiedervorlagen in Massen anzulegen.
Um mehrere Wiedervorlagen gleichzeitig zu erstellen, muss man die gewünschten Datensätze in der Listenansicht auswählen oder filtern. Anschließend können über den Menüpunkt EXTRAS die Wiedervorlagen angelegt werden. Diese können wie gehabt für sich selbst (Benutzer oder Benutzergruppen bleiben leer) oder für einen bestimmten Benutzer oder eine Benutzergruppe eingetragen werden.
Das Löschen von mehreren Wiedervorlagen gestaltet sich ähnlich einfach: Über die Wiedervorlagenliste aus dem rechten Medienframe können alle Wiedervorlagen ausgewählt und auf einmal gelöscht werden. Eine Einschränkung besteht allerdings für allgemeine Wiedervorlagen, die keiner Tabelle zugewiesen sind: Sie können nach wie vor nur einzeln gelöscht werden. Diese Funktionen sind auch über das API nutzbar und somit auch für selbst erstellte Workflowkomponenten.
Layout
Mit der neuen Version kommt auch das neue Layout comet. Das Layout ist an moderne Standards angepasst. Fortan werden keine PNG-Icons mehr verwendet, sondern skalierbare Font-Elemente. Es ist jedoch immer noch möglich, das alte Layout skalar zu verwenden. Die anderen Layouts wurden, da sie veraltet sind, aus der neuen Version entfernt.
Die Farben für beide Layouts können nach wie vor vom Administrator über die Farbschemas SETUP | SCHEMA angepasst werden. Jeder Benutzer kann wie gewohnt über sein Profil das Layout oder Farbschema selbst auswählen. Auch können eigene Layouts erstellt werden, was wegen des Umfangs von LIMBAS keine "Spielerei" werden dürfte. Dazu kopiert man im Verzeichnis /layout/ ein schon vorhandenes Layout mit eigenem Namen und passt die entsprechenden Dateien wie css.php oder frameset.php in diesem neuen Verzeichnis seinen Bedürfnissen an. Dateien, an denen keine Änderung vorgenommen wird, können aus dem eigenem Verzeichniss gelöscht werden, da diese dann aus dem übergeordneten Verzeichnis /layout/ genutzt werden. Um neuen Benutzern immer ein bestimmtes Layout und Farbschema zuzuweisen, kann man in den Umgebungsvariablen Setup UmgVar die Einträge default_layout und default_usercolor anpassen.
Die oft bemängelten Frames sind nach wie vor Bestandteil des LIMBAS-Layouts. Das liegt neben den teilweise großen Inhalten in den Menüframes - und somit der Performance - auch daran, dass die LIMBAS-Entwickler sich nicht ausschließlich auf Ajax-Funktionalität beschränken möchten.
Exiftool / Metadaten
Ein schon bekanntes, aber runderneuertes Feature ist die Metadatenünterstützung von Dateien im Dateimanager (Abb. 4). Der Vorteil von Metadaten ist, dass sie im Allgemeinen im Bild gespeichert werden, ohne das Bild selbst zu beeinflussen. Neben Formaten wie Exif, IPTC und XMP werden auch Dateiformate wie PDF und Office-Dokumente wie .doc und .odt unterstützt.
Abb. 4: Exif-Metadaten
Bis dato konnte LIMBAS aus TIFF- oder PDF-Dokumenten die Metainformationen lesen und schreiben. Ebenso wurden diese Metadaten gleichzeitig in die entsprechenden Felder der Metadatentabelle geschrieben oder aus ihr gelesen. Die dazu notwendigen unterschiedlichen Tools wurden nun durch das „Exiftool“ ersetzt. Exiftool ist ein Perl-Modul mit einem zusätzlichen Kommandozeilenwerkzeug zum Lesen und Schreiben von Metainformationen von Bild-, Audio- und Videodateien sowie PDF und vielen weiteren Dateitypen.
Um diese Funktionalität nutzen zu können, muss das gleichnamige Softwarepaket exiftool auf dem Betriebssystem installiert werden. Danach kann man Inhalte der Metadatentabelle Files_Meta mit eigenen Feldern ergänzen oder anpassen. Existiert ein gleichnamiges Feld in den Metadaten einer Datei, so werden beim Upload der Datei die Inhalte der Metadaten in das entsprechende Datenbankfeld kopiert. Entsprechend wird versucht, beim Ändern des Inhalts eines Felds der Metadatentabelle diese Änderungen wieder zurück in die Datei zu schreiben, sodass bei einem Download die Metadaten aus der Datei direkt zur Verfügung stehen. Eine Einschränkung existiert nur über die unterstützten Dateiformate des Exiftools selbst.
Um das Ganze besser zu verstehen, ist ein Einblick in das Dokumentensystem von LIMBAS hilfreich. Das Dokumentensystem besteht gänzlich aus Inhalten der Tabellen ldms_files und ldms_meta sowie ldms_structure. Dabei beinhaltet die Tabelle ldms_files alle notwendigen Informationen, wie Name, Pfad, Größe, Mimetype. In ldms_meta stehen die flexiblen Metadaten, wie z. B. Autor, Schlagwörter und Beschreibung, die standardmäßig aus den Dublin-Core-Metadaten besteht. Die Tabelle ldms_structure beschreibt die Ordnerstruktur.
Der Zugriff auf eine Datei selbst erfolgt nur im Fall eines Hoch- oder Runterladens vom Server. Eine Ordnerstruktur auf Dateisystemebene existiert nicht, und eine Suche der Dateien oder Ordner auf dem Server mit dem entsprechenden Namen wird erfolglos bleiben. Im Fall eines Herunterladens einer Datei wird nach bestandener Rechteprüfung die Datei als Symlink im eigenen Userverzeichnis abgelegt und so zusätzlich über die .htaccess-Authentifizierung des Servers abgesichert.
Fazit
Das Grundprinzip von LIMBAS hat sich auch in Version 3.0 nicht grundlegend geändert. Das Layout basiert im Wesentlichen auf CSS und einer Framestruktur. Die inneren Werte sind nach wie vor in vielen Bereichen funktionsbasiert; bei der Menge an Code ist eine objektorientierte Umstellung auch nur nach und nach möglich. Die Prioritäten liegen dagegen auf Performance und Funktionsvielfalt. Nach dem Motto „das Auge isst mit“ wirkt das neue Layout deutlich moderner, ist aber der Funktionalität untergeordnet. Und das ist gut so.
Artikel aus: PHP Magazin - 6.16 (Autor: Axel Westhagen, LIMBAS GmbH)