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