UB BRAUNSCHWEIG
Symbolfoto
  • Impressum
  • Startseite
  • allegro-C von A-Z
  • Druckversion


a30 - Plattformunabhängiges Programm zur Nutzung von allegro-Datenbanken im Netz auf der Basis des Systems "Adobe Flex"


1. Installation: Was braucht man, wohin damit?
Wie gesagt: Nicht auf Endnutzer-PCs, die brauchen nur einen Browser! Sondern auf dem Webserver, auf dem man seine Homepage eingerichtet hat. (Sollte der Browser des Endnutzers noch nicht für das Anzeigen von Flash-Dateien (.swf) ausgerüstet sein, wird dies zumeist automatisch durch ein Download erledigt.)


Voraussetzungen
Eine avanti-Installation für den Zugang zu den Datenbanken liegt vor und funktioniert (Kurzfassung s. Anhang 2).
Die verschiedenen Ordner im Download-Paket sind mit README-Dateien ausgestattet.

Wenn man eine allegro-Datenbank mit avanti "ins Netz gestellt" hat, dann arbeiten immer zwei Serversysteme A und B zusammen: (allerdings können beide physisch auf demselben Rechner laufen)


A.  Webserver: Ordner für HTML-Dokumente und Skripte
Man hat im Dokumentenordner des Web-Servers ein oder mehrere parallele Unterverzeichnisse, in denen die Skripte und HTML-Dateien zu je einer allegro-Datenbank liegen. In einem sehr einfachen Fall kann das so aussehen, daß an dem Dokumentenordner
   c:\xampp\htdocs
zwei Ordner für zwei Datenbanken hängen, z.B.
   c:\xampp\htdocs\example
   c:\xampp\htdocs\katalog

In diesen Ordnern liegen jeweils z.B. die php-Skripte von PHPAC und weitere zugehörige Dateien. (Die Namen example und katalog sind unabhängig von den realen und symbolischen Namen der Datenbanken. Sie werden nur verwendet in der Datei  angebot.txt, s. B.2.1)
Das PHPAC-Dateienpaket wird aber NICHT gebraucht, wenn man nur a30 anwendet! Dazu siehe B.2.2
Wenn man PHPAC (zusätzlich) anwendet, liegt in jedem
dieser Verzeichnisse eine Datei  av_ini.php. Darin steht, was zur Verbindung mit dem avanti-Server nötig ist, und das könnten z.B. im Verzeichnis  example  diese Zeilen sein:

$Server = "www.uni-golfsburg.de";  // Name des Datenbankservers im Internet
                                     d.h. dort liegen die Datenbanken UND läuft der avanti-Server
   oder   $Server = "localhost";
           falls avanti und Datenbank auf demselben Rechner liegen wie der Webserver
$Port = "4949";  // Per Firewall muß diese Nummer auf dem Datenbankserver nach außen freigegeben sein zum Lesen und, falls erwünscht, Schreiben
$DB="demo";      // dies ist der logische Name der Datenbank, der reale (hier "cat") ist dem Webserver unbekannt
$ID="opac/OPAC"; // oder andere Kennung/Paßwort-Kombination, die in der Datei avanti.con registriert ist, siehe B.1

B.1 Datenbankserver: Die avanti-Software   (Mehr dazu im Anhang 2)
An dem Ort (z.B. c:\allegro), wo der avanti-Server läuft, d.h. wo das Programm avanti  bzw. avanti.exe liegt und gestartet wurde, gibt es auch die Datei  avanti.con. In dieser steht dann ein Abschnitt für die Datenbank mit dem logischen Namen "demo":
Wenn Webserver (A) und avanti-Server (B) auf zwei verschiedenen Rechnern liegen, verbinden sie sich über das Netz mit dem Protokoll TCP/IP. Der unter A. angegebene Port muß freigegeben sein.


[demo]      // das ist der symbolische Name der Datenbank, der in Skripten verwendet wird
directory = c:\allegro\demo2
access = 3
konfiguration = a
indexparameter = cat       // das ist der reale Name der Datenbank
opac = OPAC:0
master = AVANTI:3

Hinweis: access meint die Berechtigung das Programms acon, welches die Jobs ausführt. Steht hier access=0 , so kann auch der Nutzer  master  nicht speichern! Die Kennungen  opac  und  master  können in Skripten verwendet werden, andere erhalten keinen Zugriff auf die logische Datenbank  demo So kann man jederzeit schnell mal eben Schreibzugriffe unterbinden. Änderungen an der Datei werden sofort wirksam, ohne Neustart des Servers.
Jedoch kann man weitere Abschnitte mit anderen logischen Namen anlegen, unter denen für dieselbe physische Datenbank andere Nutzer mit anderen Berechtigungen stehen und ein anderer access-Wert. In den PHP-Skripten tritt nur der logische Name  demo  auf: der steht als $DB in av_ini.php für PHPAC, in a30_ini.php für a30. 

B.2 Datenbankserver: Die Datenbanken
Die Datenbank mit dem logischen Namen  demo  (Beispiel unter B.1) muß physisch auf demselben Rechner liegen wie avanti, und zwar im Ordner
c:\allegro\demo2
(Dieser physische Ordner wird, siehe oben, im Abschnitt  [demo] von avanti.con dem symbolischen Namen  demo  zugeordnet.)

Folgendes ist zu tun, damit a30 genutzt werden kann:


Schritt 1:
An das Web-Verzeichnis  (s. A.) hängt man ein Verzeichnis a30 an, also
   c:\xampp\htdocs\a30

Dort kommen nur 5 Dateien hin:

   a30.swf        Das Programm (Quellcode a30.mxml, siehe Anh. 6)
   a30.js         Notwendige Funktionen (vor allem Browser-Erkennung)
   index.php      Die Startseite, in die  a30.swf und a30.js eingebettet sind
   angebot.txt    Die Liste der mit a30 anzubietenden Datenbanken
   demo.htm        Startseite, mit der sofort die DemoBank gestartet wird (Variante von index.php)

Nur die letzten 2 sind lokal anzupassen. In "angebot.txt" stehen einfach nur Zeilen der Struktur
example : Demo-Datenbank
wobei 
example das Verzeichnis des Webservers ist, auf dem die Skripte für die Datenbank liegen, s. A.
Vom Browser aus erfolgt dann der Zugriff über  homepage/a30/  und man hat dann als erstes die Wahl zwischen den Datenbanken, die in  angebot.txt  verzeichnet sind.
Hinweis: Die index.php  kann man so aufrufen, daß gleich eine bestimmte Datenbank geöffnet wird: das Beispiel "demo.htm" zeigt, wie es für die DemoBank aussehen sollte. Oder man präpariert sich unterschiedliche Versionen dieser Startdatei. Mehr dazu in Anhang 4. Dabei kann auch JavaScript zum Einsatz kommen und aus der a30.swf heraus genutzt werden.

Schritt 2:
Auf jedes der unter A. genannten Verzeichnisse  c:\xampp\htdocs\example  und  ..\katalog kommen diese Dateien:

      Standard-Skripte; Anpassungen nur in den mit * gekennzeichneten bei Bedarf nötig (Kommentare helfen dabei)

a30_ini.php
 
** Die avanti-Einstellungen für den Zugriff zur Datenbank, [entsprechend  av_ini.php  von PHPAC, s. B.1]
                                d.h. Server, Port, log. Datenbankname, username, Anzeigeparameter, Sortierpunkte f.d. Ergebnislisten, Pfad der JOB-Dateien
a30put.php     Speichern des veränderten oder eines neuen Satzes (die Speicherbuttons rufen dies auf)

a30ajax.php    Universelles Skript zum Starten von Dateien des Typs .job. Die folgenden gehören zum Standard:
a30get.job     Holen und Anzeigen eines Satzes mittels interner Nummer
a30res.job     Suchbefehl ausführen und Erg.Menge holen
a30ind.job    a) Registerabschnitt holen, b) Namen der Register holen (wenn ohne Argument aufgerufen)
a30edp.job    *  Daten zum leichteren Bearbeiten mit Feldbezeichnungen anzeigen (Funktion Edit+)
a30dbi.job     Datenbank-Info anzeigen
a30sim.job   * Auswertung der Eingabe im Befehlsfeld, wenn dort keiner der vorgesehenen Befehle eingegeben wurde.
a30rvw.job   * Erg.Menge in ViewListe verwandeln (Beispiel! zu modifizieren, abhängig von CFG!)
a30for.job   * Formularbearbeitung einschalten (dazu wird Datei a30for.xml gebraucht, s.u.)
a30gri.job    *  Daten für das "Grid" aufbereiten 
                  Direktaufruf in a30:  X a30gri--urN=9999  (Satz 9999 im Grid anzeigen)
a30bar.job    *  Eigenes Menü laden (Beispiel)
_start.job   * wird ausgeführt, wenn die Datenbank über die Auswahlbox gestartet wurde
a30id.job    *  Funktionen zur Authentifizierung des Nutzers (Ein- und Ausloggen, Registrieren, Paßwort ändern)
a30for.xml   * eigene Bearbeitungsformulare, datenbankspezifisch, in XML definiert

a30men.htm      Zwei Beispiele für eigene Menüs mit eingebauten Links vom Typ event:...
a30son.htm      *  Wie man eigene Jobs einbindet, steht in Anhang 3

Nur in die  a30_ini.php  muß man zuerst eingreifen, damit es funktioniert, und zwar dieselben Angaben hineinschreiben, die in der av_ini.php für dieselbe Datenbank stehen (siehe unter A.), zusätzlich eine Angabe  $SORT  für die Sortierpunkte der Kurzliste. Für cat.api sieht diese Angabe so aus:
$SORT="00 Titel---40 Name---51 Jahr---56 Signatur";
Die Zahlen sind die Positionen, auf denen die Elemente der Kurzliste beginnen. Danach werden dann die Sortierbuttons ausgerichtet, die in der Überschriftszeile der Kurzliste erscheinen.

Zur Funktionsweise:
Die Jobdateien und PHP-Skripte (oder, wenn man will, Perl etc.) müssen ihre Antwort in einer bestimmten, mehrteiligen Form anliefern, damit a30 die Ergebnisse in den richtigen Feldern anordnet. Sonst wird der Text einfach nur in das Feld "Info" geworfen. Das besagte mehrteilige Antwortformat ist im Anhang 1 beschrieben.


Das Beispiel  a30rvw.job  für die ViewListe muß man für eine eigene CFG modifizieren. Man erhält damit eine nach eigenem Wunsch angeordnete Kurzliste mit anderen Sortierpunkten. Davon kann man sich auch mehrere Varianten machen, die man zwecks Aufruf in ein Menü einbaut, Beispiel siehe  a30men.htm.
Hinweis: Wenn nur a30 genutzt wird und PHPAC nicht zum Einsatz kommt, werden für eine Datenbank keine weiteren als die genannten Dateien gebraucht (die Namen beginnen alle mit "a30")!

Sollen die Jobs ini einem eigenen Ordner liegen, um gegen Ausspähen geschützt zu sein, fügt man in die a30_ini.php folgende Zeile ein:
$Jobdir="pathname";
wobei das Verzeichnis pathname dem Nutzer zugänglich sein muß, der den Webserver gestartet hat. Dort müssen dann aber alle .job-Dateien liegen, die zur Datenbank gehören. Benutzt wird das nur in a30ajax.php.
Wenn z.B. die PHP-Skripte im Ordner  c:\xampp\htdocs\demo  liegen, und die Jobs darunter
in
 c:\xampp\htdocs\demo\demojobs, dann genügt die relative Angabe
$Jobdir="demojobs/";
Tip: Zur weiteren Absicherung gegen Ausspähung legen Sie in diesen Ordner eine Datei  .htaccess  mit dem Inhalt
Require user xyz

Will man ohne Authentifizierung arbeiten (z.B. im Intranet mit lauter vertrauenswürdigen Personen), dann diesen Befehl einfügen:
$Ident="no";

Sonst tun es die Schreibfunktionen nur, wenn man sich vorher identifiziert hat (s. Sicherheitskonzept).

Schritt 3:
Auf das Datenbankverzeichnis (s. B.2) oder auf das Programmverzeichnis (B.1, wo die Programme  avanti  und  acon  liegen) legt man diese Parameterdateien:

e-unicod.apr    Datenausgabe mit Kategorienummern und Unicode (für Formular und Grid)
e-unihtm.apr    dasselbe, nur mit Abweichungen für <, & und >, damit HTML-Text korrekt erscheint
ad-utf.apt      Codierbefehle f. Unicode (ASCII -> UTF-8, ggfls. z.B.  aw-utf.apt  (ANSI->UTF-8) nehmen!)

a.cfl         *  bzw. z.B. n.cfl für  n.cfg : Feldliste mit Unterfeldnamen (für sog. "Edit+", a30edp.job, s.o.)

d-a30.apr     * Satzanzeige in aufbereiteter Form (HTML); abgeleitet aus d-kdos.apr, Verwendung in a30get.job
d-k.apt       * wird dazugeladen, darin die auszugebenden Felder

Wer nicht das A-Format einsetzt, hat am meisten Arbeit mit den letzten zwei Dateien, vornehmlich mit  d-k.apt, weil darin die tatsächlich anzuzeigenden Felder und ihre konkrete Behandlung spezifiziert werden. Die ersten drei Dateien kann man meistens fast unverändert übernehmen. Es stehen Kommentare drin. Für N.CFG mit ANSI-Code gibt es entsprechende Versionen, auch für B.CFG (VK-MAB).
Hinweise: In der CFG der Datenbank den Wert  mB  nicht zu knapp setzen. Mit  mB=30000  ist man auf der sicheren Seite.
Die Schriftgröße im EXT-Tab wird in der  d-a30.apr  gesetzt, die im INT-Tab ist mit  BIG /  veränderbar.

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



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