[Allegro] aLF : PHPAC-Selbstbedienung fuer Verlaengerung
Bernhard Eversberg
ev at biblio.tu-bs.de
Mo Jan 12 08:55:06 CET 2009
aLF : Schema der WebOPAC-Selbstbedienung
========================================
Bereitstellung erfolgt noch heute.
Zusammen mit der Beispielseite:
http://www.biblio.tu-bs.de/db/demo2/konto.htm
kann man sich schon mal ein Bild machen.
Vorbereitung:
-------------
in a99 X a-oinit
--> Datei alfsys.dat mit allen Systemdaten
auf dem DbDir, für a-overl.job (s.u.)
u.a. Kalenderdaten, Leserklassen, Mat.Typen
Dies muß wiederholt werden, wenn an den Systemsdaten etwas geändert
wird, spätestens zum Beginn eines neuen Jahres! Sinn ist, daß avanti
nicht bei jedem kleinen Vorgang sich die Systemdatensätze erst
selber laden muß (a99 braucht das nur bei Sitzungsbeginn zu tun)
Alle nachfolgend genannten Dateien müssen zu den PHP-Skripten der
betreffenden Datenbank.
Start für Endnutzer:
--------------------
a-okonto.htm
Enthält JavaScript fuer AJAX-Funktion und <div>...</div>, in das
hinein die AJAX-Ergebnisse geschrieben werden: receivE()
Tip: Link zu a-okonto.htm in die Katalog-Startseite einbauen
Diese Seite bleibt die ganze Zeit stehen, sie wird per AJAX-
Methodik durch Ergebnisse der Aktionen verändert.
Eingabe von Lesernummer und -paßwort startet dann a-okonto.php:
a-okonto.php
Nimmt die Eingaben entgegen und reicht sie weiter an avanti, und
zwar an
a-okonto.job [s. Beispielbild]
Dieser liefert die Kontodaten, fertig als HTM-Tabelle aufbereitet
Jede Kontozeile hat ein <div>... fuer das Ergebnis einer Aktion.
Außerdem zwei Funktionen:
Alle Entleihungen verlängern / Paßwort ändern
Parameter: utf.apr nur zur Ausgabe von Daten in UTF-8
(Diese Datei muß auf das DbDir oder ProgDir)
In der Kontotabelle gibt es drei Arten von Angaben, je nach
Status des betr. Exemplars:
Verlängern : Aktion v
Die komplizerteste Aktion wegen der Fristberechnung u.a.
Wirkungsweise entspricht der des aLF-FLEXes a-verl.flx
Mehr zu den Einzelheiten siehe unten.
Vormerkung freigeben : Aktion a
Der Vormerksatz wird einfach gelöscht
Verzicht auf Abholung: Aktion w
Dann wird Datum $W in #9DH auf gestern gesetzt
und #9DH$u mit Präfix @z versehen,
damit der Satz im Konto nicht mehr auftaucht
Damit und mit der Satznummer wird dann per AJAX aufgerufen:
a-overl.php
Übernimmt die Daten (Satznummer #urN und Aktionscode #urA)
Startet den avanti-Job:
a-overl.job
Liest die Systemdaten alfsys.dat (s.o.)
Führt die Aktion durch
Ausgabe geht zurück zu a-okonto.htm und wird in die betr. Zeile
eingetragen (per JavaScript: receivE() )
Einiges zur Wirkungsweise der Verlängerung:
-- Die Fristberechnung und die Bedingungsprüfungen entsprechen genau
der Verfahrensweise im Normalbetrieb von aLF, insbes.:
-- Die Frist wird immer vom aktuellen Tag aus gerechnet, also nicht
auf die bei Ausleihe gesetzte Frist aufaddiert, d.h. es ist
zwecklos, schon gleich nach Ausleihe verlängern zu wollen. Aber
-- Falls die Verlängerung eine kürzere Frist als die schon gewährte
ergäbe, wird sie nicht ausgeführt. Darauf wird hingewiesen.
-- Mehrfachauslösung am selben Tag wird verhindert, obwohl jedesmal
derselbe Termin herauskäme - es wären aber doch unnötige
Datenzugriffe. Es erfolgt kein Hinweis - der Leser sieht ja,
daß sich nichts ändert und kann sich sein Teil denken.
-- Bei Vorliegen von Gebuehrenforderungen und bei abgelaufener
Mitgliedschaft wird das Verlaengerbegehren abgewiesen.
Man _könnte_ zwar fordern, daß die Kontoliste schon gleich auswiese,
welche Entleihungen überhaupt verlängerbar wären und mit welchem Rück-
gabedatum. Das jedoch wäre erheblich aufwendiger und mit viel mehr
Datenzugriffen verbunden. Oftmals wird der Nutzer ja nur schnell mal
eben schauen wollen, was er denn momentan so alles hat.
Mehr Informationen über die Mailingliste Allegro