Skript-Erweiterungen
LIMBAS ermöglicht es, für spezielle Anwendungen Erweiterungen einzubinden. Dazu gibt es zwei Möglichkeiten:
LIMBAS Core mit eigenem Skript erweitern
Beim Start ermittelt LIMBAS alle Dateien „ext_*.inc“ aus dem Verzeichnis ./dependent/EXTENSIONS bzw. beliebigen Unterverzeichnissen davon. Vor der Ausführung eines Skripts .php, .dao oder .lib überprüft dieses das Vorhandensein ein oder mehrerer (aus verschiedenen Unterverzeichnissen) ext_.inc und arbeitet diese ggf. ab.
Folgende Sourcedateien können momentan erweitert werden:
Source Script | Extension Name | Ausführung | Funktionalität |
---|---|---|---|
session_auth.lib | ext_global.inc | Skriptanfang | Global |
main.php | ext_main.inc | Skriptmitte | Haupteinstiegsseite |
main.php | ext_main.js | Skriptende | Haupteinstiegsseite Javascript Bodyelemente |
main_admin.php | ext_main_admin.inc | Skriptmitte | Admin Haupteinstiegsseite |
main_dyns.php | ext_ajax.inc | Skriptanfang | Haupteinstiegsseite für Ajax-Aufrufe |
gtab/gtab.lib | ext_gtab.inc | Skriptanfang | Grundlegende Funktionen für alle Datenbank-Abfragen und -Änderungen |
gtab/html/gtab_erg.php | ext_gtab_erg.inc | Skriptanfang | Funktionen für die Listen-Darstellung |
gtab/html/gtab_erg.dao | ext_gtab_erg_dao.inc | Skriptanfang | Funktionen für die Listen-Darstellung |
gtab/dao/gtab_change.dao | ext_gtab_change.inc | Skriptanfang | Funktionen für die Detail-Darstellung |
lib/session_auth.lib | ext_session_auth.inc | Skriptende | Funktionen für die Session-Initialisierung |
lib/session_auth.lib | ext_ldap.inc | Skriptanfang | Funktionen für die LDAP Authentifizierung |
extra/report/report.dao | ext_report.inc | Skriptanfang | Funktionen für Reports |
extra/explorer/filestructure.lib | ext_explorer.inc | Skriptanfang | Funktionen für LIMBAS DMS |
layout/nav.php | ext_nav.inc | Skriptende | Erweiterung der Navigationsleiste |
extra/multiframe/multiframe.dao | ext_multiframe.inc | Skriptende | Funktionen für Darstellungen im Mehrzweck-Fensters am rechten Browser-Rand |
admin/setup/color_schema.lib | ext_css.inc ext_scss.inc extscssv.inc | Skriptende | Erweiterung für Überschreibungen des Hauptstylesheets von Limbas (für direkte Anpassungen am Layout) |
main.php | ext_main.css | Skriptmitte | Zusätzlich eingebundenes CSS für eigene Erweiterungen |
Generell können beliebig viele Erweiterungsskripte des gleichen Namens in unterschiedlichen Ordnern angelegt werden. Dabei kann man eine eigene Ordnerstruktur im ./dependent/EXTENSIONS Verzeichnis erstellen, die der Übersichtlichkeit dient.
LIMBAS mit eigenen Funktionen erweitern
Das Skript, das von LIMBAS ausgeführt werden soll, muss im Verzeichnis ./dependent/EXTENSIONS oder einem Unterverzeichnis mit der Endung *.ext vorliegen.
Dieses Skript wird unter Admin->Setup->Menüpunkte bei dem Menüpunkt, der die Ausführung des Skriptes triggert, in der Spalte „Erweiterung“ per Select ausgewählt. Falls der Menüpunkt schon eine Limbas-Aktion beninhaltet hat wird die ursprünglich vorgesehene Aktion nicht ausgeführt. Es können ebenfalls eigene Menüpunkte hinzugefügt werden. Diese können berechtigt und im vollen Umfang in Erweiterungen genutzt werden. Unter „Menüpunkte“ fallen auch Aktionen oder Links die nicht in Menüs genutzt werden.
Notiz:
Bitte beachten Sie, dass das Select-Feld nur zur Verfügung steht, wenn dem Menüpunkt ein eindeutiger Aktionsname zugewiesen ist
Im Beispiel wird die Datei helloworld.ext aufgerufen. Die folgenden Beispielcode enthält:
Beispiel:
<?php
echo "hello world";
?>
Die Aktion kann nun über folgende URL aufgerufen werden: http://…openlimbas/dependent/main.php?action=nav_meinMenue.
Erweiterung der main.php über die Datei ext_main.inc
Diese muss im Verzeichnis /dependent/EXTENSIONS bzw. einem beliebigem Unterverzeichnis angelegt werden. Um eine Extension für einen neuen Hauptmenüpunkt auswählen zu können, muss zunächst eine Aktion eingegeben werden.
Die Aktion kann ein beliebiger Name sein, der später zum Aufrufen der Extension verwendet wird. (Achtung: Jeder Name darf nur einmal vorkommen)
Der Aufruf erfolgt über die Ergänzung des limbas-Links mit „main.php?action=NAME_DER_AKTION“.
Beispiel:
ext_main.inc
<?
if($action == 'nav_meinMenue' ){
#require('eine Datei die Sie brauchen');
echo "hallo";
$action='null';
}
?>
$action=’null‘ ist dabei ein wichtiger Eintrag, da ansonsten alle weiteren Aktionen ausgeführt werden würden.
Ruft man nun im Browser den Link …/main.php?action=nav_meinMenue auf wird als Rückgabe „hallo“ ausgegeben.
Erweiterung des Stylesheets
Die Dateien ‚ext_scss.inc‘ und ‚ext_scssv.inc‘ werden so wie sie sind (als Textdatei) eingefügt und zu css kompiliert. Die ‚ext_css.inc‘ wird als php Datei interpretiert und ausgeführt, und alles was am Ende in die Variable $buf geschrieben wird, wird an die css Datei hinten angehängt. Um die Erweiterung anzuwenden muss das Farbschema manuell neu generiert werden.
Beispiel:
ext_css.inc
<?php
$buf = ".lmbGtabmenuIcon-11{
background-color: red;
}";