a35- Plattformunabhängige Browser-Oberfläche für allegro-Datenbanken

- Technisches Konzept: -


a35 bietet einen Kernbestand von allgemeinen und universellen JavaScript- und PHP-Funktionen, die unverändert für jede Datenbank zum Einsatz kommen können. Spezifische Einstellungen werden in der Datei ajax4ini.php vorgenommen (von phpac übernommen). Einige wenige Export-Parameterdateien sind nötig; für die A-Konfiguration werden sie bereitgestellt (Dateityp .apr) und können modifiziert werden. Sie gehören aber in den Ordner der Datenbank, nicht zu den HTML-Dateien.

Neue Funktionen bindet man auf standardisierte Weise ein, wobei normalerweise keine Kenntnisse in JavaScript und PHP benötigt werden, FLEX-Jobs aber unentbehrlich sind schließlich kann man nur damit auf die Datenbank zugreifen. Mehr dazu im Anhang.
Auch die FLEX-Jobs für die Zugriffe zur Datenbank können geändert und erweitert werden, d.h. man muß auch die Standards nicht als unabänderlich hinnehmen.

Dateien des Standardumfangs (rot: datenbankspezifisch! Kommentare beachten.)
Zunächst diejenigen, die auf dem Startverzeichnis zu liegen haben (Typen .php und .htm)
a35start.php (bzw. die Varianten für Tablet und Mobil)

  • Datenbankspezifische Einstellungen stehen in a35ini.php
  • kann zugleich als Beispiel einer Startdatei und Vorlage für eigene Gestaltungen dienen
  • enthält die Oberfläche, wie sie beim Start aussehen soll. Das Layout verändert sich während der Laufzeit nicht, sondern wird dynamisch mit Inhalten gefüllt (AJAX-Prinzip)
  • lädt nach dem Start zuerst die Datei a35start.htm, die man beliebig ändern kann, um zu Beginn in den vier Quadranten sinnvolle Dinge erscheinen zu lassen, z.B. auch Bilder.
  • zeigt an Beispielen, wie geeignete Links bzw. Formulare konstruiert sein müssen; diese rufen als action die JavaScript-Funktion reqLoad() bzw. reqForm() auf (in a35.js )
  • Formularelemente, deren Inhalte an einen Job übergeben werden sollen, müssen ein Attribut id der Form id="Vuxy" bzw. id="Vnnn" haben, xy beliebige Zeichen (daraus wird im Job dann die Variable #uxy bzw. das Datenfeld #nnn )
  • Ferner: Mit id="Dname" kann man Inhalte einbauen, die dann im Job in $name landen
  • Oberflächenelemente, in die per FLEX-Job etwas geschrieben werden soll, müssen ein id haben mit einem 3stelligen großbuchstabigen Label, z.B. id="ABC". Die Funktion receivE() erledigt dann das Einfügen des auf _!_ABC folgenden Textes (beliebiges HTML) in dieses Element, d.h. man braucht sich darum nicht einzeln zu kümmern. Siehe unten Bemerkungen zu a35erg.job usw.
  • Die genannten Funktionen übergeben via ajax4.php an acon den Jobnamen mit ?JOB=... sowie die Variablen aus dem Formular mit &Vuxy=... bzw. &Dname=...
  • enthält einige JavaScript-Funktionen, mit denen ein FLEX-Job aufgerufen und dessen Ergebnisse verarbeitet werden können, u.a. receivE(). In diesen Funktionen sind evtl. Eingriffe sinnvoll. Die universellen Funktionen sind ausgelagert in ../scripts/a35.js.
  • Alles CSS ist gesammelt in ../scripts/a35css.php. (!)
  • Alle Jobs liegen in einem Unterverzeichnis, das in ajax4ini.php anzugeben ist (s.u.)

a35erg.job, um ein Beispiel zu nehmen,

  • wird wie jeder .job über das Skript ajax4.php gestartet und steckt auch hinter dem roten Eingabefeld,
  • erhält vom ajax4.php die Variablen: aus Vuxy wird im Job #uxy, aus Dname wird $name d.h. im Job hat man diese Variablen ohne eigenes Zutun zur Verfügung, ferner #uIP mit der IP-Nummer des Browsers und #uID (codiertes Passwort) wenn der Nutzer sich vorher eingeloggt hat.
  • produziert Output mit write- und export-Befehlen). Dieser Output ist eine lange Zeichenfolge, die durch Labels _!_ABC gegliedert ist.
  • Ein solches Label adressiert z.B. ein Element id="ERG" im aufrufenden HTML-Code, also hier a35start.php, dann kommt der auf _!_ERG folgende Text bis zum nächsten Markierung _!_ in das betr. Element (Quadrant 4). Das erledigt die universelle Rückkehrfunktion receivE() in a35start.php. Für eigene Erweiterungen kann man hier Sonderbehandlungen einbauen (im Abschnitt unter switch(label) ).

Weitere wichtige Jobs
a35ind.job zeigt einen Registerauszug in Quadrant 4 (Label _!_REG in a35start.php )
a35get.job besorgt einen Datensatz und zeigt ihn in Quadrant 1 (Label _!_EXT )
(ACHTUNG: Hierin können lokale Anpassungen nötig sein für die Präsentation, Verlinkung z.B. zum WorldCat, Google Booksearch u.a.) Eingebaut ist auch, daß der angezeigte Satz zum Editieren oder als Kopie für einen neuen Satz bereitgestellt werden kann, oder auch zum Löschen. Alles unter Voraussetzung der Schreibberechtigung, s. a35id.job)
Unter dem Label _!_INT kann dieser Job zusätzlich eine andere Darstellung des Datensatzes liefern, normalerweise die interne, kategorisierte Form, die dann mit F5 im Quadranten 1 sichtbar wird.
a35admin.htm Ausbaufähiges Menü mit Admin-Funktionen, zum Aufruf einiger der folgenden:
a35id.job Login etc. (alle Funktionen, gestartet über a35admin.htm )
a35gre.job Globale Ersetzungen (analog zu a99, aber als Job für acon eingerichtet)
presto.job Aktuellen Datensatz zur Bearbeitung bereitstellen, Internformat
form1.job denselben Satz in einem Formular bereitstellen (nur als Beispiel)
prsave.job Speicherung des bearbeiteten Satzes (gilt für jede solche Bearbeitungsform)
a35del.job den aktuellen Satz aus der Datenbank löschen
a35org.job Index erneuern etc. ,wie a99 (Eingeben: h a35org.htm )
a35par.job Eine Parameterdatei auswählen, bearbeiten und zurückspeichern
a35bat.job Eine Batchdatei ausführen lassen (Eingeben: h a35bat.txt )
a35sperr.job Den aktuellen Satz oder die Satztabelle sperren
und nach und nach werden weitere Jobdateien erscheinen.
a35.js liegt in ../scripts

  • enthält die universellen JavaScript-Funktionen, die man in jeder HTML5-Datei braucht. Eingriffe sind nicht nötig:
  • cReqObj() : Ein "request object" anlegen (für die Ajax-Technik)
  • reqLoad() : Aus einem Hyperlink einen Satz laden
  • reqRes() : Eine Suchanfrage ausführen lassen
  • reqInd() : Einen Registerabschnitt anzeigen lassen
  • reqForm() : Aus einem Formular einen Job starten (s. a35start.php : <form id= )
    (entnimmt alle V- und D-Variablen des Formulars und liefert sie an den Job)

jquery-min.js notwendige JavaScript-Funktionen, liegt auch in ../scripts
a35css.php liegt auch in ../scripts und enthält die CSS-Formatanweisungen
ajax4.php + ajax4ini.php

  • ist ein universelles Skript, das nicht selber etwas ausgibt.
  • Es startet den Job, z.B. a35get.job, dessen Name ihm mit ?JOB= übergeben wird, und
  • reicht die Variablen Vuxy / Dname an diesen Job weiter. Sie kommen im Job als #uxy bzw. $name an.
  • Was der Job mit write- und export-Befehlen ausgibt, sendet nach seinem Ende ajax4.php als Ganzes weiter an den Browser, d.h. nur der Job produziert den Output.
  • In dieses Skript braucht man nicht einzugreifen. Nur in ajax4ini.php sind einige Angaben zur Datenbank nötig (dieselben wie bei PHPAC in av_ini.php).

Die Jobdateien können in einem Unterordner des HTML-Ordners der Datenbank liegen. Dessen Name muß ebenfalls in ajax4.ini stehen, z.B.
$Jobdir="abcjobs/"; sonst werden die Jobdateien direkt im HTML-Ordner gesucht. Nachteil: dort wären sie von außen sichtbar. Um sie gegen direkten Lesezugriff zu sichern, richtet man eine .htaccess mit entspr. Inhalt im $Jobdir-Ordner ein, desgl. im ../scripts-Ordner.

ein Kapitel zurück zurück zum Inhaltsverzeichnis ein Kapitel vor


[i] zuletzt aktualisiert:
Email: ub@tu-bs.de