Für die Webseite wurde ein ZMS-Standard-Templateset in Hinblick auf einige wenige Besonderheiten überarbeitet. Die Haupt-Navigation liefert zwei Ebenen aus: die erste Ebene dient zum Navigieren zwischen Hauptrubriken, und die zweite Ebene ermöglicht die Navigation innerhalb des Zeitschriften-Archivs.
Die Archvierung aller Zeitschriften-Artikel erfolgt letztlich in einer MySQL-Datenbank. Die Kommunikation übernehmen die beiden zentralen Speziellen Objekte (ArchivItem für Zeitschriften-Artikel und BuchItem für Buchempfehlungen).
Spezielles Objekt ArchivItem
Für die Aktuelle Ausgabe und Archiv wurde ein Spezielles Objekt ArchivItem entwickelt. Die Unterscheidung der beiden Varianten erfolgt durch die Zuweisung des Dokument-Typs Archiv bzw. Aktuelle Ausgabe.
Automatische Eingabe-Interface des Speziellen Objektes eines Artikels
Die Abstracts des jeweiligen Beitrags lassen sich durch anklicken des Titels auf- bzw. zuklappen
Für Textsuche innerhalb des Archivs wurde das Objekt Rubrik-Suche von R. Wollthan, www.zooling.de eingesetzt und an das Seiten-Design angepasst.
Das Archiv Item Objekt wurde für die Suchergebnisse so überarbeitet: die Abstracts, die das gesuchte Wort enthalten, werden aufgeklappt dargestellt und die Trefferworte farblich hervorgehoben.
Suchtreffer-Hervorhebungen
Mit Erscheinung einer neuen Ausgabe wird die vorherige in die Archiv-Rubrik kopiert und die Inhaltübersicht des Archivs wird aktualisiert. Dies geschieht mittels einer Schleife des ArchivItem-Objekts (Code-Ausschnitt folgt), die den Archiv-Inhalts mittels ZSQL-Methode Archiv_inhalt
in eine MySQL Datenbank überträgt und dort schließlich archiviert.
<dtml-call "REQUEST.set('jahr',getParentNode().getTitlealt(REQUEST))">
<dtml-call "REQUEST.set('Param','Drop1')"><dtml-call Archiv_inhalt>
<dtml-call "REQUEST.set('Param','Create1')"><dtml-call Archiv_inhalt>
<dtml-in "getNavElements(REQUEST,['ZMSCustom'])">
<dtml-let oItem="_['sequence-item']">
<dtml-if "oItem.getLevel()>2">
<dtml-in "getChildNodes(REQUEST)">
<dtml-let mItem="_['sequence-item']">
<dtml-if "mItem.meta_type in ['ZMSCustom']">
<dtml-let Id="id"
Autor="getObjProperty('Autor',REQUEST)"
Titel="getObjProperty('Titel',REQUEST)"
Link="oItem.getHref2IndexHtml(REQUEST)"
Seite="getObjProperty('Seite',REQUEST)">
<dtml-call "REQUEST.set('Param','Insert1')">
<dtml-call "Archiv_inhalt(Autor=Autor,
Titel=Titel,
Link=Link,
Id=Id,
Seite=Seite,
jahr=jahr)">
</dtml-let>
</dtml-if>
</dtml-let>
</dtml-in>
</dtml-if>
</dtml-let>
</dtml-in>
</dtml-if>
Code-Ausschnitt aus der Z SQL Methode Archiv_inhalt
<dtml-if "REQUEST.get('Param')=='Drop1'">
DROP Table IF EXISTS dmsv_archiv_<dtml-var jahr>
<dtml-elif "REQUEST.get('Param')=='Create1'">
CREATE TABLE IF NOT EXISTS dmsv_archiv_<dtml-var jahr>
(
ID_NR int(10),
Autor char(100),
Titel char(250),
Link char(250),
Id char(5),
Seite char(5),
Jahr char(5)
)
<dtml-elif "REQUEST.get('Param')=='Insert1'">
INSERT INTO dmsv_archiv_<dtml-var jahr> (Autor,Titel,Link,Id,Seite,Jahr)
VALUES(<dtml-sqlvar Autor type="string">,
<dtml-sqlvar Titel type="string">,
<dtml-sqlvar Link type="string">,
<dtml-sqlvar Id type="string">,
<dtml-sqlvar Seite type="string">,
<dtml-sqlvar jahr type="string">)
</dtml-if>
Das Skript Archiv_inhalt
wird durch den Aufruf der Inhalt-Seite mit einem definierten Parameter ausgeführt. Die Aktualisierungen der übrigen Inhalte wird durch den Webmaster mit der üblichen Redaktions-Umgebung durchgeführt.
Spezielles Objekt BuchItem
Für Rubrik die Bücher wurde ein Spezielles Objekt BuchItem entwickelt, das jeweils ein Buch mit den Bestell- und Inhaltsinformationen darstellt. Für Großansicht des Buches sorgt integriertes Bildobjekt, und durch Anklicken des Links Bestellung Online werden alle Buchdaten an das Bestellformular übergeben.
Automatisches Eingabe-Interface für Buch-Empfehlungen
Publizierte Ansicht der Buchempfehlung
Die Buch-Bestellungen, sowie Abo-Bestellungen werden in MySQL Datenbank gespeichert und dort über eine spezielle Software weiterbearbeitet.
Erstellt von: Alexander Matvijets
, erstellt am: 27.06.2008
,
zuletzt geändert: 10.05.2010