Menus-Erweiterungen

Aus Limbas Wiki

Wechseln zu: Navigation, Suche

<-- zurück zu Admin-Dokumentation / <-- zurück zur Hauptseite


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.
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
  • "menuCalExtras" → Menüpunkt wird dem [Extras]-Menü der Kalenderansicht hinzugefügt
  • "menuDMSExtras" → Menüpunkt wird dem [Extras]-Menü des Filemanagers hinzugefügt
  • $functionName der Funktion für die Darstellung des neuen Menüpunktes


Example:
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.