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 reduziert 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)
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:
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.
Das Programm a99
Das Hilfsprogramm cgi.exe
Die Datei opac.htm
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!)
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?
Webserver starten
Standard: Apache mit dem XAMPP Control starten
a99 starten
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:
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.
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.)
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.
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.
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...
In den .FLX-Dateien und HTM-Teilen sind Stellen für
Anpassungen
mit XXX
markiert.
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.
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.
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.htmauszugeben.
Ü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 denavanti-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.