ActiveUpdate-Homepage :: Dokumentation :: Dateien :: Perl-Sourcecode-Dateien

In diesem Abschnitt beschreiben wir,

Funktionsnamen wird hier zu Kennzeichnung generell das & vorangestellt, obwohl es zum Aufruf nicht zwingend notwendig ist.

Hauptdatei (normalerweise ActiveUpdate.pl)

Durch Aufruf dieser Datei wird ActiveUpdate gestartet. Ruft die Funktion &main aus der Datei main.pl auf. Enthaltene Funktionen:

&EinstellungenLesen

Liest die Programmeinstellungen aus einer Datei ein.

Erwartet als Argument den absoluten Pfad zur Datei, die die Einstellungen enthält.

Gibt nichts zurück. Sollte es aber die Einstellungsdatei nicht geöffnet werden können, wird &Ende aufgerufen.

&GetEinstellung

Liefert den Wert einer bestimmten Einstellung zurück. Beendet das Programm mit &Ende, wenn der Wert der geforderten Einstellung nicht gefunden werden kann.

Erwartet als Argument den Namen der Einstellung.

Liefert den Wert der Einstellung zurück.

&WriteToFile

Öffnet eine Datei und überschreibt ihren Inhalt.

Als erstes Argument wird ein String erwartet, mit dem der bisherige Dateiinhalt überschrieben werden soll. Als zweites Argument wird der absolute Pfad zu der Datei erwartet.

Liefert nichts zurück, ruft aber &Ende auf, falls die Datei nicht zum Schreiben geöffnet oder geschlossen werden konnte.

&LoadMod

Lädt ein ActiveUpdate-Modul.

Erwartet als erstes Argument den Namen der Moduldatei (ohne Pfad).

Liefert nichts zurück, ruft jedoch &Ende auf, wenn es Probleme beim Laden gab

&Ende

Beendet ActiveUpdate mit exit. Vorher wird - sofern aktiv - die Datenbank-Zugangssperre aufgehoben und die Fehlermeldung an STDOUT ausgegeben.

Erwartet als erstes Argument die auszugebende Fehlermeldung.

Gibt nichts zurück.

ac_cache.pl

In dieser Datei stehen die grundlegenden Routinen zur Verwaltung des dynamischen Caches. Alle nachfolgend beschriebenen Funktionen dieser Datei stehen im Package "cache".

&AddCache

Cacht einen Aufruf von ActiveUpdate (es fügt also einen Eintrag zur Cache-Datenbank hinzu).

Erwartet zwei Argumente: das erste Argument enthält die CGI-Argumente, mit denen ActiveUpdate aufgerufen wurde, das zweite das, was ActiveUpdate als Reaktion auf diese CGI-Argumente ausgegeben hat.

Gibt 1 zurück, wenn es keine Probleme gab. Ruft &Ende auf, wenn es Probleme mit dem Dateizugriff gab.

&GiveCache

Holt sich einen vorher gecachten Aufruf aus der Datenbank.

Erwartet als Argument die verwendeten CGI-Argumente.

Gibt 0 zurück, wenn kein passender Eintrag im Cache gefunden wurde, ansonsten gibt es den passenden Output zurück.

&DeleteCache

Leert den internen Cache.

Erwartet keine Argumente.

Gibt nichts zurück. &Ende wird aufgerufen, wenn es Probleme mit dem Dateizugriff gab.

arguments.pl

In dieser Datei werden die CGI-Argumente verarbeitet.

&STDIN_Einlesen

Liest die CGI-Argumente ein. Manche dieser Argumente werden schon in dieser Funktion modifiziert.

Erwartet keine Argumente.

Gibt nichts zurück.

autoren.pl

Enthält die Funktionen, die zum Umgang mit Autoren-Datensätzen benötigt werden.

&AutorenAuslesen

Liest die Autoren-Datensätze aus.

Erwartet keine Argumente.

Gibt nichts zurück. Ruft &Ende auf, wenn es Probleme beim Zugriff auf Autorendatei gab.

&AuthorOK

Überprüft, ob Login und Passwort zusammenpassen.

Erwartet als erstes Argument den Login, als zweites das Passwort.

Gibt 1 zurück, wenn Login und Passwort zusammenpassen, sonst wird 0 zurückgegeben.

&GetAuthoreMail

Gibt die Mail-Adresse eines Autors zurück.

Erwartet als erstes Argument den Login des Autors, dessen eMail-Adresse man haben möchte.

Gibt die eMail-Adresse zurück.

&GetAuthorNickName

Gibt den Nickname eines Autors zurück.

Erwartet als Argument den Login des Autors, dessen Nickname gesucht wird

Gibt den Nickname zurück.

&GetAuthorPW

Gibt das Passwort eines Autors zurück.

Erwartet als Argument den Login des Autors, dessen Passwort man haben möchte.

Gibt das Passwort zurück.

&GetAuthorLevel

Gibt das Level eines Autors zurück.

Erwartet als Argument den Login des Autors, dessen Level gesucht wird.

Gibt das Level zurück.

&GetAuthorMode

Entspricht &GetAuthorLevel

&GetAutorDSatz

Gibt die Datensatz-Nummer eines Autor-Datensatzes zurück.

Erwartet als Argument den Login des Autors, dessen Datensatznummer gesucht wird.

Gibt die Datensatz-Nummer zurück.

comments.pl

Enthält Versions-History, Versionsnummer und sonstige Kommentare.

database.pl

Enthält Funktionen zur Verwaltung der Datenbank.

&WriteDataBase

Schreibt die komplette Datenbank auf die Festplatte, davon ausgehend, dass sich die grundlegende Struktur nicht geändert hat.

Erwartet keine Argumente.

Gibt nichts zurück, ruft jedoch &Ende auf, wenn es Probleme gibt.

&WriteSpecialDataBase

Modifiziert die Struktur der Datenbank.

Erwartet als Argument eine Referenz auf ein Array, das alle Datenfelder enthält, die auch nach der Modifikation noch enthalten sein sollen (DDF-Datenfelder werden dabei nicht berücksichtigt. DDF-Datenfelder sind diese, die in der ddf.dat definiert werden)

Gibt nichts zurück.Ruft jedoch &Ende auf, wenn es zu Problemen kam. Ansonsten wird eine Erfolgsmeldung mit &Ausgabe ausgegeben.

&DataBaseAccessSet

Schreibt in die Datenbank-Lock-Datei.

Erwartet als erstes Argument das, was in die Datei geschrieben werden soll (einen String, der "OK" enthält, wenn die Datenbank nicht entsperrt werden soll. Ansonsten alles andere außer einem Nullstring, wenn die Datenbank gesperrt werden soll).

Gibt nichts zurück. Ruft &Ende auf, wenn es Probleme gab.

&DataBaseAccessOK

Aktiviert eine Schleife, die erst verlassen wird, wenn die Datenbank entsperrt ist. Hier gibt es einen Timeout-Wert (zur Zeit 10 Sekunden), der verhindert, dass man in eine Endlosschleife gerät.

Erwartet keine Argumente.

Gibt nichts zurück, bei Datei-Zugriffsproblemen oder einem Timeout wird &Ende aufgerufen.

diverses.pl

Enthält sonstige Funktionen.

&Ersetze

Ersetzt einen String in einem String durch einen String.

Erwartet als erstes Argument den String, in dem gesucht werden soll, als zweites Argument den String, der ersetzt werden soll, und als drittes Argument den String, durch den der Suchstring ersetzt wird.

Gibt das erste Argument (natürlich durch die Ersetzungen modifiziert) zurück.

&UnixToDate

Macht aus einem Unix-Zeitindex ein Datum (Format: TT.MM.JJJJ).

Erwartet als Argument den Zeitindex.

Gibt das ermittelte Datum zurück.

&UnixToTime

Macht aus einem Unix-Zeitindex eine Uhrzeit (Format: MM:HH).

Erwartet als Argument den Zeitindex

Gibt die ermittelte Uhrzeit zurück.

&TageProMonat

Gibt die Anzahl der Tage eines anzugebenden Monats zurück.

Erwartet als erstes Argument den Monat (als Zahl, 1=Januar, 12=Dezember) und als zweites das Jahr, in dem der Monat liegt (Format: JJJJ).

Gibt die Zahl der Tage zurück.

&Schaltjahr

Findet heraus, ob ein Jahr ein Schaltjahr ist.

Erwartet als Argument eine Jahreszahl.

Gibt 1 zurück, wenn das angegebene Jahr ein Schaltjahr ist, ansonsten wird 0 zurückgegeben.

&DateToUnix

Macht aus einem Datum (Format TT.MM.JJJJ, Jahreszahl muss zwischen 1900 und 2100 liegen) einen Unix-Zeitindex.

Erwartet als Argument das Datum.

Gibt den Zeitindex zurück.

&StartField

Findet heraus, ob ein bestimmtes Datenfeld (davon ausgehend, dass die Datenfelder fortlaufend durchnumeriert wurden) der Beginn eines Datensatzes ist.

Erwartet als Argument die Nummer des Datenfeldes.

Gibt 1 zurück, wenn das Datenfeld ein Datensatzbeginn ist, ansonsten 0.

&InWhichField

Findet heraus, zu welchem Datensatz ein Datenfeld (wie oben: durchlaufend durchnumeriert) gehört.

Erwartet als Argument die Datenfeldnummer.

Gibt die zugehörige Datensatznummer zurück.

&Modal

Gibt den Rest einer ganzzahligen Division zurück.

Erwartet als erstes Argument den Dividendnd als zweites Argument den Divisor.

Gibt den Rest der ganzzahligen Division zurück.

&ManReplace

Entspricht &Ersetze.

language.pl

ActiveUpdate verwendet teilweise Dateien, in denen bestimmte Ausgaben gespeichert werden. Das soll eine eventuelle Übersetzung erleichtern.

&LanguageLesen

Liest Meldungsdatei aus.

Erwartet als erstes Argument den absoluten Pfad zur Meldungsdatei.

Gibt nichts zurück, bricht bei Problemen aber mit &Ende ab.

&GetLanguage

Holt einen Eintrag aus der Meldungsdatei.

Erwartet als erstes Argument den Namen der gesuchten Meldung.

Gibt den Text der gesuchten Meldung zurück. Bricht mit &Ende ab, wenn der Name der Meldung nicht gefunden wurde.

logfile.pl

Enthält eine Funktion, mit der Logfiles geschrieben werden.

&Logfile

Schreibt einen Eintrag in die ActiveUpdate-Logfile-Datei.

Erwartet keine Argumente

Gibt nichts zurück, bricht aber mit &Ende ab, falls die Logfile-Datei nicht geschrieben werden kann.

main.pl

Die eigentliche Hauptdatei von ActiveUpdate. Enthält die grundlegenden Funktionen wie Zugriff auf die Datenbank (sowohl lesend als auch schreibend).

&main

Die Hauptroutine von ActiveUpdate. Öffnet u.a. die Datenbank und kümmert sich um die Hauptarbeit. Lädt sämtliche anderen Module nach. Erledigt die Verwaltung des Caches.

Erwartet keine Argumente.

Liefert nichts zurück. Unter bestimmten Umständen wird jedoch &Ende aufgerufen, z.B. bei Problemen mit dem Datenbankzugriff.

matchings.pl

Enthält die Routinen, die verwendet werden, um festzustellen, ob ein Datensatz ausgegeben werden soll oder nicht.

&MatchDataSet

Vergleicht Datensatznummern.

Erwartet als erstes Argument die Datensatznummer, die gerade aktuell ist, und als zweites die Datensatznummer, die für eine Ausgabe erforderlich ist.

Sind beide Datensatznummern identisch, wird 1 ausgegeben, ansonsten 0.

&MatchFullText

Stellt anhand einer Volltextsuche fest, ob ein Datensatz ausgegeben werden soll.

Erwartet als erstes Argument die Nummer des Datensatzes, der durchsucht werden soll. Als zweites Argument wird der String erwartet, nach dem gesucht werden soll. Optional kann als drittes Argument noch angegeben werden, dass die Suche auf ein Datenfeld begrenzt werden soll (einfach Datenfeldnamen angeben).

War die Volltextsuche erfolgreich, so wird 1 zurückgegeben, andernfalls 0.

&MatchSpecific

Prüft, ob ein bestimmtes Datenfeld eines bestimmten Datensatzes einem bestimmten String entspricht.

Erwartet als erstes Argument die Nummer des Datensatzes, auf den die Suche bezogen wird. Als zweites Argument sollte das angegeben werden, wonach gesucht wird. Das dritte Argument ist der Name des Datenfeldes, dessen Inhalt dem Suchstring entsprechen muss.

Gibt entweder 1 (erfolgreicher Vergleich) oder 0 (gescheiterter Vergleich) zurück

&MatchStartTilStop

Prüft, ob das zu einem Datensatz gehörende Datum in einem bestimmten Zeitraum liegt.

Erwartet: als erstes Argument die Nummer des Datensatzes, der für den Vergleich genommen werden soll. Als zweites Argument den Beginn der Zeitspanne (Format: TT.MM.JJJJ). Als drittes Argument das Ende der Zeitspanne (Format: TT.MM.JJJJ). Schließlich als viertes Argument den Namen des Datenfeldes, das für die Speicherung des Datums verwendet wird (normalerweise "Unixtime")

Gibt entweder 1 (Datum liegt in der angegebenen Zeitspanne) oder 0 (Datum liegt außerhalb der Zeitspanne) zurück.

&MatchLastDays

Prüft, ob das zu einem Datensatz gehörende Datum in den letzten Tagen liegt.

Erwartet: als erstes Argument die Nummer des Datensatzes, der hier verwendet wird. Als zweites Argument die maximale Anzahl von Tagen, die das Datensatz-Datum hinter dem aktuellen Datum liegen darf. Als drittes Argument den Namen des Datenfeldes, in dem das Datensatz-Datum gespeichert ist.

Gibt entweder 1 (Datensatz-Datum liegt nicht mehr als die zulässige Anzahl von Tagen hinter dem aktuellen Datum) oder 0 (Vergleich gescheitert) zurück.

&MatchAlphabetical

Prüft, ob ein bestimmtes Datenfeld mit einem bestimmten Buchstaben beginnt.

Erwartet als erstes Argument eine Datensatznummer. Als zweites Argument eine Liste von Buchstaben (Liste bedeutet hier, dass die Buchstaben einfach aneinander gereiht werden, ohne Trennzeichen), und als drittes Argument wird der Datenfeldname erwartet, dessen Inhalt auf zugelassene Anfangsbuchstaben hin untersucht wird.

Gibt entweder 1 (Der Inhalt des zu überprüfenden Datenfeldes beginnt mit einem der zugelassenen Buchstaben) oder 0 (Der Inhalt des zu überprüfenden Datenfeldes beginnt nicht mit einem der zugelassenen Buchstaben) zurück.

output.pl

Enthält Funktionen, die zur Ausgabe der Datensätze benötigt werden.

&OutPut

Gibt einen bestimmten Datensatz aus.

Erwartet die Nummer des Datensatzes, der ausgegeben werden soll, als erstes Argument, und den absoluten Pfad zur Template-Datei als zweites Argument.

Es wird nichts zurückgegeben, sollten jedoch Datei-Lesefehler auftreten, wird das Programm mit &Ende beendet.

&OutPut_Ende

Routine, die verwendet wird, um nach der Ausgabe der Datensätze noch bestimmte Dinge zu erledigen, z.B. das Around-Template zu vervollständigen oder den Cache zu ergänzen.

Es werden keine Argumente erwartet.

Es wird nichts zurückgegeben.

&Ausgabe

Kümmert sich um die richtige Verarbeitung auszugebender Daten.

Erwartet das, was ausgegeben werden soll, als erstes Argument.

Gibt nichts zurück, gibt aber u.U. direkt etwas aus.

&PutnRound

Fügt die normalen Ausgaben in das Around-Template ein.

Erwartet den absoluten Pfad zum Around-Template als Argument.

Gibt nichts zurück, ruft aber &Ende auf, wenn es zu Problemen mit dem Öffnen des Around-Templates kommt.

&GiveFirstPut / &GiveLastPut

Diese beiden Funktionen geben jeweils den Anfang bzw. das Ende eines Around-Templates zurück. Als "Mitte", die bestimmt, was von welcher Funktion ausgegeben wird, ist eine Verkettung der beiden Strings festgelegt, die in der einstellungen.dat unter "Suffixfieldname" und "AroundTempl" (normalerweise kommt dabei im Endeffekt der String "ACUP4MAINTEXT" heraus) stehen.

Erwartet wird jeweils der absolute Pfad zum Around-Template.

Zurückgegeben werden jeweils der Anfang (von &GiveFirstPut) und das Ende (von &GiveLastPut) des Around-Templates.

&GetReplaceTemplate

Erzeugt ein Formular für Änderungen an der Datenbank.

Es werden keine Argumente erwartet.

Zurückgegeben wird ein absoluter Dateipfad, unter dem dieses automatisch erzeugte Formular gespeichert ist.

&GetPostenTemplate

Erzeugt ein Formular für das Hinzufügen eines Datensatzes.

Es werden keine Argumente erwartet.

Zurückgegeben wird ein absoluter Dateipfad, unter dem dieses automatisch erzeugte Formular gespeichert ist.

plugins.pl

Diese Datei enthält eine Routine zum Auslesen der PlugIns-Datei.

&PlugInsAuslesen

Diese Funktion liest die Datei aus, in der Informationen zu installierten PlugIns gespeichert sind.

Es werden keine Argumente erwartet.

Zurückgegeben wird nichts, event. aber ein &Ende aufgerufen, wenn es Probleme mit dem Lesen der Datei gibt.

rechte.pl

In dieser Datei sind Klassen gespeichert, die den Zugriff auf die Rechtedatei erlauben.

Package "datenfelder"

&add

Dient zum Hinzufügen eines neuen Datenfeldes.

Erwartet (in dieser Reihenfolge) einen Namen, einen Beschreibungstext und die Einstellungen (als String).

Gibt nichts zurück.

&get

Gibt ein Objekt der Klasse "datenfeld" zurück, das bereits existiert.

Erwartet als Argument den Namen des zurückzugebenden Objekt.

Zurückgegeben wird das gefundene Objekt.

&addfile

Liest eine ganze Rechtedatei in den Speicher.

Erwartet den absoluten Pfad zu dieser Datei.

Gibt nichts zurück, ruft aber &Ende auf, wenn es Probleme gab.

&new

Dient als Konstruktor.

Es werden keine Argumente erwartet.

Zurückgegeben wird ein Objekt der Klasse "datenfelder".

Package "datenfeld"

Hinweis: um die nachfolgenden Texte zu verstehen, muss man auch die Struktur der Rechte-Datei verstehen, denn diese wird durch die Klasse "datenfeld" abgebildet.

&new

Dient als Konstruktor. Gibt ein Objekt der Klasse "datenfeld" zurück.

&getname

Liefert den Namen des Objekts zurück.

&gettext

Gibt den Beschreibungstext des Objekts zurück.

&getoptions

Liefert das "options"-Feld des aktuellen Objekts zurück. Erwartet als erstes Argument eine Angabe von "Field"

&getauthors

Liefert das "authors"-Feld des aktuellen Objekts zurück. Erwartet als erstes Argument eine Angabe von "Field"

&getnewadms

Liefert das "newsadmins"-Feld des aktuellen Objekts zurück. Erwartet als erstes Argument eine Angabe von "Field"

&getadmins

Liefert das "admins"-Feld des aktuellen Objekts zurück. Erwartet als erstes Argument eine Angabe von "Field"

&getsize

Liefert das "getsize"-Feld des aktuellen Objekts zurück. Erwartet als erstes Argument eine Angabe von "Field"

&getfrombegin

Liefert das "getfrombegin"-Feld des aktuellen Objekts zurück. Erwartet als erstes Argument eine Angabe von "Field"

&getbeforeinsert

Liefert das "beforeinsert"-Feld des aktuellen Objekts zurück. Erwartet als erstes Argument eine Angabe von "Field"

&getafterinsert

Liefert das "afterinsert"-Feld des aktuellen Objekts zurück. Erwartet als erstes Argument eine Angabe von "Field"

screenshots.pl

In dieser Datei stehen Funktionen zum Erzeugen von Screenshot-Code.

&GiveMeScrShotPreview

Erzeugt eine Preview-Version eines Screenshots.

Als Argumente erwartet werden (in dieser Reihenfolge) die URL zum Preview-Bild, die URL zum Full Res-Bild und der Untertext.

Der erzeugte Code wird zurückgegeben, bei Problemen wird ein &Ende aufgerufen.

&GiveMeScrShot

Erzeugt eine FullRes-Ansicht eines Screenshots.

Als Argumente erwartet werden (in dieser Reihenfolge) die URL zum Full Res-Bild und der Untertext.

Der erzeugte Code wird zurückgegeben, bei Problemen wird ein &Ende aufgerufen.

&GiveMeReiheTemplate

Das Template für eine Reihe von Screenshot-Preview-Ansichten wird gelesen und zurückgegeben.

Es werden keine Argumente erwartet.

Zurückgegeben wird ein String, der dem Inhalt der Template-Datei entspricht.

sorters.pl

Diese Datei enthält zwei Mini-Subs mit besonderen Sortierverfahren.

ssi.pl

Diese Datei enthält eine Funktion, die SSI parsen kann.

&WorkSSI

Diese Funktion parst Server Side Includes (leider noch nicht alle).

Als Argument erwartet wird eine Variable, deren Inhalt als zu parsendes Dokument interpretiert wird.

Zurückgegeben wird der Inhalt der am Anfang übergebenen Variable, nur dass diesmal alle unterstützten SSI-Angaben geparst wurden. Probleme mit dem Öffnen von Dateien werden mit einem &Ende quittiert.

vorschau.pl

In dieser Datei befinden sich die Routinen, mit denen die Vorschau erzeugt wird.

&Vorschau

Die Aufgabe dieser Funktion ist schnell beschrieben: sie nimmt die über ein Eingabeformular gemachten Eingaben und schreibt sie temporär in einen neuen Datenbank-Datensatz. Dann sorgt sie dafür, dass dieser temporäre Datensatz ausgegeben wird.

Es werden keine Argumente erwartet.

Es wird nichts zurückgegeben.