[Allegro] Perl-Skrite für Avanti
Mentzel-Reuters
mentzel-reuters at freenet.de
Fr Mai 19 12:09:49 CEST 2006
Liebe Liste,
die Umstellung eines recht alten Avanti-Servers auf den aktuellen habe
ich jetzt abgeschlossen. Abgesehen von dem Problem POST/GET, von dem ja
schon einmal die Rede war (und das ich zwar nicht begreife, das mich
aber auch nicht stört: mit METHOD="GET" funktioniert erst einmal alles
bei mir), mußte ich an zwei Stellen in das Höppner'sche ALLEGRO.PL
massiv eingreifen. Mich wundert, daß das bisher entweder niemandem
genauso ging bzw. daß es nicht aufgefallen ist. Bin ich denn der
einzige, der auf der Grundlage dieser Skripte den Avanti-Server benutzt?
Oder sind es wieder die mysteriösen Sonderkonditionen meines Rechners,
die das alles verschulden?
Weiß jemand mehr?
Mit freundlichen Grüßen
Arno Mentzel-Reuters
_________________________________________
Hier die beiden Punkte:
(1) ALLEGRO.PL (Z. 393 im Originalskript, wie esmit dem aktuellen Avanti
geliefert wird): Um mit Hilfe von REGSRCH.PL die Kurztitelliste zu
öffnen, wird $Input übergeben, die Kurztitel werden geladen und mittels
SPLIT in Segmente zerlegt. Man findet diese Stelle leicht, wenn man nach
"foreach $Z" sucht. Der Trenner zwischen den Kurztiteln wird von
Höppner als Hexwert 7F kodiert. Unter meinem alten Avanti auf Xitami ist
das richtig. Im neuen System ist es der Hexwert CA (Ê). [[Darum, Herr
Berger, gab es bei Ihren Versuchen an unserem OPAC die leeren Kurztitel
- der Splitbefehl war wirkungslos, alle Kurztitel gerieten in einen
HTML-Tag <TD ...> hinein und blieben unsichtbar.]]
(2) ALLGERO.PL Z. 473 ff. wird das Holen der nächsten Seite bei der
Kurztitelanzeige geregelt. Die aktuelle Fassung von Z. 491ff lautet so:
if( $Command =~ /ende/i )
{
$Position = ($#nummern-1) - ( ($#nummern-1) % $maxKurztitel );
$Mitte = 1;
return;
}
Das funktioniert aber sehr schlecht; das Skript kann dabei in negative
Zahlen geraten und überhaupt vergessen, wo es ist. Der Apache reagiert
darauf sehr ungnädig, Xitami zwar nicht, aber eine gescheite
Funktionalität habe ich auch dort nicht erlebt. Nimmt man statt dessen
Höppners Version aus der Allegro.pl von ca. 1996, dann läuft es. Die
ging so:
if( $Command =~ /ende/i ) # alte Version
{
$Position = $#nummern + 1 - ( ( $#nummern + 1 ) % $maxKurzTitel );
$Mitte = 1;
return;
}
Mehr Informationen über die Mailingliste Allegro