2013-11-22
allegro-B (a35) Dateien

Die für a35 notwendigen Dateien verteilen sich auf zwei Bereiche, die auch auf zwei verschiedenen Servern liegen können.
Hinweis: Es werden keine anderen Hilfsmittel gebraucht, wie etwa ein SQL-Server oder ein XML-Parser!

*****************
Auf dem Webserver           (Hinweis: Die Datenbanken selbst liegen auf dem  Datenserver, s.u.)
*****************

Ordner
======
z.B. Homepage = c:\xampp\htdocs  oder  /opt/lampp/htdocs
     Darunter folgende Ordner zu den Datenbanken:
WebDir:       c:\xampp\htdocs\db  oder  /opt/lampp/htdocs/db

Scripts:      WebDir/scripts; darunter  
              Hier liegen allgemeingültige .js und .css
              und der Unterordner  
./jobs  f.d. allg. Jobs

Datenbanken:  für jede Datenbank ein eigener Ordner mit den
              datenbankspezifischen Scriptdateien, vorwiegend .php
              z.B. WebDir/katalog, und darunter jeweils ein Unterordner

                   WebDir/katalog/$Jobdir  f.spezif. Jobs (s. ajax3ini.php)
                   ($Jobdir wird gesetzt in  ajax3ini.php)


Anm.: Dateinamen mit _ sind veraltet und werden nicht mehr verwendet.
      Konsequent nur Kleinbuchstaben und -
Achtung Anwender: schon vorhandene Dateien  a35_head_*  umbenennen!
            Dann nicht die mitgelieferten verwenden oder diese ändern)
            Andere Namen mit _ löschen.


Datenbankspezifische Dateien 
============================
    z.B. c:\xampp\htdocs\db\opac  oder  /opt/lampp/htdocs/db/opac

Außer den Einstellungen kann man zuerst alle so übernehmen!

Startseiten   [lokale Anpassungen möglich]
-----------
(a35-*-menu.php  und  a35-*-cont.php  sowie -head-* ausgegliedert)
a35-pc.php       Regular browser (PC):  4 "Quadranten"
a35-tab.php      Tablet: Tabs statt Quadr., Menü als Accordion
a35-app.php      SmartPhone: Accordion statt Quadr., ohne Menü


Die Startseiten laden folgende Includes und Einstellungen:

Includes  [Aussehen und Funktionsumfang!]
--------  (* = pc, tab, app)
a35-head-*.php   Header (wahlweise Graphik oder Text)
        (* = pc1, pc2, tab1, tab2, app1, app2, Auswahl in a35ini.php
             zu den Versionen mit 1 gehören eigene Graphikdateien)
a35-*-menu.php   Menu (nicht f. SmartPhone)
a35-*-cont.php   Content: Alle sichtbaren Elemente


Einstellungen   [unbedingt lokal anpassen]
-------------
a35ini.php       Einstellungen f.d. Präsentation der Datenbank
                   Titelzeile, Name der Header-Datei (a35-head-...)
                   Liste der anzubietenden Register
                   Globale js-Variablen
ajax3ini.php     Einstellungen f.d. Verkehr mit der Datenbank
                   z.B.  $Jobdir  f.d. datenbankspezifischen Jobs
                 Hier auch Adresse und Port des Datenbankservers


Hilfsscript      zur Ausführung von Jobs
-----------
ajax3.php        Asynchrone Kommunikation mit avanti (AJAX-Methode)

Die vorgenannten Dateien können alle spezifisch modifiziert werden
für die jeweilige Datenbank. Sie müssen daher als Kopien in jedem
Ordner  WebDir/xyz  liegen


Datenbankunabhängig
===================

Die folgenden Dateien funktionieren für alle Datenbanken und liegen
im Ordner WebDir/scripts
    z.B. c:\xampp\htdocs\db\scripts  oder  /opt/lampp/htdocs/db/scripts
Im Einzelfall kann man eine abweichende Variante einer Datei machen
und diese in den Jobs-Ordner der Datenbank legen, sie wird dann der
allgemeinen Version vorgezogen.


Jobs
----

WebDir/scripts/jobs/*.job


JavaScript
----------
a35.js           Allgemeines. Wichtigste Funktion:
                   receivE() verarbeitet Job-Ergebnisse

WebDir/scripts/jquery-min.js   :  jQuery Grundfunktionen 1.7.2
WebDir/scripts/jquery-ui.js    :  UI-Funktionen 1.10.3, 2013-05-03

(Von jQuery kann man auch neuere Versionen nehmen, es wird nicht
viel davon gebraucht.)




CSS
---
WebDir/scripts/a35css.php      : speziell f. a35, z.B. das Pulldown-Menü
WebDir/scripts/jquery-ui.css   : f. jQuery 1.10.1, 2013-02-15


*******************
Auf dem Datenserver
*******************
Dieser kann ein anderer Computer an einem anderen Standort sein.
Adresse und Port in  ajax3ini.php
Hier liegen allegro-Programme und die Datenbanken des Anwenders.



Programmdateien : Nur  avanti.con  ist zu ändern
===============

Sie liegen in einem eigenen Ordner ProgDir,
z.B.  c:\allegro  bzw.  /var/allegro
Minimum, wenn man NUR a35 fahren will:

avanti.exe   bzw.  avanti  : Kommunikation mit Webserver, startet acon:
acon.exe  bzw.  acon       : erledigt Jobs
uifsger     :  Meldungstexte für beide Programme

avanti.con  :  Verzeichnis der Datenbanken und ihrer relevanten
               Eigenschaften, z.B. Ordnername und Datenbankname
               Für jede bereitzustellende Datenbank ein Eintrag!

Man startet  avanti.exe als Dienst bzw.  avanti  als Dämon.


Datenbankdateien, Konfiguration und Parameterdateien
====================================================
Diese Dateien liegen im Datenbankordner DbDir, und der muß sich auf demselben
Server befinden wie das ProgDir.

Man legt Datenbanken unterhalb eines gemeinsamen Verzeichnisses an,
z.B.  F:\db  oder  /usr/db.
Dort hat man also z.B. einen Ordner  f:\db\katalog bzw. /usr/db/katalog

Die "Konfiguration" ist eine Datei vom Typ .cfg, der Standard ist  $a.cfg.
Der erste Namensbuchstabe, hier a, kehrt wieder in den Typbezeichnungen
der Parameterdateien, z.B.  e-unihtm.apr  oder  d-khtm.apr oder  ad-utd.apt.
Eine besondere Parameterdatei mit dem Typ .api  nennt sich Indexparameterdatei
und enthält die Vorschrift, wie aus den Datensätzen die Registereinträge
zu bilden sind. Jede Datenbank braucht einen Kurznamen mit höchstens 4
Buchstaben. Der Standard ist "cat", und die Indexparameterdatei heißt
dann cat.api, (das a, Sie erinnern sich, kommt von $a.cfg).

Folgende Dateien müssen im Datenordner liegen:
(hier die Namen der Standarddateien)

Eigentliche Datenbankdateien, nur diese müssen auf DbDir liegen:
cat_n.ald  (n=1,...,maximal 255)   Datendateien
cat.tbl    Satztabelle (Adressen der Datensätze in den Datendateien
cat.adx    Index (enth. bis zu 11 alph. Register)
cat.a?x  (? = a-c, e-z)   optional weitere Indexdateien, z.B. cat.aex
cat.stl    Kurztiteldatei f. a99
cat.res    Restriktionendatei, z.B. Satztyp und Erscheinungsjahr

Alle weiteren können auch auf dem ProgDir liegen. Jede davon wird aber
zuerst auf dem DbDir gesucht und, wenn gefunden, von dort genommen.

$a.cfg      Konfiguration [bzw. andere .cfg] (darin die Feldbezeichnungen)
a.cfl       Liste der Unterfeldbezeichnungen, optional (f. cfga.job)
cat.api     Indexparameter, darin die symbolischen Namen der Register (ALL, PER, ...)
i.apt       Tabelle zur Umcodierung der Sonderzeichen f.d. Index
o.apt       Umcodierung zwischen  Interncode und Windows-Code f. a99
swl1.apr    Stoppwortliste
ucodes.apt  Tabelle  UTF-8 -> Interncode der Datenbank
   (die roten Dateien sind auch bei Verwendung von  $a.cfg  u.U. den eigenen Wünschen anzupassen)
d-khtm.apr    Anzeigeparameter. Angabe des Namens in ajax3ini.php ($Dispar)
d-k.apt         gehört dazu
a35erg.apr    Zur Erzeugung der Kurztitel-Ergebnisliste
a35fts.apr    dass. f.d. Volltextsuche
e-unihtm.apr  Zur Umwandlung von Daten in HTML-Codierung
e-unicod.apr   gleichfalls, geringe Unterschiede
utf.apr         nur f. a35okont.job, Ausleihkonto
ad-utf.apt    Tabelle  interner Code -> UTF-8
d-htm.apt     HTML-Codierungen f. bestimmte Zwecke