DOCLimbasSOAP

Aus Limbas Wiki

Wechseln zu: Navigation, Suche

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


Inhaltsverzeichnis

[bearbeiten] Installation

Die SOAP Funktionalität muß bei beiden Kommunikationspartnern von PHP zu Verfügung stehen. (--with-soap) Für LIMBAS stehen vorbereitete Funktionen für den Client und den Server bereit. Die Serverfunktionen sind unter extra/soap/server.php zu finden. Für den Client kann man das komplette "public" Verzeichnis als Vorlage verwenden. Alle Grundeinstellungen sind dort unter lib/config.lib anpassbar.

[bearbeiten] Konfiguration

# Autentifikation
$LIM["username"] = "limbasusername";
$LIM["pass"] = "pass";

// absolute path to LIMBAS
$LIM["lmpath"] = "/usr/local/httpd/htdocs/limbas_2/dependent";  

// Serveraddress to Limbas
$LIM["lim_server"] = "192.168.10.20"; 

// Server URL to LIMBAS
$LIM["lim_urlPath"] = "/limbas_2/dependent"; 
$LIM["lim_url"] = "http://" . $LIM["lim_server"] . "/" . $LIM["lim_urlPath"];

// path to cookie file
$LIM["cookie_path"] = "/tmp/lmbsscookie"; 

// session name
$LIM["session_name"] = "limbas_".$LIM["username"];

// soap activ / inactiv
$LIM["use_soap"] = 1; 

// cookie activ / inactiv
$LIM["use_cookie"] = 0; 

// name of cacheCookie
$LIM["cookieCache_name"] = "cacheCookie";

// absolute path to public root
$LIM["cache_home"] = "/usr/local/limbas/htdocs/limbas_2/public/";

// relative path to file cache
$LIM["cacheFolder"] = "cache/";

// relative path to data cache
$LIM["dbFolder"] = "db"; 

// the number of the ram disk (should be mounted manually by admin					
$LIM["ramDisk"] = 15; 

// if true file are cached and download fronm cache when available								
$LIM["cacheFile"] = false; 

// if true file are cached and download fronm cache when available				
$LIM["cacheQuery"] = false; 	

// Max size in MB for the cache					
$LIM["cacheSizeLimit"] = 200; 
		
// seconds without checking if a new version of the file exists				
$LIM["cacheMinExpiration"] =  48 * 60 * 60; 
	
// %		
$LIM["cacheToFree"] = 20; 

// for md5 encryption of url							
$LIM["key"] = "PASWORD";							

define("DEBUG",false);

[bearbeiten] Funktionen

[bearbeiten] call_client

call_client - initialisiert die SOAP-Abfrage
Diese Funktion führt eine Anfrage auf den SOAP Server aus und gibt ein Ergebnis Array zurück

mixed call_client  ( Array $lmpar)

[bearbeiten] cache_call_client

cache_call_client - initialisiert die SOAP-Abfrage und cached deren Inhalt
Diese Funktion führt eine Anfrage auf den SOAP Server aus und gibt ein Ergebnis Array zurück

mixed cache_call_client  ( Array $lmpar)

[bearbeiten] Parameter Definition von $lmpar

Das Array $lmpar definiert die Parameter-Eigenschaften.
Durch [$lmpar[0]] .. [$lmpar[1]] können mit nur einem SOAP Aufruf mehrere Anfragen auf einmal übergeben werden.
Eine einzige Anfrage wird durch [$lmpar[0]] definiert.


[bearbeiten] Allgemein

nutze reale Tabellen und Feldnamen anstatt IDs (gilt Global)

["use_noids"] = boolean $use_noids

Parameter für Rückgabe von Umgebungsvariablen aus Limbas.

["getvars"] = array(['fresult']['gtab']['gfield']['umgvar']);

Parameter für auzuführende Aktion.

["action"] = ['gtab_erg']['explorer_main'];

$TABID der gewünschten Tabelle

["gtabid"] = number $TABID;

gewünschte Felder der Tabelle $TABID; Ohne Angabe werden alle Felder ausgelesen.

[$TABID]["showfields"] = array($FIELDID,$FIELDID...)

Parameter für Suchkriterien (siehe "Suchen")

[$TABID]["gsr"] = array($gsr)

zeige Anzahl Treffer; Ohne Angabe wird die Limbas Defaulteinstellung übernommen.

[$TABID]["count"] = number $count

zeige Seite; Ohne Angabe wird die erste seite angezeigt.

[$TABID]["res_next"] = number $page

Sortierung; Ohne Angabe wird nach der Limbas Defaulteinstellung sortiert.

["order"] = mixed [$FIELDID",ASC"]

Limitierung des Feldinhalts der Felder des Typs Text oder Long
Lange Inhalte können so schon serverseitig begrenzt werden

[$TABID]["fieldlimit"][$FIELDID] = number $digits

Thumbnail Generierung von Bildern der Felder des Typs upload Bilder können so schon serverseitig verkleinert werden

[$TABID]["thumbsize"][$FIELDID] = mixed [$width] [$width x $height] [$width x] [x $height]

[bearbeiten] Beispiel

Dieses Beispiel gibt ein Ergebniss-Array der Tabelle mit der ID 1 und den Feldern der IDs [1,2,3,4,5,6] zurück.
Es wird die Seite [2] angezeigt mit max. 15 Treffern sortiert nach Feld ID 1.

$lmpar["use_noids"] = 0;
$lmpar[0]["getvars"] = array('fresult');
$lmpar[0]["action"] = "gtab_erg";
$lmpar[0]["gtabid"] = "1";
$lmpar[0]["order"] = "1";
$lmpar[0][1]["showfields"] = array(1,2,3,4,5,6);
$lmpar[0][1]["res_next"] = 2;
$lmpar[0][1]["count"] = 15;

[bearbeiten] Suchen

Suchkriterien werden über den Parameter ["gsr"] definiert.
Es können max. so viele und oder Suchen über ein Feld gelegt werden wie in der $umgvar["searchcount"] angegeben.

["gsr"][$TABID][$FIELDID][$listid] = mixed $seachrvalue
$gsrres = $gsr[$gtabid][$key][$key1];			# searchvalue
$gsstxt = $gsr[$gtabid][$key]["txt"][$key1];		# text sensitive		
$gssnum = $gsr[$gtabid][$key]["num"][$key1];		# numeric
$gsscs = $gsr[$gtabid][$key]["cs"][$key1];		# case sensitive
$gsandor = $gsr[$gtabid][$key]["andor"][$key1]; 	# and or
$gsstring = $gsr[$gtabid][$key]["string"][$key1];	# find all words
$gsneg = $gsr[$gtabid][$key]["neg"][$key1];		# negotiation

[bearbeiten] Beispiel

$gsr[1][2] = ""
$lmpar["use_noids"] = 0;
$lmpar[0]["getvars"] = array('fresult');
$lmpar[0]["action"] = "gtab_erg";
$lmpar[0]["gtabid"] = "1";



[bearbeiten] Verknüpfungen

Das Ergebniss-Array kann um Inhalte Verknüpfter Tabellen ergänzt werden.
Dabei ist $VTABID die Tabellen ID der verknüpften Tabelle. Es können mehrere Tabellen sowie rekursive Unterverknüpfungen angegeben werden. Tabellen mit Verknüpfungen mit sich selbst lösen sich komplett auf. Der Such-Parameter kann auch auf die Verknüpfungstabellen angewendet werden.

[$VTABID]["showfields"] = array($FIELDID,$FIELDID);

[bearbeiten] Beispiel

Dieses Beispiel gibt ein Ergebniss-Array der Tabelle mit der ID 1 und den Feldern der IDs [1,2,3,4,5,6] sowie ein Unter-Array mit dem Ergebnis der Verknüpften Tabelle mit der ID 2 und den Feldern der IDs [1,2,3] zurück.

$lmpar["use_noids"] = 0;
$lmpar[0]["getvars"] = array('fresult');
$lmpar[0]["action"] = "gtab_erg";
$lmpar[0]["gtabid"] = "1";
$lmpar[0][1]["showfields"] = array(1,2,3,4,5,6);
$lmpar[0][2]["showfields"] = array(1,2,3);



[bearbeiten] schreiben

Über die SOAP Schnittstele können ebenfalls Daten geschrieben werden.

[bearbeiten] Datensatz anlegen

["gnup"][$FIELDID] = mixed value
["gtabid"] = numeric $TABID;
["action"] = "gtab_new"

[bearbeiten] Beispiel

ANlegen eimes neuen Datensatzes der Tabelle mit der TabellenID 1 und füllen der Felder mit der FeldID 3 und 4

$lmpar[0]["gnup"][3] = "neuer"
$lmpar[0]["gnup"][4] = "Datensatz"
$lmpar[0]["gtabid"] = 1;
$lmpar[0]["action"] = "gtab_new";

für weitere Aktionen steht der Rückgabewert "new_x" (new_0) auf dem Server zu Verfügung.

[bearbeiten] Datensatz löschen/archivieren

["gtabid"] = numeric $TABID;
["action"] = "gtab_hide" | "gtab_delete"
["id"] = numeric $DATAID

[bearbeiten] Beispiel

Dieses Beisoiel löscht den Dtaensatz mit der ID 25 der Tabelle mit der TabellenID 1

$lmpar[0]["gtabid"] = 1;
$lmpar[0]["action"] = "gtab_delete";
$lmpar[0]["id"] = 25;

[bearbeiten] Datensatz bearbeiten

["gup"]["$TABID,$FIELDID,$DATID] = mixed value
["gtabid"] = numeric $TABID;
["action"] = "gtab_change"

[bearbeiten] Beispiel

Hier werden 3 Felder mit der FeldID 3,4,5 der Tabelle mit der TabellenID 1 und der DatensatzID 25 geändert.

$lmpar[0]["gup"][1,3,25] = "hallo";
$lmpar[0]["gup"][1,4,25] = "ich";
$lmpar[0]["gup"][1,5,25] = "verstehs";
$lmpar[0]["gtabid"] = 1;
$lmpar[0]["action"] = "gtab_change";
Persönliche Werkzeuge