Menus-Erweiterungen
Aus Limbas Wiki
→ zurück zu LIMBAS Admin
Die Menüpunkte von Tabellenformularen oder Listen können mit eigenen Punkten erweitert werden. Die Erweiterungen können mit Hilfe folgender Skript-Erweiterungen eingetragen werden:
- ext_gtab.inc
- ext_gtab_erg.inc
- ext_gtab_change.inc.
Um in LIMBAS einem Tabellenformular oder einer Liste einen Menüpunkt hinzuzufügen, muß
- eine Funktion (mit beliebigem Funktionsnamen) erstellt werden, die
- die folgenden Parameter übergeben bekommt:
- $gtabid: Tabellen-Id der aktuell gezeigten Tabelle
- $formid: Formular-Id des aktuell verwendeten Formulars, im Falle des Standardformulars "null"
- $ID: Datensatz-Id des aktuell verwendeten Datensatzes, nur für Detailansicht (gtab_change) verfügbar
- &$gresult: Zeiger auf Ergebnis der letzten Datenbank-Abfrage (siehe get_gresult())
- die Darstellung des neuen Menüpunktes erledigt.
- festlegt, welche JavaScript-Anweisung(en) oder -Funktion(en) bei Auswahl des neuen Menüpunktes ausgeführt werden soll(en). Dabei können Information mittels versteckter HTML-Formularelemente (hidden) im HTML-Objekt "span id="myExtForms"" an LIMBAS zurückgegeben werden.
- die folgenden Parameter übergeben bekommt:
- Dafür sind die pop_*-Menüfunktionen aus der Datei ./limbas_src/lib/context.lib zu verwenden. Genauere Einstellungen für die Darstellung sowie die JavaScript-Anweisungen/Funktionen sind der verwendeten Funktion als Parameter zu übergeben.
- die erstellte Funktion über die folgende Zuweisung einer Tabelle und einem Menü, in dem der neue Menüpunkt hinzugefügt werden soll, zugewiesen werden:
if(!$gLmbExt[$menuToBeExtended][$gtabid]){
$gLmbExt[$menuToBeExtended][$gtabid] = $functionName;
}
- Dabei entspricht
- $gtabid der Tabellen-Id der Tabelle, für die der Menüpunkt hinzugefügt werden soll
- $menuToBeExtended einem der folgenden Werte, welche das zu erweiternde Menü angeben:
- "menuChangeCInfo" → Menüpunkt wird dem [Datei]→[Info]-Menü der Bearbeitungs- und Detailansicht hinzugefügt
- "menuChangeCContext" → Menüpunkt wird dem [Datei]-Menü der Bearbeitungs- und Detailansicht hinzugefügt
- "menuChangeCDisplay" → Menüpunkt wird dem [Ansicht]-Menü der Bearbeitungs- und Detailansicht hinzugefügt
- "menuChangeCExtras" → Menüpunkt wird dem [Extras]-Menü der Bearbeitungs- und Detailansicht hinzugefügt
- "menuChangeCReport" → Menüpunkt wird dem [Extras]→[Berichte]-Menü der Bearbeitungs- und Detailansicht hinzugefügt
- "menuChangeItems" → Menüpunkt wird dem Hauptmenü der Bearbeitungs- und Detailansicht hinzugefügt
- "menuChangeIcons" → Menüpunkt wird der Symbolleiste der Bearbeitungs- und Detailansicht hinzugefügt
- "menuListCInfo" → Menüpunkt wird im Kontextmenü der Listenansicht dem [Info]-Menü hinzugefügt
- "menuListCContext" → Menüpunkt wird dem Kontextmenü der Listenansicht hinzugefügt
- "menuListCDisplay" → Menüpunkt wird dem [Ansicht]-Menü der Listenansicht hinzugefügt
- "menuListCExtras" → Menüpunkt wird dem [Extras]-Menü der Listenansicht hinzugefügt
- "menuListCReport" → Menüpunkt wird dem [Extras]→[Berichte]-Menü der Listenansicht hinzugefügt
- $functionName der Funktion für die Darstellung des neuen Menüpunktes
Beispiel:
function MyExt_MenuExtras($gtabid,$formid,&$gresult)
$toDoOnClick = "document.getElementById('myExtForms').innerHTML = '<input type=hidden id=myExtForms_testme name=myExtForms[test]>';\
document.getElementById('myExtForms_testme').value='".$gresult[$gtabid][2][0]."';send_form(1);\"";
pop_line();
pop_menu2("menuItemText",null,null,null,"cursor:pointer", $toDoOnClick);
}
if(!$gLmbExt["menuListCExtras"][3]){
$gLmbExt["menuListCExtras"][3] = "MyExt_MenuExtras";
}
if($myExtForms["test"]){
lmb_alert($myExtForms["test"]);
}
Das Beispiel erzeugt einen neuen Menüpunkt im Menü "Extras" der Listenansicht für die Tabelle mit der ID "3", welcher das Abfrage-Ergebnis des Feldes mit der ID 2 an das Skript (LIMBAS) zurücksendet. LIMBAS zeigt darauf das Ergebnis in einem eigenem Dialog-Fenster an.
