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


Web - Anbindung RuckZuck


Version a99 : Die billigste Lösung
Version PHP : Die einfachste Lösung


Installation WWW-Anbindung Schritt für Schritt

Was ist das?
Download Demo-Gesamtpaket
Wie geht das?

Version a99 : Die billigste Lösung

Diese Version kommt ohne den avanti-Server aus. Die Rolle eines Servers übernimmt das Windows-Programm a99, als Skriptsprache fungiert FLEX.
Die aktuellste, ausführlichste Fassung dieser Beschreibung ist im Demo-Gesamtpaket enthalten:
Im Schreibfeld des Programms a99 geben Sie ein:  h ruckzuck.
Nicht immer hat man die Zeit, das Geld, die Erfahrung - oder alles zusammen - um eine Web-Schnittstelle nach allen Regeln der Kunst für die eigene Datenbank zu machen. Nicht immer ist der Aufwand notwendig, den man mit avanti und mit ACWWW25 oder "populo" treiben muß. Deshalb gibt es eine Schnittstelle für Schnellschüsse:RuckZuck. Diese Alternative kommt sogar ohne Skriptsprache aus (Perl, Python, PHP, JavaScript), nur ganz normales HTML ist nötig. Es wird hiermit der Versuch gemacht, ein möglichst vielseitiges Repertoire von Funktionen (einschl. Schreibzugriff) vorgefertigt bereitzustellen, wobei die Anforderungen an das System und die Notwendigkeit von Anpassungen auf ein Minimum #BE1E3Cuziert sind. Lokalen Anpassungen sind keine Grenzen gesetzt, vor allem mit JavaScript, an der Oberfläche ist nicht viel allegro-Kenntnis notwendig. Wenn man aber andere als die Standardparameter einsetzt, muß man sich mit der Parametrierung auskennen.

So kann ein Startbildschirm aussehen, wenn man eine mit RuckZuck angebundene Datenbank anwählt:
(Dies ist nur ein Bild, kein funktionsfähiger Katalog)


 OPAC der UB Braunschweig 

Universitätsbibliothek Braunschweig - Pockelsstr. 13 - D-38106 Braunschweig - Tel. ++49 531 391 5026

Schnellsuche

Titelwort: (Einzelnes Wort!)
           Personenname: (Nachname, Vorname)
Suchen Registerlisten
Beide Angaben werden automatisch trunkiert.
Wenn Sie in beide Felder etwas eintragen, wird mit UND verknüpft


Detail-Suche

(Wenn die Schnellsuche nicht geeignet ist, wählen Sie "Detail-Suche")


 

Was ist RuckZuck?


Seit langem gibt es die allegro-WWW-Schnittstelle. Schon an die 100 Web-Kataloge sind damit am Netz.

Sie haben eine allegro-Datenbank (oder eine andere, aus der man eine machen könnte), die ins Inter- oder Intranet soll?

Nein: --> Ende

Ja: Welche dieser Aussagen gelten für Sie:

  • Sie haben zu wenig Geld
  • Sie haben zu wenig Zeit
  • Sie haben zu wenig Ahnung von der WWW-Programmierung, insbes. von Perl, Python, PHP 
  • Ihre Datenbank soll nur für begrenzte Zeit oder einen begrenzten Kreis verfügbar gemacht werden, vielleicht gar nur für eine einzelne Person am anderen Ende des Internet : d.h. hoher Aufwand lohnt nicht.
Nichts davon trifft zu: --> Ende.
Denn dann verwenden Sie avanti auf einer UNIX- oder Linux-Anlage und Sie richten mit Hilfsmitteln wie z.B. Thomas Bergers"populo"-Paket einen maßgeschneiderten Qualitätsdienst ein, mit hoher Betriebssicherheit, der monatelang ohne Aufsicht und ohne Eingriff laufen kann. Damit verglichen ist "RuckZuck" mit a99 vielleicht eine 90%-Lösung - doch manchmal braucht man ja gar nicht mehr!
Wenn eine oder mehrere dieser Aussagen für Sie zutreffen, ist die RuckZuck-Methode eine Überlegung wert. Oder auch dann, wenn schnell ein Provisorium gebraucht wird, damit man die Dauerlösung dann in Ruhe ausarbeiten kann.
Ab 31.10.2001 gibt es eine noch leichter zu realisierende Lösung, die aber den avanti-Server erfordert: RuckZuck mit PHP.

Und was ist "RuckZuck" nun wirklich?
Es ist ein Fertigpaket für das Bereitstellen einer "allegro"-Datenbank im Inter- oder Intranet.
Es sollte mit jedem Kategorienschema, also mit jeder "allegro"-Datenbank funktionieren. Es enthält nur die wichtigsten Funktionen, die jeder braucht, aber sorgfältig durchdacht und offen für Erweiterungen. Die Standarddateien werden ohne grafische Elemente geliefert, die Einbindung eigener Grafiken, insbes. Logos oder GIF-Dateien für Links wie "Nächste Seite", "Neue Suche" usw., ist für HTML-Kenner sehr einfach. Neudeutsch: man kann leicht seine eigene "Corporate Identity" integrieren.

RuckZuck besteht aus ganz wenigen Dateien und bleibt damit sehr übersichtlich. Alle Dateien sind voll kommentiert, die Stellen für notwendige Eingriffe sind markiert, daher braucht man nicht alles zu verstehen, was da abläuft.

Erforderlich:

  1. Ein Rechner mit Win'XP oder Vista. Er muß am Internet hängen. Dazu braucht er keinen eigenen Namen, nur eine IP-Nummer. Eine solche hat jeder PC, der z.B. in einem Hochschulnetz steht.
  2. Das Programm a99
  3. Das Hilfsprogramm   cgi.exe
  4. Die Datei  opac.htm
  5. das Paket ruckzuck.lzh, dieses enthält Dateien, die man für jede Datenbank auf ein eigenes Verzeichnis kopiert. (Nicht auf das allegro-Programmverzeichnis, auch nicht auf ein Verzeichnis des Web-Servers!)
  6. Ein Webserver. Sehr zu empfehlen ist das XAMPP-Paket, das neben dem Apache-Webserver auch PHP enthält. Installieren Sie Apache nicht als Dienstprogramm, sondern als ganz normales Programm! Man startet es dann jeweils mit dem XAMPP Control. ("Dienst" geht auch, ist aber nicht nötig. Wenn man das will, muß man unter Start / Systemsteuerung / Verwaltung / Dienste  auf "Apache" rechtsklicken, dann Eigenschaften / Anmelden  und einen Haken setzen bei "Datenaustausch zwischen Dienst und Desktop zulassen")
Alles ist auf demselben PC zu installieren! Wenn das nicht der Fall ist, können Webserver und a99 nicht über cgi.exe kommunizieren. Die Datenbank kann aber im LAN auf einem anderen Fileserver (z.B. auch Novell) liegen. Zur Installation der Basissoftare gibt es eine Schritt-für-Schritt-Anleitung.

Ruckzuck wird per FTP bereitgestellt. Es ist ein Paket, das außer Apache alles enthält, was gebraucht wird, und das nach der Installation (per "InstallShield", wie unter Windows üblich) sofort lauffähig ist.

Für Unix oder Linux existiert RuckZuck nicht, dafür empfiehlt sich der avanti-Server. Von mehreren Lösungen auf dieser Basis ist die PHP-Version von RuckZuck die einfachste.

Wie startet man RuckZuck? 

  1. Webserver starten
  2. Standard: Apache mit dem XAMPP Control starten
  3. a99 starten
  4. Standard: auf c:\opac den Befehl  c:\allegro\a99.exe demo  geben
Über die präparierte Seite HTML-Eingangsseite (OPAC.HTM  mit lokaler Anpassung) kann jetzt der Zugriff losgehen.
An der Datenbank kann zugleich von anderen Fenstern aus normal gearbeitet werden, entweder mit den DOS-Programmen oder a99.
Das Fenster von a99 kann man u.a. benutzen, um sich die abgerufenen Ergebnismengen anzuschauen (Alt+e, dann sieht man die Liste).
Es entsteht ein Protokoll RZ.LOG auf dem CGI-Verzeichnis des Web-Servers. Dieses kann man jederzeit gefahrlos löschen. Darin stehen die wesentlichen FLEX-Befehle, die zu einem Job gehören.

Wie geht das?

Funktionsweise der RuckZuck-Schnittstelle

Als Server dient a99.exe, das Windows-Hauptprogramm des allegro-Systems, die Anfragen werden ihm als externe FLEXe übergeben. (Ein FLEX ist eine Art Makro, das man sowohl interaktiv in a99 ausführen, aber auch von außen dem Programm übergeben kann, gewissermaßen zur Fernsteuerung.) Es wird keine Skriptsprache benutzt, auch nicht Java.

So wird installiert, wenn man eine eigene Datenbank zugänglich machen will:

  1. In den eigenen Indexparametern (Standard: CAT.API) sollte man symbolische Namen für die Register und die Restriktionen haben (z.B. PER für das Personenregister etc.) siehe Handbuch S. 176.
  2. Die Datei OPAC.HTM kopiert man auf das Dokumentenverzeichnis des Webservers. Bei Apache ist das normalerweise c:\xampp\htdocs. 
    In OPAC.HTM muß man evtl. an wenigen Stellen eingreifen. Dreimal muß der Verzeichnisname eingetragen werden, wo a99 läuft (siehe 4., Default ist C:\OPAC.)
  3. Die URL dieser Datei teilt man dann den betroffenen Personen mit. Diese Datei ist der Zugang und zugleich so etwas wie die INI-Datei für Ihren Web-Katalog. Daher enthält sie den Pfad, wo a99 läuft.
  4. Das Programm CGI.EXE muß auf das CGI-Verzeichnis des Web-Servers. Bei einer Standard-Installation von Apache ist das ...\xampp\cgi-bin. CGI.EXE wird bei Bedarf vom Webserver aufgerufen, wie jedes normale CGI-Programm.
  5. Man legt ein Verzeichnis für die Schnittstelle an, z.B. C:\OPAC (günstig ist ein nicht zu langer Name, denn er muss bei jeder Transaktion mit durchgereicht werden). Der Name dieses Verz. muss in OPAC.HTM stehen (siehe 2.). Wenn Sie es einmal verlagern: nur OPAC.HTM entsprechend ändern. Auf C:\OPAC entpackt man ruckzuck.lzh: die FLEXe, Parameter und HTM-Dateistücke, aus denen die Schnittstelle besteht. Hier muss auch eine Datei xyz.ini angelegt werden. Darin stehen Name und Pfad der Datenbank etc. Mit "a99 xyz" startet man a99 dann auf diesem Verzeichnis (nicht woanders). Man stellt es dann so ein, dass irgendein Titelsatz in der Anzeige ist. Nun wartet es auf Arbeit...

  6. In den .FLX-Dateien und HTM-Teilen sind Stellen für Anpassungen mit XXX markiert.
  7. Für weitere Datenbanken legt man weitere Verzeichnisse an (Kopien von c:\opac), die jeweils eine induviduelle .INI für den Start von a99 brauchen. D.h. es muß für jede Datenbank ein eigenes a99 auf dem zugehörigen Schnittstellenverzeichnis gestartet werden. Im Hinblick auf Systemressourcen ist das unkritisch: jedes laufende a99 belegt höchstens 2.5MB Arbeitsspeicher und braucht nur dann Rechenleistung, wenn gerade eine Anfrage bearbeitet wird. Ändernde Eingriffe sind voraussichtlich nur nötig in der Datei FIND-S.FLX  (kommentiert), die aus OPAC.HTM aufgerufen wird. Außerdem in GETEDIT.FLX und WRITE.FLX sowie D-EDIT.APR, wenn man Schreibzugriffe erlauben will. Für die Einstellung der Sortierstelle auch FIND-D.FLX.
  8. Wer nicht mit dem Standardschema A.CFG arbeitet: Für die eigene Datenbank muß eine Datei D-KHTM.cPR angelegt werden (wobei c der eigene Konfigurationsbuchstabe ist, z.B. P für Pica), sowie eine D-EDIT.cPR, wenn man Schreibzugriff anbieten will. Eine Datei D-H0.APR kann auf D-H0.cPR kopiert werden, sie wird für einige Hilfsfunktionen gebraucht.

  9. Schnelle Lösung:
    Man kopiert D-H0.APR zusätzlich auf D-KHTM.cPR. Dann bekommt man nur eine Anzeige im Internformat. Außerdem:  P-HTM.APT auf P-HTM.cPT kopieren.
    Aufwendige Lösung:
    Man erstellt  D-KHTM.cPR  aus der i.d.R. vorhandenen D-1.cPR, oder D-KRTF.cPR  indem man diese Einstellungen darin vornimmt:
        zl=80
        ze=10
        zm=0
        zb=" "
        ab=""
        as=""
        td-utf8       diese Zeile am besten ans Ende der Datei! (Codetabelle ASCII -> Unicode)
    Wenn man keine  D-UTF8.cPT hat, kopiert man D-UTF8.APT auf diesen Namen. Im allgemeinen wird es dann schon klappen. Das Erscheinungsbild der Datensätze läßt sich durch Bearbeitung der D-KHTM.cPR noch beliebig verbessern. In die Hilfsparameter D-H0.APR wird man normalerweise nicht eingreifen müssen.


Die Funktionsweise

  • Für die Übergabe von Nutzerdaten werden ganz normale HTML-Formulare verwendet. Diese werden an ein kleines CGI-Programm übergeben, CGI.EXE. Es ist in C geschrieben und daher viel schneller als z.B. Perl.
  • CGI.EXE wandelt die Formulardaten um, verbindet sie mit einem vorgefertigten FLEX und übergibt diesen an a99.
  • Der FLEX veranlasst a99, eine Ausgabe in HTML zu erzeugen, die durch CGI unmittelbar an den Nutzer übergeben wird. Auch hier können vorgefertigte Teile zum Einsatz kommen, z.B. HTML-Kopfdateien.

  •    Nutzer:     CGI . . . . . . . . . . . . . . . . . . CGI
       HTML-Seite                           HTML               Nutzer:
       mit         --->  FLEX ---> a99 --->  Ausgabe       --> neue    --> Anfang
       Formular                                                HTML-Seite

Es gibt eine Anzahl von vorgefertigten FLEXen mit wichtigen Grundfunktionen, die auf diesem Wege aktiviert werden können. Diese sind jeweils ausführlich kommentiert. Insbesondere ist markiert, wo man Veränderungen vornehmen kann oder muß.
Man braucht nur eine feste HTML-Seite, die für den Einstieg. Die anderen werden immer ad-hoc von den FLEXen erstellt.

Übersicht:
Was sieht/macht der Nutzer --> was wird dann ausgelöst



  START: z.B.
  OPAC.HTM  --> FIND-S.FLX  Ausführung einer Suche
                            Ausgabe: Ergebnisliste oder Registerausschnitt
      oder  --> DETAIL.FLX  produziert Formular für kombinierte Suche
                            Ausgabe: Das Eingabeformular

  Eingabeformular für kombinierte Suche
            --> FIND-D.FLX  Neue Suche ausführen
                            Ausgabe: Ergebnisliste oder Registerausschnitt
  Ergebnisliste
            --> GETREC.FLX  holt einen einzelnen Satz
                            Ausgabe: Satzanzeige
            --> FIND-D.FLX  veränderte Suche ausführen -> andere Ergebnisliste
            --> DETAIL.FLX  Start einer neuen Suche

  Registerausschnitt
            --> FIND-D.FLX  zu einer Registerzeile gehörige Sätze
                            Ausgabe: Ergebnisliste oder Satzanzeige
            --> PAGE.FLX    eine Seite vor oder zurück
                            Ausgabe: Registerausschnitt
            --> DETAIL.FLX  Start einer Neuen Suche

  Satzanzeige
            --> DETAIL.FLX  Start einer Neuen Suche
            --> GETEDIT.FLX Satz zum Bearbeiten bereitstellen
                            Ausgabe: Bearbeitungsformular
  Bearbeitungsformular
            --> WRITE.FLX   Satz speichern, entw. als Korrektur oder Neusatz

Eingreifen muß man bei eigenen (nicht dem Standard entsprechenden) Datenbanken in die rot geschriebenen Dateien, denn darin gibt es datenbankabhängige Teile. Man findet die Stellen leicht, denn es steht immer XXX und ein Kommentar über den zu ändernden Stellen.



Liste der FLEXe


Diese FLEXe werden als Grundpaket bereitgestellt. Sie erzeugen jeweils eine HTML-Seite als Ausgabe. Sie benutzen jeweils eine (meistens) gleichnamige .HTM-Datei als Kopf. Hier kann man lokale Design-Elemente einbringen, z.B. ein eigenes Logo statt "ruckzuck.gif" (Tip: kopiert man das eigene auf diesen Namen, hat man weiter nichts zu tun) und Links zu eigenen Seiten. In diesen Kopfdateien kann man aber auch JavaScript-Funktionen unterbringen. In die FLEXe eingebunden sind die Seiten mit dem Befehl  write Ffilename. Die HTM-Köpfe enthalten kein "<head>...</head>", denn dieser Abschnitt wird schon von CGI erstellt und enthält nur einen <title> mit der internen Nummer des Jobs.

Liste der FLEXe mit zugehörigen htm-Kopfdateien (werden automatisch eingebunden):

FIND-S.FLX   wird von der Startseite OPAC.HTM gestartet
find.htm

DETAIL.FLX   kann von OPAC.HTM aufgerufen werden, und durch den Link
detail.htm   "Neue Suche" von anderen Stellen
             Holt sich die Registernamen automatisch

FIND-D.FLX   Start aus DETAIL.FLX und aus PAGE.FLX
find.htm     Erg.Menge (wenn mehr als 1 Satz), sonst Satzanzeige, ODER Anzeige eines
             Registerabschnitts

PAGE.FLX     Ruft sich selber auf mit [Eine Seite höher] / [Eine Seite weiter]
page.htm     Zeigt einen Registerabschnitt, ruft FIND-D.FLX auf, wenn
             eine Zeile angeklickt wird.

GETREC.FLX   Aufruf aus FIND-D.FLX, wenn ein einzelner Satz gezeigt werden soll
getrec.htm    Startet GETEDIT.FLX, wenn gewünscht

GETEDIT.FLX  Start aus GETREC.FLX
getedit.htm  Legt einen Satz zum Bearbeiten vor. Mit JavaScript-Beispiel zur
             Eingabekontrolle

WRITE.FLX    Start aus GETEDIT.FLX
getrec.htm   Schreibt den Datensatz zurück, wahlweise als neuen Satz oder Korrektur



Weitere Hinweise für CGI-kundige Leser

Das Programm CGI.EXE kann sowohl POST wie auch GET-Aufträge entgegennehmen, d.h. man kann Aufträge über Formulare oder über Links erzeugen.
In einem Auftrag müssen bestimmte Dinge enthalten sein:

VuwD=Name des Verz., wo a99 laeuft (working Directory)
flex=Name eines FLEXes (der auf dem Arbeitsverzeichnis liegen muß)
Vuxy=...   beliebig viele #u-Variablen; werden angelegt, bevor der FLEX anläuft

optional können folgende Variablen auftreten  (nur bei Schreibaufträgen sinnvoll, s. WRITE.FLX):
Vnnn=...  beliebig viele Kategorien
Rnum=...   interne Nummer des zu bearbeitenden Satzes. Dann wird dieser Satz zuerst geladen, bevor der FLEX anläuft und bevor die V-Befehle ausgeführt werden, d.h. die in den anderen Variablen mitgelieferten Kategorien werden in den Satz eingeordnet, bevor der eigentliche FLEX beginnt.
Text=...  Inhalt eines TEXTAREA-Feldes in einem Eingabeformular; Verwendung in GETEDIT.FLX, siehe dort.

Die Variablen Vuxy werden also dem zu startenden FLEX überreicht, d.h. CGI.EXE fabriziert einen neuen FLEX (und löscht ihn hinterher sofort wieder) Dieser temporäre FLEX enthält am Anfang die Setzung der #uxy-Variablen etc. (s.o.) und am Ende deren Löschung. Man verwende daher nicht den Befehl "end", sondern statt dessen "jump exit", denn die Sprungmarke :exit wird ebenfalls erzeugt. D.h. CGI erstellt einen "Sandwich"-FLEX:

  Laden des Satzes (wenn Rnum gegeben)
  Setzungen der #uxy
  Inhalt des Text-Feldes
         (d.h. Einfügen der darin enth. Kategorien in den Datensatz)
  der FLEX aus der CGI-Variablen flex=...
  :exit
  Loeschungen der #u-Variablen

Der Name des temporären FLEX enthält u.a. die Uhrzeit in Sekunden, daher ist keine Kollision zweier Aufträge zu befürchten.

CGI sendet diesen Namen an a99 und wartet, bis die Ausgabedatei fertig ist (d.h. von a99 das Signal zurückkommt, es sei alles erledigt). Keines der Programme muß also ständig die Platte überwachen oder dergleichen, sondern die Kommunikation geschieht über Windows-Systemmeldungen.

Als Exportparameter wird per default D-KHTM.cPR benutzt.  Ansonsten wird der Output des FLEXes an  CGI.EXE abegeben und von diesem an den Web-Server zurückgereicht, d.h. man muß in seinem FLEX den kompletten HTML-Ausgabetext fabrizieren. Das kann abwechselnd durch "write"- und "export"-Befehle passieren. Bei "write" hat man ja die Möglichkeit, ganze Fertigteile, d.h. Dateien "name.htm", mit wri Fname.htm auszugeben.

Übrigens kann auf dem Rechner, auf dem der Webserver, a99 und CGI laufen, durchaus ganz normal gearbeitet werden. Z.B. kann man darauf Netscape starten und den Katalog selber benutzen, indem man die Adresse    http://127.0.0.1/opac/opac.htm  aufruft.

Tips
Sollen einige Nutzer Schreibrechte haben, andere aber nicht: zwei Eingangsseiten und zwei Startverzeichnisse anlegen, a99 zweimal starten (auf jedem der Verzeichnisse). In der INI-Datei für die Nutzer ohne Schreibrecht kann man zur Sicherheit eintragen:  access=0.  In GETREC.FLX und FIND-D.FLX nimmt man die kommentierten Zeilen heraus, die den Link "Bearbeiten" erzeugen.
Den Zugang zu der Eingangsseite mit Schreibrecht kann man zusätzlich durch Passwort absichern.
Auf einem weiteren Verzeichnis kann man ein drittes a99 starten, um damit ohne Störung durch die Web-Zugriffe selber an der Datenbank arbeiten zu können. Hier sollte dann access=4 in der INI-Datei stehen, damit man alles machen kann.


Hinweis für allegro-kundige Leser
Die Parameterdatei D-H0.APR besorgt einige Standardaufgaben wie das Produzieren von Registerauszuegen und SELECT-Listen für die Registerauswahl. Sie wird über den Befehl "export" benutzt. So wird vermieden, daß man die Anzeigeparameter D-KHTM.APR auch noch mit diesen Sonderaufgaben befrachten bzw. daß man in vorhandene Anzeigeparameter, die man für "avanti" schon gemacht hat, die etwas komplizierten Hilfsprozeduren auch noch einbauen muß. Das spart u.U. viel Zeit.
Ausnutzen kann man in eigenen FLEXen evtl. zwei weitere Nutzervariablen: #urH und #urA. Diese enthalten jeweils den Namen des Host bzw. die Adresse, von der aus der FLEX gekommen ist.

allegro-Anwender wissen: nichts ist unverrückbar festgeschraubt, (fast) alles lässt sich irgendwie variieren oder die Entwicklungsabteilung macht, wenn begründete Vorschläge kommen, eine Programmverbesserung. Das gilt auch für RuckZuck. Schreiben Sie uns!
 


Version PHP : Die einfachste Lösung  (braucht den avanti-Server)

Diese gibt es erst ab November 2001.  Im März 2003 wurde umgestellt auf Unicode.
Das Besondere an der Skriptsprache PHP ist, daß HTML-Dateien und Skripte eine Einheit bilden. Perl- und Python-Skripte sind dagegen eigene Programme, die auf einem anderen Verzeichnis liegen müssen als die HTML-Dateien. Aus diesem Grund kommt die PHP-Standardlösung mit einem Minimum an Dateien aus: nur halb so viele wie bei der a99-Lösung! Die FLEX-Makros werden dabei nämlich zum integrierten Bestandteil einer PHP-Datei, sind also keine eigenen Dateien.
Hinweise zum Installieren des avanti-Servers und des Webservers incl. PHP entnehme man den entsprechenden Dokumentationen!

Empfehlung: Eine ausführlichere Beschreibung kann man im Programm a99 abrufen (auch im Demo-Programm): im Schreibfeld gibt man ein  h phpac

Ziel war, die Funktionen des a99-RuckZuck komplett zu realisieren, mit einigen wenigen Verbesserungen. Das sollte mit einem
Minimum an Dateien erreicht werden. Damit hat man eine überschaubare Basis, die in jeder Richtung ausgebaut werden kann.

Das PHP-Paket läuft auf Windows, Linux und Solaris, als Webserver wurden Apache und Xitami getestet.

Die nötigen Dateien findet man in  phpac.exe. Startet man dieses Programm auf einem PC, entstehen drei Unterverzeichnisse: PHP mit den PHP-Dateien, PARAM mit den Parameterdateien, DOKU mit den Beschreibungstexten.

Wohin mit den Dateien?

PHP-Dateien --> ein Unterverz. am HTM-Verz. des Webservers
                        (Meistens: "htdocs" bei Apache, "webpages" bei Xitami)
APR-Dateien --> DbDir  (umbenennen in .xPR , wenn man mit x.CFG arbeitet)

Startseite ist INDEX.HTM oder DETAIL.PHP (einstellbar in av_ini.php).
Hat man mehrere Datenbanken anzubinden, kopiert man die Dateien jeweils auf ein eigenes Unterverzeichnis und modifiziert zunächst die Datei AV_INI.PHP, evt. auch noch andere (vor allem INDEX.HTM, GETREC.PHP und WRITE.PHP). Diese ist sozusagen die INI-Datei für den Zugang zu einer Datenbank.
In AV_INI.PHP liegen die Variablen mit Anpassungsbedarf (alles kommentiert):
Server-IP, Datenbankname, Username, Passwort und ein paar wenige weitere Angaben, wie $Startpage, $Reg1name ....
Außerdem zwei wichtige Grundfunktionen: das Übergeben eines Jobs und das Ausgeben der Ergebnisse.

PHP-Dateien (die rot geschriebenen muß man anpassen)

AV_INI.PHP   Einstellungen für die betreffende Datenbank

INDEX.HTM     Startseite schlicht (Angebot: Link zu DETAIL.PHP), nach Eingabe startet:

DETAIL.PHP   Startseite fuer Detailsuche, ruft auf:
FIND.PHP       Ausführen einer Detailsuche, startet PAGE oder RSET:
PAGE.PHP         Anzeige eines Registerabschnitts, startet:
RSET.PHP         Anzeige einer Ergebnismenge, startet:
GREC.PHP           Anzeigen eines Datensatzes, startet:
EDREC.PHP            Bereitstellen eines Satzes zum Editieren, startet:
WRITE.PHP              Speichern des bearbeiteten Satzes
AV_PAGE.PHP   Kernfunktion für PAGE.PHP
AV_RSET.PHP   ... fuer RSET.PHP
AV_GREC.PHP   ... fuer GREC.PHP
ENTRANCE.HTM  Einloggen für die Bearbeitungsfunktion. Passwort wird als Cookie aufbewahrt.

Die Dateien mit dem Präfix AV_ sind unselbständig, sie werden von anderen Dateien nachgeladen,

Hinsichtlich der Schreibfunktionen muss man auch in GREC.PHP und WRITE.PHP eingreifen. Die Stellen sind markiert durch xxx. Es geht um die Kategorien, die in eigenen Edit-Feldern angeboten werden sollen.

Parameterdateien

Kopieren auf DbDir oder ProgDir (wo avanti gestartet wird):

   d-html.apr      Datensatzanzeige für HTML, angelehnt an D-1.APR
                      muss für andere CFG eigens erstellt werden!
                      Dafuer als Hilfe, sozusagen als Strickmuster:

   d-simpel.apr    Geeignet, wenn es keine Satzverknüpfungen gibt
   d-kompl.apr     ... wenn es welche gibt
                      Diese zwei machen eine Anzeige mit Tabellenstruktur,
                      die man leicht ausbauen kann (NEU)

   h-php.apr       Hilfsfunktionen, z.B. Aufbereitung Registerabschnitt
                       universell fuer jede CFG verwendbar
   h-edit.apr      Satz bereitstellen zum Editieren
                       geringe Anpassungen nötig (kommentiert)
   d-utf8.apt           Codiertabelle ASCII -> ANSI
   o.apt           Codiertabelle ASCII -> ANSI
   ucodes.txt      Liste von u-Befehlen für Unicode. Anzuhängen an die Indexparameter.


... und auf ProgDir\HELP zum Betrachten in a99:
   phpac.rtf       Dokumentation der Grundstruktur von PHP-Dateien
 

Einbindung in eigene Prozeduren

Dazu eignen sich vor allem drei Dateien:
page.php   Anzeige eines Registerabschnitts mit Blättern
             z.B.:  page.php?urG=PER&urS=shakesp
             Default:  urG=|1 und urS=a, also Stelle a im Register 1

rset.php   Bildung und Anzeige einer Ergebnismenge mit Blättern
             z.B.:  rset.php?ufC=PER+shakesp%3F

grec.php   Holen und Zeigen eines Satzes
             z.B.:  grec.php?urN=12345   // Zeige Satz Nr. 12345
             oder   grec.php?urG=NUM&urS=12345678

Die eigentlichen Funktionen sind ausgelagert in die Dateien av_page.php, av_rset.php und av_grec.php
Dadurch bleibt die Anwendung übersichtlich.
Für die eigene Gestaltung muss man sich nur die oben genannten drei Dateien vornehmen, die av-Dateien sind darin eingebunden mit "include".

Die wichtigen Variablennamen stehen in Beziehung zu internen Variablen (#u-Variable) von "avanti" und sind daher immer von der Form  uxY mit einem Kleinbuchstaben x und einem Grossbuchstaben Y (um moeglichst nicht in Konflikt zu geraten mit internen Variablen z.B. von Anzeigeparametern).
Die wichtigsten sind:
   urG   Registerbezeichnung, z.B. PER
   urS   Register-Startpunkt, z.B.  shakesp
   ufC   find command, z.B.  PER+shakesp%3F
   urN   record number (interne Satznummer)
   urO   Ordnungsmodus, Default a0 (in RSET.PHP)

Wie allgemein üblich, müssen Aufruf-Variablen, vor allem urS, codiert werden, also Leerzeichen durch + ersetzt, ? durch %3F usw.



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