Basis – API für ein Intranet mit authentifizierten Usern USER Das Modul USER organisiert alle nutzerrelevanten Daten inkl. des Backends zu einem Authentification-Tree, wie z.B. LDAP. Diese Funktionen sind nicht public, können also nur von internen Funktionen benutzt werden, um z.b. zu prüfen, ob ein Benutzer Berechtigung für eine bestimmte Funktion besitzt. USER_AUTH Die Methode USER_AUTH erwartet username und passwort und liefert die UNIQUE_USER_ID zurück INT USER_AUTH( username, password ) Die Methode USER_AUTH_DATA liefert alle Authentifizierungsdaten zu einem Benutzer STRUCT USER_AUTH_DATA( username, password ) Authentifizierungsdaten sind: USER_UNIQUE_ID USER_ROLE_ID USER_ROOT USER_SEX USER_LANGUAGE USER_INTERNAL_EMAIL USER_PRIVATE_EMAIL USER_STREET USER_ZIP USER_CITY USER_PHONE USER_MOBILE_PHONE USER_FAX USER_ICQ ALLE WEITEREN FUNKTIONEN UND METHODEN ERWATEN ALS ERSTE ZWEI PARAMETER ENTWEDER EINEN USERNAMEN UND PASSWORT ODER SESS UND EINE SESSION ID. USER_GROUP Das Modul USER_GROUP liefert Gruppenbezogene Benutzerdaten. Die Methode USER_GROUP_BYUSER liefert alle Gruppen in denen die übergebene User-ID Mitglied ist. ARRAY USER_GROUP_BYUSER( USER_ID ) Die Methode USER_GROUP_GETGROUPS liefert einen Hash mit ID und Namen aller Gruppen HASH USER_GROUP_GETGROUPS Die Methode USER_GROUP_NEW legt eine neue Gruppe an und liefert die ID zurück erwartet einen hash mit den gruppendaten. Ist der zurückgegebene wert 0 (false) ist das anlegen der gruppe gespeichert. INT USER_GROUP_NEW( KEYS:name,descr,usw, VALUES:intrazopista,lslj,sfa ) Folgende werte sind zwingend vorgeschrieben: Name Descr (Beschreibung) Owner Admin Contact Die Methode USER_GROUP_INFORMATION liefert alle Daten einer Gruppe STRUCT USER_GROUP_INFORMATION( group_id ) USER_SESS Das Modul USER_SESS verwaltet die public – Daten eines Benutzers, bietet also zum einen eine Schnittstelle zum USER Modul, zum anderen einen Speicherplatz für Userbezogene Daten beliebiger Anwendungen. Die Methode USER_SESS_ID liefert die aktuelle Session – ID CHAR USER_SESS_ID Die Methode USER_SESS_DATA liefert alle Elemente aus der aktuellen Session STRUCT USER_SESS_DATA Diese Elemente sind alle öffentlichen Elemente aus dem Authentifizierungsbaum sowei beliebige von Applikationen gespeicherte Datenstrukturen. Die Methode USER_SESS_PUT speichert beliebige Datenstrukturen in der Session und liefert true oder false zurück INT USER_SESS_PUT( \%data ) DB Die Klasse DB verwaltet alle Datenbankzugriffe cached und verifiziert sie. Dabei sind zwei verschiedene Datenbanken zu unterscheiden. Einmal die Systemdatenbank (MySQL oder ZDB) zu anderen irgendeine beliebige Datenbank. Die Methode DB_SYS_QUERY erwartet einen SQL – QUERY und liefert eine Referenz (Statementhandle) auf sein Ergebnis zurück. HANDLE DB_SYS_QUERY( „SELECT....“ ) Die Methode DB_FETCH_ARRAY erwartet ein Statementhandle und gibt einen Datensatz als Array zurück. Im Schleifenkontext wird dann ein Datensatz nach dem anderen ausgegeben. ARRAY DB_FETCH_ARRAY( HANDLE ) Die Methode DB_FETCH_HASH erwartet ein Statementhandle und gibt einen Datensatz als Hash zurück. Im Schleifenkontext wird dann ein Datensatz nach dem anderen zurückgeliefert. HASH DB_FETCH_HASH Die Methode DB_EXT_CONNECT erwartet 4 Parameter: Datenbankhost, Username, Passwort, Datenbankname und verbindet mit der Datenbank. Liefert bei gelingen ein Hanlde auf die Datenbank bei Mißerfolg false. INT | HANDLE DB_EXT_CONNECT( HOST, USER, PASS, NAME ) Die Methode DB_EXT_CLOSE erwartet ein Datenbankhandle und schließt die Verbindung INT DB_EXT_CLOSE( HANDLE ) CONVERT Das Modul CONVERT stellt Standard-Convertierungsschnittstellen zur Verfügung. Die Methode CONVERT_CSV2EXCEL wandelt CSV Datenquellen in Excel-Files und erwartet 2 Parameter: Pfad zum CSV – File und Pfad zum zu erstellenden Excel-File, liefert, je nach Gelingen true oder false. INT CONVERT_CSV2EXCEL( „/data/csv/file.csv“, „/data/excel/file.xls“ ) Alle weiteren CONVERT – Methoden funktionieren entsprechend: CONVERT_WORD2PDF CONVERT_EXCEL2CSV CONVERT_PDF2WORD CONVERT_HTML2PDF CONVERT_PDF2HTML CONVERT_XML2VCARD CONVERT_VCARD2XML Usw. MEDIA Das Modul MEDIA verwaltet Mediaobjekte für jede Application Die Methode MEDIA_NEW legt ein neues Mediaobjekt an, liefert bei Gelingen die id des media - objektes sonst false und erwartet folgende Parameter mediapath, mediatitle, mediadescr INT MEDIA_NEW( mediapath, mediatitle, mediadescr ) Die Methode MEDIA_UPLOAD erwartet einen Verweis auf ein Server – Environment – Objekt, sowie ein Ziel, liefert bei Gelingen die id des media – objektes, sonst false zurück. Included also MEDIA_NEW funktioniert auch sonst wie MEDIA_NEW INT MEDIA_UPLOAD( ENV, mediapath, mediatitle, mediadescr ) Das Mediaobjekt arbeitet intern mit einem Zeigerzähler, der die Verwendung in der media2obj – table beinhaltet Die Methode MEDIA_CLOSE2OBJ legt eine Media – Objekt – Referenz an, erwartet eine Media- und eine Objekt – ID, sowie einen Objekttyp. Der Objekttyp beinhaltet das Objektziel. INT MEDIA_CLOSE2OBJ( media_id, obj_id, media_typ ) Die Methode MEDIA_DELETE löst eine Verbindung von einem Mediaobjekt zu einem Objekt, liefert true / false bei Erfolg / Mißerfolg. INT MEDIA_DELETE( media_id, obj_id, objtyp ) Die Methode MEDIA_KILL löscht eine Mediaobjekt und löst alle Verbindungen zu Objekten INT MEDIA_KILL( media_id ) ENVIRONMENT Das Modul ENVIRONMENT stellt das Server-Environment automatisch zur Verfügung ENV::VARIABLE API für eine Kalenderapplikation Eine Kalenderapplikation wird in zwei Basis-Elemente unterteilt: - ZEIT TERMIN Alle weiteren Module können extern organisiert werden. TIME Das Basismodul für den Kalender ist TIME. Die Methode TIME_NOW liefert die aktuelle Zeit als UNIX Timestamp UNIXTIME TIME_NOW Die Methode TIME_DE erwartet einen Unix-Timestamp und liefert ein deutsches Datumsformat zurück DATE_DE TIME_DE( unix_timestamp ) Entsprechend für US, EN, JP, FR Die Methode TIME_LOCALTIME erwartet einen Unix-Timestamp und liefert folgendes Array: Sec, Min, Hour, Day, Month, Year, DayOfMonth, WeekOfMonth, WeekOfYear, DayOfYear, Summertime ARRAY TIME_LOCALTIME( Unix_Timestamp ) DATE Termine werden mit dem Modul DATE verwaltet Die Methode DATE_NEW erzeugt einen neuen Termin. Zwingende Parameter: Title, Start, End, Owner INT DATE_NEW( title, start, end, owner ) Weitere Parameter: ARRAY::INTERVAL Eine Liste mit beliebigen timestamps DATEGROUP Eine Termin – Gruppen – ID zum zusammenfassen verschiedene Termine zu einer einzigen Gruppe DATEUSERGROUP Wenn ein Termin zu einer Gruppe zuzuordnen ist. DESCR Ein beliebiger Text