DOCLimbasSOAP
Aus Limbas Wiki
<-- 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";


