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

acwww Leitseite
Anfang zurueck weiter Ende
allegro acwww
Version 2.5

7 acwww25 - die Schnittstelle

Die Schnittstelle besteht aus vielen Dateien, die im Folgenden näher erläutert werden sollen. Bevor wir aber in die Einzelheiten abtauchen, etwas zur grundsätzlichen Arbeitsweise der Programme.

7.1 Grundsätzliche Arbeitsweise der Programme

Jedes Teilprogramm fängt zunächst ähnlich an:

  1. Einlesen der Dateien acwww25.pl und cgi-lib.pl. Beide Dateien enthalten Unterprogramme und Voreinstellungen, die für alle wichtig sind.
  2. Grundinitialisierung durch die Routine &Init (in acwww25.pl). Es werden einige Voreinstellungen vorgenommen und die Verbindung zum avanti-Server hergestellt.
  3. Einlesen und Aufbereiten der übergebenen Programmoptionen.
  4. Eine Option, die immer übergeben wird, ist das Kürzel der Datenbank, mit der gearbeitet werden soll. Aus dem Kürzel und der Variablen %dbscripte in acwww25.pl wird das Verzeichnis ermittelt, wo das Programm die zur Datenbank gehörige dbinfo.pl finden kann.
  5. Einlesen der datenbankspezifischen Voreinstellungen aus der datenbankeigenen dbinfo.pl. Ohne diese Datei läuft nichts!
  6. Beginn der eigentlichen Arbeit, wobei Aufbereitung der Ergebnisseite und Ermittlung des Ergebnisses miteinander verflochten sind. Für Änderungen in diesem Prozess muss man sich in Perl, HTML und der avanti-Sprache ausgekennen.

Die eigentliche Arbeit sieht dann meistens so aus: Zuerst wird der Anfang der Ergebnisseite aus texts/scriptname.kpf ausgeben. Achten Sie darauf, dass hier der Anfang einer HTML-Seite korrekt eingeleitet wird, sonst sieht man im Browser u.U. nichts.

Dann wird der Auftrag für den avanti-Server zusammengestellt.Der Auftrag wird an den Server übergeben und das Script wartet geduldig, bis die Antwort zurückgegeben wird.

Das Ergebnis wird ausgewertet und präsentiert.

Zuletzt wird die Datei texts/scriptname.end ausgegeben. Sie enhtält den Schluß des HTML-Dokumentes. Hier kann man eintragen, was man am Ende der Seite erscheinen lassen will. Wichtig sind die abschließenden </body>- und </html>-Tags.

7.2 Die Programme im Einzelnen

Sie werden in .../cgi-bin/acwww25 und darunter diese Dateien finden:

acindex.pl Script zum Erzeugen eines Registerausschnittes. Die Registereinträge sind 'verlinkt', d.h. anklickbar. Entweder löst man mit einem Mausklick eine Titelanzeige oder bei einem Verweis eine weitere Registerproduktion aus. Das Register kann erweitert werden, d. h. zu jedem Registereintag können die Kurztitel angezeigt werden.
acindex.net Alternative zu acindex.pl. Hauptunterschied ist, dass der Zugriff auf die Kurztitel für das erweiterte Register nicht direkt erfolgt, sondern über avanti-Jobs geregelt wird. Dieses Programm müssen Sie einsetzen, wenn avanti auf einer anderen Maschine als diese Programme eingesetzt wird. Sie haben dann nämlich keine Möglichkeit, direkt auf die Kurztiteldatei zugreifen zu können! Um dieses Programm einsetzen zu können, müssen Sie es in acindex.pl umbenennen.
allegro.pl verarbeitet die Suchanfrage mit logischen Kombinationen und erzeugt aus der Ergebnismenge eine Kurztitelanzeige, aus der heraus dann die gewünschten Titel zur Anzeige gebracht werden können. Übersteigt die Ergebnismenge die Anzahl der anzuzeigenden Zeilen, gibt es eine Blätter-Funktion.
maske.pl erzeugt die Suchmasken für die Datenbanken. Dies ist der eigentliche Einstieg für die Recherche einer Datenbank. Die Verwendung diese Programms als Einstieg ist nicht zwingend vorgeschrieben. Es sind nur Besonderheiten in den anderen Programmen zu beachten.
regsrch.pl Das Programm zur Erzeugung der Titelanzeige.
acwww25/texts Verzeichnis, in dem sich Dateien mit HTML-Dateifragmenten finden. Für jedes Script zwei. '.kpf' enthält den Anfang eines HTML-Dokumentes, '.end' das Ende. Jedes Script gibt am Anfang seiner Ausgabe das .kpf-Fragment aus, dann den eigentlichen Inhalt und zum Schluß das .end-Fragment. Sinn dieser Konstruktion: Sie können das generelle Aussehen der produzierten HTML-Seiten einfacher beeinflussen. Um Änderungen anzubringen, sind undbedingt HTML-Kenntnisse notwendig.
acwww25/lib enthält die Dateien acwww25.pl und cgi-lib.pl. Sie gehören unbedingt in das Library-Verzeichnis von Perl! Für Windows ist das wahrscheinlich c:\perl5\lib und unter UNIX oft /usr/lib/perl5. Der genaue Ort hängt aber von Ihrer Perl-Installation ab!
acwww25/opac Ort der Konfigurationsdatei dbinfo.pl für die Datenbank mit der Kennung 'opac' und 'avdemo'. Mehr dazu weiter unten.

7.3 Anpassungen in den Programmen

7.3.1 Allgemeines

Es gibt notwendige Anpassungen, die Sie in jedem Fall vornehmen müssen und solche, die nicht unbedingt notwendig sind. So werden Sie wahrscheinlich nicht damit zufrieden sein, wenn Ihr OPAC immer unter der Braunschweiger Überschrift zu recherchieren ist. Dann wollen Sie u.U. noch Anpassungen in den Parameterdateien für die Datensatzanzeige vornehmen. Nicht unbedingt notwendig sind Anpassungen, die das gesamte Erscheinungsbild der erzeugten Seiten betreffen. Wenn Sie das aber vorhaben, müssen Sie sich etwas mit Perl vertraut machen, da das Layout der Seiten im Programmcode enthalten ist.

In den Hauptprogrammen acindex.pl, allegro.pl, maske.pl und regsrch.pl sind zunächst mal keine Anpassungen notwendig -- es sei denn, Sie setzen Sie unter UNIX ein. Dann müssen Sie zumindest den Programaufruf in der ersten Zeile jedes der Hauptprogramme überprüfen. Weiter oben ist beschrieben, was zu tun ist.

Hingegen müssen Sie in den Dateien acwww25.pl im Perl-Library-Verzeichnis und in jeder dbinfo.pl einer anzubindenden Datenbank Änderungen vornehmen.

7.3.2 Änderungen in acwww25.pl

Die Datei acwww25.pl enthält die grundlegenden Einstellungen, die in allen Programmen der Schnittstelle benötigt werden. Außerdem finden Sie hier noch einige wichtige Unterprogramme. Anpassungen sind i. a. nur in den globalen Variablen am Anfang der Datei notwendig. Die Unterprogramme brauchen eingentlich nicht geändert zu werden. Im folgenden erläutere ich die Variablen im Einzelnen. Die Reihenfolge der Beschreibungen stimmt mit der in der Datei acwww25.pl überein und ist ganz bestimmt kein Indiz dafür, wie wichtig die jeweilige Einstellung ist.

7.3.2.1 Ort und Adresse von avanti ($AVANTI_HOST und $AVANTI_PORT)

Es wurde schon weiter oben erwähnt, dass es nicht notwendig ist, die Programme der Schnittstelle und avanti auf ein und derselben Maschine laufen zu lassen. Daher müssen die Programme natürlich wissen, wo sie avanti finden. Mit diesen beiden Variablen gibt man die Adresse der Maschine an, auf der avanti läuft:

$AVANTI_HOST
Hier können Sie entweder die IP-Adresse des Rechners (z.B. "198.20.1.3" oder einen symbolischen Namen wie z.B. "mein_server.meine_domain.de" angeben. Wenn avanti auf derselben Maschine laufen sollen wie die Schnittstellenprogramme muss als Adresse entweder "localhost" oder "127.0.0.1" eingetragen sein.
$AVANTI_PORT
Portnummer, auf der avanti 'horcht'. Dieser Wert muss eine Zahl sein, also ohne einschließende Anführungszeichen angegeben werden. Welche Portnummer hier einzutragen ist, hängt von der avanti-Installation ab.

Voreinstellung:

$AVANTI_PORT = 4949;
$AVANTI_HOST = "localhost";
7.3.2.2 Startverzeichnis fuer die Scripte ($HTMLScriptPfad)

An einigen Stellen setzen die Programme Links in den erzeugten HTML-Seiten auf andere Programme der Schnittstelle. Diese Links müssen einen Pfad enthalten. Welcher Pfad dort eingesetzt wird, bestimmt diese Variable. Sie sollte in HTML-Notation auf das CGI-Verzeichnis dieser Schnittstelle verweisen.

Achtung: Hier darf nicht der absolute wirkliche Pfad angegeben werden. Erstens würden die Links in den HTML-Seiten damit nicht funktionieren und zweitens wäre dies ein Sicherheitsloch, denn es offenbart etwas über die Struktur des Webservers.

Voreinstellung:

$HTMLScriptPfad = "/cgi-bin/acwww25";
7.3.2.3 CGI-Pfad absolut ($AllegroW3CGIPfad)

Hier muss der einzig wahre, real existierende Pfad der Schnittstellenprogramme eingestellt werden. Jedes Programm wechselt am Anfang zu Sicherheit in dieses Verzeichnis. Denn abhängig von Einstellungen im Server, werden die Programme evtl. aus einem anderen Verzeichnis heraus gestartet. Für das Einlesen der datenbankeigenen dbinfo.pl muss das Script aber das eigene Verzeichnis als Arbeitsverzeichnis haben. Wenn sie aus einem anderen Verzeichnis gestartet würden, könnten sie dbinfo.pl nicht finden. Voreinstellung:

$AllegroW3CGIPfad = "c:/xitami/cgi-bin/acwww25"; 
7.3.2.4 Relativer Pfad der datenbankspezifischen Scripte (%dbscripte)

Dies ist die wirklich wichtige Variable, die immer dann erweitert werden muss, wenn Sie eine neue Datenbank anbinden wollen. Es handelt sich hierbei um ein sogenanntes Hash-Array, auch assoziatives Array oder dictonary genannt. Die Einträge bestehen immer aus einem Schlüssel-Werte-Paar. Der Schlüssel ist der symbolische Name der Datenbank (für die WWW-Schnittstelle, aber auch für avanti), und der Wert ist das Verzeichnis, wo die Programme die zur Datenbank gehörige dbinfo.pl finden können. Die Angabe muss relativ zum Verzeichnis cgi-bin/acwww25 sein. Meistens wird das Verzeichnis genauso genannt wie die Datenbank. Voreingestellt ist:

%dbscripte = (
    "avdemo",   "opac",
    "opac",     "opac",
);

Achten sie bitte genau auf die korrekte Syntax: Sowohl Schlüssel als auch Wert sind in Anführungszeichen einzuschließen, und jedes Element wird mit Komma abgeschlossen!

7.3.2.5 Namen der anbietenden Organisation (%Organisation)

Die Werte in dieser Variablen werden Sie wahrscheinlich so schnell wie möglich ändern wollen. %Organisation ist auch ein dictionary, enthält aber nur zwei Einträge: Den Namen der Bibliothek in einer Kurz- und in einer Langform. Beide sind in HTML-Schreibweise anzugeben.

Voreinstellung:

# Namen der anbietenden Organisation in Kurzform und Langform
%Organisation = (
    "Kurzform", "UB Braunschweig",
    "Langform", "Universitätsbibliothek Braunschweig",
);

7.3.3 Änderungen in dbinfo.pl

Diese Datei enthält Einstellungen speziell für eine Datenbank. Damit sollte deutlich sein, dass in dieser Datei so ziemlich alles angepasst werden muss. Für die Einstellungen in dieser Datei gibt es prinzipiell keine Voreinstellungen. Ich erkläre die einzelnen Elemente daher am Beispiel der mitgelieferten dbinfo.pl für die Demo-Datenbank. Sie finden sie im Verzeichnis .../cgi-bin/acwww25/opac.

7.3.3.1 Konfigurationsbuchstabe $k1

Diese Variable spielt keine Rolle mehr. Der Wert wird nicht mehr in den Programmen benötigt.

7.3.3.2 Datenbankpfad $DBPfad

Tragen Sie hier den vollständigen Pfad zu Ihrer Datenbank ein. Er wird von acindex.pl für den Zugriff auf die Kurztiteldatei benötigt. Beachten Sie, dass unter Windows die Pfadtrenner '\' doppelt angegeben werden müssen.

Falls Sie jedoch acindex.net einsetzen, spielt diese Variable keine Rolle mehr, da der Zugriff auf die Kurztitel dort über avanti-Aufträge geregelt wird.

Vorgabe:

$DBPfad="c:\\avanti-w\\avdemo";
7.3.3.3 Datenbankname $DBName

Tragen Sie hier den wirklichen Namen Ihrer Datenbank (= Vorname der benutzten Indexparameterdatei) ein. Er wird ebenfalls von acindex.pl für den Zugriff auf die Kurztiteldatei benötigt.

Falls Sie jedoch acindex.net einsetzen, spielt diese Variable keine Rolle mehr, da der Zugriff auf die Kurztitel dort über avanti-Aufträge geregelt wird.

Vorgabe (Name der Demodatenbank avdemo):

$DBName="cat";
7.3.3.4 avanti-Nutzername $user und Passwort $passwd

Jeder avanti-Auftrag muss mit Nutzernamen und Passwort gekennzeichnet werden. Für jede Datenbank, die unter Windows bei avanti angemeldet wird, gibt es einen voreingestellten Benutzer opac mit dem Passwort OPAC. Ihm ist nur der lesende Zugriff auf die Datenbank erlaubt. Für unsere Zwecke genügt das ebenfalls. Deshalb die Voreinstellung:

$user="opac";               # Nutzername
$passwd="opac";             # Password
 
7.3.3.5 Die Parameterdateien für die Ausgabe der Datensätze (%Parameterdateien)

Die Zahl der möglichen Ausgabeformate ist nur durch die Zahl der bereitgestellten Parameterdateien begrenzt. Jedoch muss es mindestens eine Parameterdatei geben. Bei den Angaben zu den Parameterdateien muss man sich an bestimmte Regeln halten:

  • Die Voreinstellung für die Anzeige bekommt den Schlüssel DEFAULT. Alle weiteren Schlüssel sollen in Kleinbuchstaben geschrieben sein. Sie können aber beliebig gewählt werden.
    Der Grund für die Regel ist, das das Anzeigeprogramm regsrch.pl die Liste der möglichen Ausgabeformate in sortierter Reihenfolge ausgibt, wobei die Schlüssel von %Parameterdateien alphabetisch sortiert werden. Es gilt dabei die ASCII-Wertigkeit der Buchstaben. Die Voreinstellung erscheint zuerst, weil Großbuchstaben vor Kleinbuchstaben sortiert werden.
  • Die Werte bestehen aus zwei Teilen, die untereinander durch '|' (das Pipe-Zeichen) zu trennen sind. Der erste Teil ist eine kurze Umschreibung für das was die Anzeigeparameterdatei leistet. Er wird von regsrch.pl in der Auswahlliste ausgegeben. Der zweite Teil ist der vollständige Name der zu verwendenden Parameterdatei.

Aus diesen Angaben erzeugt dann regsrch.pl ggf. eine Auswahl für andere Anzeigformate.

Vorgabe:

%Parameterdateien = (
    'DEFAULT', 'Standardanzeige|d-html.apr',
    'allegro', 'allegro-Internformat (a.cfg)|e-1.apr',
);
7.3.3.6 Sortierung der Anzeige ($SortChoice und %Sortierung)

Wenn das Suchergebnis aus mehreren Datensätzen besteht, sollte sie für die Anzeige nach einem sinnvollen Kriterium sortiert sein. Prinzipiell gibt es dafür zwei Möglichkeiten:

  1. Sortierung durch avanti anhand der Kurztitel, die zu den Sätzen gehören ($SortChoice="kurztitel";) und
  2. Vorbereitung der Sortierung nach beliebigen Kriterien, die durch eine Sortierparameterdatei zusammengestellt werden ($SortChoice="sortierfile";)

Man kann für eine Datenbank nur eine von beiden Methoden benutzen.

Die erste Möglichkeit ist in der Raktionszeit schneller und damit generell zu empfehlen. Sie muss sogar eingesetzt werden, wenn Schnittstellenprogramme und avanti nicht auf derselben Maschine laufen. Wenn die Kurztitelzeile geschickt aufgebaut ist, kann man schon sehr viele Sortierungen anbieten. So gibt es bei der Demodatenbank, die ja auf dem Standardschema beruht, die Möglichkeiten der Sortierung nach

  • Titel
  • erstem Verfasser
  • Erscheinungsjahr
  • Signatur

Die Sortierung lässt sich jeweils auf- oder absteigend einstellen. Das Zusammenstellen der auszugebenden Titel, Sortieren und Erzeugen der Ausgabe kann avanti in einem Auftrag erledigen.

Die zweite Möglichkeit bietet u.U. mehr Flexibiblität bei der Sortierung, ist aber komplizierter einzurichten. Sie dauert in der Ausführung länger, weil zwei avanti-Aufträge notwendig sind, und eine Zwischendatei geschrieben werden muss. Zudem funktioniert sie nur, wenn avanti und Schnittstellenprogramme auf demselben Rechner arbeiten oder auf dasselbe Verzeichnis zugreifen können.

Zunächst müssen Sie die notwendigen Sortierparameterdateien erstellen. Das Ergebnis der Ausgabe mit so einer Datei muss die Datensätze in einem Format liefern, dass sie sortiert werden können. Dieses Format ist dasselbe, was bei der Standardlistenproduktion eingesetzt wird. Nähere Informationen dazu finden Sie im Systemhandbuch unter dem Thema Listenproduktion und am Ende des Kapitels über die Parametrierung. Die erzeugten Daten werden vom Programm regsrch.pl sortiert und müssen dann in eine Datei geschrieben werden, auf die avanti lesend zugreifen kann. Insbesondere unter UNIX muss bei dieser Methode gewährleistet sein, dass zum einen regsrch.pl unter einem Nutzerkonto läuft, das unterhalb von .../cgi-bin/acwww25Schreibrechte hat, weil dort nämlich die Zwischendateien angelegt werden. Zum anderen muß gesichert sein, dass avanti diese Dateien auch lesen darf. In einem zweiten Auftrag liest avanti dann die sortierten Daten ein und gibt das für die Ausgabe formatierte Ergebnis an regsrch.pl zurück.

Nicht nur von der Methodik her ist diese Variante langsamer, sondern sie erfordert auch mehr Programmieraufwand.

$SortChoice="kurztitel";
if($SortChoice eq "kurztitel")
{
    %Sortierung = (
        'DEFAULT',      'nach Erscheinungsjahr (absteigend)|d 58',
        'erschjahr',    'nach Erscheinungsjahr (aufsteigend)|a 58',
        'verfauf',      'nach Verfasser (aufsteigend)|a 45',
        'verfab',       'nach Verfasser (absteigend)|d 45',
        'titelauf',     'nach Titel (aufsteigend)|a 1',
        'titelab',      'nach Titel (absteigend)|d 1',
        'znosort',      'keine Sortierung|a -1',
    );
}
else{
  %Sortierung = (
    'DEFAULT',      'nach Verfasser / Jahr|s-verfj.apr',
    'erschjahr',    'nach Erscheinungsjahr|s-ejahr.apr',
    'verftitel',    'nach Verfasser / Titel|s-pt.apr',
    'titel',        'nach Titel|s-titel.apr',
    'znosort',      'keine Sortierung|s-nosort.apr',
    );
}
7.3.3.7 Codierung von Sonderzeichen in der Ausgabe (%Codierung)

Wenn in den Ergebnissen Sonderzeichen wie Umlaute etc. zu erwarten sind, kann man das Ergebnis mit unterschiedlichen Codierungen anbieten. Wie bei den Parameterdateien gilt aber auch hier, dass es mindestens eine Parameterdatei geben muss. Die Regeln für den Aufbau der Variablen sind dieselben wie bei %Parameterdateien.

Vorgabe:

%Codierung = (
    'DEFAULT',  'HTML-Codierung|p-html.apt',
    'ansi',     'ANSI-Codierung|p-ansi.apt',
    'dos',      'DOS-Codierung|p-dos.apt',
);
7.3.3.8 Datenbankname für Überschriften ($DatenbankName)

Hier sollten Sie eine kurze, aber sprechende Bezeichnung eingeben. Dieser Wert wird auf den einzelnen Bildschirmen als Überschrift ausgegeben. Daher müssen Sonderzeichen in HTML-Codierung eingegeben werden. Sie haben hier auch die Möglichkeit, den Namen als Link zu gestalten, bei dessen Aktivierung eine andere Seite erscheint.

Vorgabe:

$DatenbankName = "Demo";
7.3.3.9 Pfad der datenbankspezifischen Hilfsseiten ($HilfsseitenPfad)

Einige Links auf Hilfeseiten werden vom Programm automatisch erzeugt. Der Pfad zu diesen Seiten variiert von Datenbank zu Datenbank oder sollte es zumindest. In $HilfsseitenPfad trägt man diesen Pfad ein. Er ist relativ zum Hauptverzeichnis für die normalen HTML-Seiten anzugeben. Dort müssen dann aber auch die entsprechenden Seiten zu finden sein.

Zur Zeit wird diese Angabe nur von maske.pl benutzt, um einen Link auf die Hilfeseite maske.htm zu erzeugen.

Vorgabe:

$HilfsseitenPfad = '/acwww25/opac';
7.3.3.10 Links auf andere Seiten (%AndereDBs)

Trotz des Namens der Variablen, kann man hier Links angeben, die auf beliebiege andere Seiten verweisen. Wenn diese Variable nicht leer ist, erscheinen die aufgeführten Verweise am Ende jedes Bildschirms. Wie aus der Vorgabe unten zu ersehen ist, muss ein Link vollständig angegeben werden.

Vorgabe:

%AndereDBs = (
    'zk',   '<a href="/cgi-bin/maske.pl?db=zk">[Katalog der Institute]</A>',
    'zd',   '<a href="/cgi-bin/maske.pl?db=zd">[Zeitschriftendienst des Deutschen Bibliotheksinstituts]</A>',
);
 
7.3.3.11 Namen der Register für Überschriften (%RegisterHilfe)

Jeder Bildschirm mit einem Ausschnitt aus einem Register erhält als Überschrift den Namen dieses Registers, wobei er als Link ausgebildet sein sollte. Dieser Link verzweigt bei Aktivierung auf eine für das Register spezifische Hilfe. Diese Variable sollte für jedes angebotene Register einen Eintrag enthalten.

Die Variable ist ein dictionary mit bestimmten Werten als Schlüssel:

  • für die normalen Register gelten die Werte '1' bis '9'; sie sind jeweils als Strings anzugeben.
  • allg verweist auf eine allgemeine Hilfeseite, die einen Überblick über den prinzipellen Aufbau der Register geben sollte.
  • benutzung verweist auf eine Stelle, die erläutert, wie die Register zu benutzen sind.
  • expandiert enthält einen Link auf die Hilfe zum expandierten Register. Dieser erscheint nur, wenn ein Register expandiert angezeigt wird.

Generell gilt hier, dass es egal ist, ob man jeden Link auf verschiedene Seiten zeigen lässt, oder auf unterschiedliche Abschnitte ein und derselben Datei. Historisch gewachsen ist die Aufteilung in verschiedene Seiten, wobei es für jedes Register jeweils eine Seite und für die allgemeinen Bemerkungen eine eigene Seite gibt. Vorbild waren die Hilfsbildschirme der DOS-Distribution.

Vorgabe:

%RegisterHilfe = (
    '1', '<A HREF="/acwww25/opac/hreg1.html">Namen von Personen</A>',
    '2', '<A HREF="/acwww25/opac/hreg2.html">Körperschaften</A>',
    '3', '<A HREF="/acwww25/opac/hreg3.html">Wörter (Titel- und Schlagwörter)</A>',
    '4', '<A HREF="/acwww25/opac/hreg4.html">Buchtitel (Sonderabteilung K : Kongresse)</A>',
    '5', '<A HREF="/acwww25/opac/hreg5.html">Zeitschriften und Reihen (Serientitel ; Bandnummer)</A>',
    '6', '<A HREF="/acwww25/opac/hreg6.html">Verlage (Name,Erscheinungsjahr)</A>',
    '7', '<A HREF="/acwww25/opac/hreg7.html">Sachgruppen (mit Sonderabteilungen G und H)</A>',
    '8', '<A HREF="/acwww25/opac/hreg8.html">Signaturen (insbes. Lesesaal-Standorte)</A>',
    '9', '<A HREF="/acwww25/opac/hreg9.html">ISBN  (mit \'i\' davor, also z.B. i3-512-02341)</A>',
    'allg', '<A HREF="/acwww25/opac/hreg.html">[Allgemeine Informationen zu den Registern]</A>',
    'benutzung', '<A HREF="/acwww25/opac/hreg.html#ALLGINFO">[Wie benutze ich das Register?]</A>',
    'expandiert', '<A HREF="/acwww25/opac/hreg.html#EXPANDIERT">[Wie benutze ich das expandierte Register?]</A>',
);
7.3.3.12 Namen der Register für Anzeigezwecke (%RegisterAnzeige)

Der Aufbau dieser Variablen ist ähnlich wie der von %RegisterHilfe. Hier werden nur die Registerüberschriften nochmal für einfache Anzeigezwecke angegeben. Die Hinweise auf allgemeine Abschnitte fehlen.

Vorgabe:

%RegisterAnzeige = (
    '1', 'Namen von Personen',
    '2', 'Körperschaften',
    '3', 'Wörter (Titel- und Schlagwörter)',
    '4', 'Buchtitel (Sonderabteilung K : Kongresse)',
    '5', 'Zeitschriften und Reihen (Serientitel ; Bandnummer)',
    '6', 'Verlage (Name,Erscheinungsjahr)',
    '7', 'Sachgruppen (mit Sonderabteilungen G und H)',
    '8', 'Signaturen (insbes. Lesesaal-Standorte)',
    '9', 'ISBN  (mit \'i\' davor, also z.B. i3-512-02341)',
);
7.3.3.13 Namen der Register fuer die Registerauswahl in den Suchmasken (@RegisterPullDown)

In der Suchmaske wählt man das anzuzeigende Register über ein Dropdown-Menü aus. Der Inhalt dieses Menüs wird aus dieser Variablen erzeugt. Sie ist ein einfache Liste.

Vorgabe:

@RegisterPullDown = (
    '1 Namen von Personen',
    '2 Körperschaften',
    '3 Wörter (Titel- und Schlagwörter)',
    '4 Buchtitel (Sonderabteilung K : Kongresse)',
    '5 Zeitschriften und Reihen (Serientitel ; Bandnummer)',
    '6 Verlage (Name,Erscheinungsjahr)',
    '7 Sachgruppen (mit Sonderabteilungen G und H)',
    '8 Signaturen (insbes. Lesesaal-Standorte)',
    '9 ISBN  (mit \'i\' davor, also z.B. i3-512-02341)',
);
7.3.3.14 Suche über logische Kombinationen ($logischeKombinationen)

Wenn die durch maske.pl automatisch generierte Suchmaske auch Eingabefelder für die Suche nach mehreren Aspekten anbieten soll, muss diese Variable auf 1 gesetzt werden. Wenn das der Fall ist, müssen auch die im folgenden aufgeführten Variablen belegt sein.

Vorgabe:

$logischeKombinationen = 1;
 
7.3.3.15 Name der Variablen fuer die Suchmaske (@MaskenVariable)

Jedes Feld der Suchmaske muss einen eigenen Namen haben. Die Schreibweise ist dabei egal. Auch die Benennung ist beliebig. Empfohlen wird jedoch, die Namen 'sprechend' zu wählen. In den nachfolgend beschriebenen Variablen %VarRegister und %VarInputDef müssen die Schlüssel dann jeweils diesen Namen entsprechen. Auch darf es dort nur soviele Einträge geben, wie hier Variablennamen definiert werden!

Vorgabe:

@MaskenVariable = (
    'pers',             # fuer Suche nach Person in Register 1
    'tit1',             # erstes Stichwort (Register 3)
    'tit2',             # zweites Stichwort (Register 3)
    'tit3',             # drittes Stichwort (Register 3)
);
 
7.3.3.16 Zuordnung der Variablen zu den Registern der Datenbank (%VarRegister)

Aus den Eingaben in den Feldern der Suchmaske wird für avanti ein find-Befehl zusammengesetzt. Dazu muss das Programm wissen, in welchem Register der Datenbank es mit welchem Suchbegriff suchen soll. Die Zuordnung der Eingabefelder zu einzelnen Registern wird in %VarRegister festgelegt. Die Kürzel für die Register entnimmt man der Indexparameterdatei der Datenbank. Es ist die sogenannte I-Tabelle, die man meistens am Ende der Datei findet. Sollten die Registerdefinition dort fehlen, muss man sie anlegen. Näheres dazu finden Sie im Systemhandbuch Kap. 10.2.1.3.

Die Schlüssel dieses dictionary müssen mit den Vorgaben in @MaskenVariable übereinstimmen.

Vorgabe:

%VarRegister = (
    'pers', 'PER',
    'tit1', 'TIT',
    'tit2', 'TIT',
    'tit3', 'TIT',
);
 
7.3.3.17 Definition der Eingabefelder der Suchmaske (%VarInputDef)

Die Felder der Suchmaske werden automatisch generiert. Sie haben alle denselben Aufbau: Sie benötigen einen Prompt, damit der Benutzer weiß, was er wo einzutragen hat, ein Eingabefeld, dessen Länge festgelegt werden muss und eine Angabe über eine Hilfeseite zu diesem Feld. Der Prompt wird als Link aufgebaut, so dass man bei einem Klick darauf auf eine Hilfeseite zu diesem Eingabefeld kommt.

Der Wert zu jedem Schlüssel besteht aus einer Zeichenkette. Diese ist in Unterfelder unterteilt, wobei die Felder durch das Pipe-Symbol ('|') voneinander getrennt werden. Es muss immer dieselbe Anzahl felder geben:

  1. Länge des sichtbaren Eingabefeldes in Zeichen. Eine ganze Zahl
  2. Maximale Eingabelänge des Feldes. Eine ganze Zahl. Dieser Wert kann größer sein als die Länge des sichtbaren Feldes.
  3. Pfad und Name der Hilfeseite zu diesem Feld relativ zum Dokumentenhauptverzeichnis (document root) des Webservers. Man kann für jedes Feld auf dieselbe Datei verweisen und innerhalb dieser Datei ein Lesezeichen anspringen.
  4. Prompttext. Bezeichnung des Feldes, damit der Benutzer weiß, was er in das Feld eintragen kann.

Die Schlüssel dieses dictionary müssen mit den Vorgaben in @MaskenVariable übereinstimmen.

Vorgabe:

%VarInputDef = (
    'pers', '30|50|/acwww25/opac/acautor.html|Name einer Person',
    'tit1', '30|50|/acwww25/opac/actitel.html|1. Titelstichwort',
    'tit2', '30|50|/acwww25/opac/actitel.html|2. Titelstichwort',
    'tit3', '30|50|/acwww25/opac/actitel.html|3. Titelstichwort',
);
7.3.3.18 Schalter Kurztitelindex ($stl)

Tragen Sie hier die Länge der Kurztitelzeilen ein, falls die Datenbank über ein Kurztitelregister verfügt. Ansonsten tragen Sie bitte 0 (Null) ein. Abhängig von diesem Wert kann man die Registeranzeige expandieren oder nicht. Die Länge der Kurztitelzeile finden Sie in der Indexparameterdatei als Befehl i0

Vorgabe:

$stl = 72;

7.3.4 Unterprogramme in dbinfo.pl

Es gibt in der Datei dbinfo.pl nur ein Unterprogramm: sub PrintErgebnis. Diese Routine gibt das Ergebnis einer Recherche für die Titelanzeige aus. In der Vorgabe ist sie ganz einfach gehalten:

sub PrintErgebnis
{
    local ( $ErgebnisDatei ) = @_;      # Parameter uebernehmen
    print "<pre>\n";
    print $ErgebnisDatei;
    print "</pre>\n";
    return 1;
}

Dieser Routine wird nur ein Parameter übergeben, nämlich das Downloadergebnis in einer Zeichenkette. Wie das genau aussieht hängt natürlich von der zur Anzeige benutzten Parameterdatei ab. Die Vorgabe d-html.apr erzeugt aber eine recht einfache Ausgabe, die der der DOS-Programme entspricht. Alle Zeilen sind durch die Codes CR LF (ASCII 13 10) voneinander getrennt. Die Routine PrintErgebnis macht nun nichts weiter als vor der Titelausgabe und danach das Preformatted-Tag auszugeben.

Sie können diese Routine natürlich nach Belieben erweitern und verändern. Sie benötigen dazu aber solide Perl- und ggf. noch Parametrierkenntnisse.

Selbstverständlich ist es möglich, in der Datei dbinfo.pl weitere Variablen und Unterprogramme unterzubringen, wenn sie für die Anbindung einer Datenbank benötigt werden. Sie müssen die Verwendung dieser Ergänzungen aber in den Hauptprogrammen selbst hinzufügen.

 

7.4 Parametrierung

Hier kann man sich nach Herzenslust austoben. Mitgeliefert wird eine für die Anzeige geeignete Parameterdatei d-html.apr. Sie gehört zum Standardschema und ist eine leicht abgewandelte d-1.apr. Sie finden sie im Datenbankverzeichnis avanti-w/avdemo der Demodatenbank.

Änderungen zur d-1.apr:

  • Die Köpfe (ak-Zeilen) sind deaktiviert, weil diese Datei nur eine Anzeige pro Titelsatz erzeugen soll. Daher geht es gleich bei #-@ los. Von dort wird zu den einzelnen Satztypen verzweigt. Vor jedem Satz wird direkt das <hr>-Tag (horizontal rule) ausgegeben.
  • Die Zeichenumcodierung sollte mit dx=1 eingeschaltet werden, weil die Umlaute und Sonderzeichen in den wenigsten Fällen schon in korrekter HTML-Codierung in der Datenbank vorliegen dürften. Für Umcodierungszwecke gibt es z.B. die Datei p-html.apt, die geeignete Tabellen enthält.
  • Die Zahl der Zeilen pro Karte wird mit fl=0 auf 'unendlich' gesetzt.
  • Umlaute in indirekten Prä- und Postfixen müssen in HTML-Ersatzdarstellungen umgewandelt werden, weil die nicht der Umcodierung durch die p- oder q-Tabellen unterliegen. Dasselbe gilt für die Zwischenteile.
  • Wenn Sie verschiedene Codierungen für Ihre Ausgabe anbieten wollen, darf das Einbinden einer Umcodiertabelle (.apt-Datei) nicht mit dem t-Befehl in der Parameterdatei direkt geschehen. Das Nachladen dieser Dateien geschieht über den avanti-Befehl xport t in der Jobdatei abhängig von den eingestellten Optionen beim Aufruf von regsrch.pl.
 

7.5 Suchmasken ohne maske.pl

In der Standardversion der Schnittstelle sorgt das Programm maske.pl für die Erzeugung der Suchmaske. Es ist aber nicht zwingend notwendig, die Suchmaske damit zu erzeugen. Statische HTML-Seiten sind genauso geeignet. Von denen aus werden dann die anderen Programme des Paketes angesprochen. In der Gestaltung dieser Seiten sind Sie vollständig frei, nur die an die Programme übergebenen Parameter müssen stimmen. Das beste ist, Sie erzeugen sich zunächst mit maske.pl eine Referenzseite und speichern sie ab. Am HTML-Code können Sie dann studieren, welche Variablen und Parameter die einzelnen Programme benötigen.


Anfang zurueck weiter Ende
| Eine WWW-Schnittstelle für allegro-Datenbanken | Eigenschaften der Schnittstelle | Notwendige Komponenten | Installation für den schnellen Einstieg | Die Anbindung einer allegro-Datenbank an das WWW schematisch | Grundsätzliche Hinweise zur Installation | acwww25 - die Schnittstelle | Der Standardeinstieg für den WWW-Benutzer | Abschließende Hinweise
UB Braunschweig
Copyright © UB Braunschweig


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