cts projects and software logo

Installation / Update

Installation

Die Installation ist sehr einfach gehalten und beschränkt sich auf wenige Installationsschritte:

  • Entpacken des Installations-Archivs
    Kopieren Sie den Inhalt des Installations-Archivs in ein Verzeichnis auf Ihrem Webserver, z.B. 'classad'.
  • Vergeben Sie die notwendigen Verzeichnisberechtigungen
    Die Verzeichnisse /usergraphics und /cache im Installationsverzeichnis benötigen Schreib-/Leserechte für das Skript, ebenfalls benötigt das Verzeichnis /config diese Rechte. Vergeben Sie diese mittels Ihres FTP-Programms oder direkt auf der Shell mittels chmod-Befehl. Beachten Sie, dass die Vergabe von Verzeichnisberechtigungen in der Regel nur auf Linux-Servern notwendig ist.
  • Konfigurieren Sie die Datenbank
    ClassAd benötigt eine Datenbank zur Speicherung von Anzeigen, Rubrikenstrukturen und weiteren Daten. Falls die Datenbank von Ihrem Webspace-Provider zur Verfügung gestellt und konfiguriert wird, informieren Sie sich über die notwendigen Einstellungen, um auf diese zuzugreifen (Server-Adresse oder -IP, Datenbankname, -benutzer und -passwort). Sind Sie selber der Administrator der Datenbank, so legen Sie eine neue Datenbank an und vergeben Benutzerrechte.
  • Führen Sie das Installationskript aus
    Rufen Sie in Ihrem Browser die Datei "admin_install.php" auf, je nach Installationspfad z.B. "http://127.0.0.1/classad/admin_install.php". Das Installationsprogramm prüft Ihre GD-Installation (Grafikfunktionen) und die Verzeichnisse auf korrekte Berechtigungen (siehe Schritt 2).
    Trage Sie hier die Datenbankzugriffs-Parameter ein und wählen Sie aus, ob die Datenbanktabellen angelegt werden sollen. Geben Sie weiterhin Administratorkennung und -passwort ein, welche Ihnen später Zugriff auf die Administrationsoberfläche gewährt.
    Die notwendigen Datenbankarbeiten und Konfigurationsänderungen sollten nun durchgeführt werden und mit einer lauffähigen Version abschliessen.
  • Ausführen der Administrationsoberfläche und Konfiguration
    Rufen Sie nun die Datei "admin.php" aus dem Installationspfad in Ihrem Browser auf. Geben Sie zur Authentifizierung die Administratorkennung und -passwort ein, welche Sie bei der Installation festgelegt haben. Wählen SIe nun "ClassAd konfigurieren" und ändern Sie die Konfiguration nach Ihren Bedürfnissen ab. Weitere Informationen zur Installation und den notwendigen Anpassungen beim Start finden Sie hier.

!ACHTUNG: Nach erfolgreicher Installation ist es wichtig, dass die Dateien "admin_install.php" und "admin_update_*.php" gelöscht oder auf nicht-ausführbar gesetzt werden (chmod 000), um eine ungewollte Datenbankmanipulation durch Benutzer zu vermeiden.

Insbesondere bei Unix-basierten Systemen sollten Sie darauf achten, dass das Skript auf die Verzeichnisse /usergraphics und /cache Schreib-/Leserechte hat (s. Bugtracking ). Ebenfalls sollten Sie auf diesen Webservern die Grafikkonvertierung der GD-Library auf Version 1.xx zurückschalten (s. Bugtracking )

Updates von Version 4.0 auf 4.5

Das Update von Version 4.0 auf 4.5 benötigt Anpassungen an der Konfigurationsdatei und ist somit ein wenig umfangreicher: Folgende Schritte sind auszuführen:

  • Sichern!
    Sichern Sie unbedingt die komplette Verzeichnisstruktur Ihres ClassAd-Installationsverzeichnisses sowie die komplette ClassAd-Datenbank. Stellen Sie sicher, dass die Sicherungen erfolgreich waren
  • Installieren der neuen Version
    Kopieren Sie die ClassAd 4.5-Distributionsdateien in ein neues Verzeichnis; führen Sie aber NICHT die Installationsroutine aus (admin_install.php)
  • Kopieren von Dateien aus der alten Version
    Kopieren Sie das Verzeichnis /usergraphics vom alten zum neuen Installationsverzeichnis. Kopieren Sie außerdem die Datei /inc/config.inc.php aus der alten zur neuen Version.
  • Editieren der Konfigurationsdatei
    Editieren Sie die Datei /inc/config.inc.php im neuen Installationsverzeichnis. Fügen Sie unterhalb des letzen Eintrags der Datei und vor dem abschließenden "?>" folgende Zeile ein, welche notwendig ist, damit das neue Konfigurationsmodell installiert werden kann:
$GLOBALS['CONFIG'] = $GLOBALS;
  • Ausführen des Updates
    Führen Sie die Update-Routine im Browser aus (admin_update40.php). Prüfen Sie, ob die richtige Datenbank ausgewählt ist und starten Sie das Update. Die Installation erledigt folgende Aufgaben:
    • Anlegen neuer Tabellen
    • Konvertieren der bereits vorhandenen Anzeigenbilder in die neue Speicherform
    • Anlegen einer Standard-Konfiguration und einer aktiven konfiguration inkl. Übernahme von sicherheitsrelevanten Einstellungen der vorherigen Installation

    Das Update sollte nun erfolgreich ausgeführt werden.

Noch einige Anmerkungen zur Übernahme von Templates:

Von Ihnen manuell veränderte Templates sollten in aller Regel übernommen werden können. Trotzdem empfehlen wir, dass Sie die Übernahme nur nach vorherigem Backup durchführen und jedes Template auf Vollständigkeit und Funktion getestet werden sollte.

Updates von äteren Versionen

  • Update von Version 3.5 auf Version 4.0
    Wenn Sie bereits ClassAd 3.5 einsetzen, können Sie die dort eingetragenen Benutzer und Anzeigen in die aktuelle Version 4.0 übernehmen. Rufen Sie hierzu das Skript admin_update_35.php auf, prüfen Sie die Datenbankparameter und klicken auf "Datenbank installieren". Die Datenbankveränderungen werden nun automatisch durchgeführt. Atlernativ zum Update-Skript kann der mitgelieferte SQL-Dump verwendet werden, der Ihnen -wenn Sie mit MySQL vertraut sind- mehr Möglichkeiten zum manuellen Eingriff bietet.

    Achtung: Wie vor jedem Update sollte auch beim Update auf Version 4.0 unbedingt die Datenbank vor Ausführung gesichert werden. Ebenso sollten Sie eine Sicherheitskopie von allen ClassAd-Dateien anlegen, so dass Ihnen eine Rückkehr zur alten Version möglich wird.

    Achtung: ClassAd 4.0 ändert radikal alle Template- und Programmdateien. Weiterhin werden Sprach- und Designdateien grundlegend geändert, so dass in den meisten Fällen ein Neudesign notwendig wird.

    Achtung: Wie auch bei der Neuinstallation ist es notwendig, dass die Daten "admin_install.php" und "admin_update_*.php" gelöscht oder auf nicht-ausführbar gesetzt werden.
  • Update von Version 3.0 auf Version 4.0
    Für ein Update von ClassAd Version 3.0 auf Version 4.0 gilt gleiches Vorgehen (natürlich auch zugehörige Anmerkungen), wie beim Update von Version 3.5 auf 4.0. Einzig das von Ihnen aufzurufende Skript ändert sich in "admin_update_30.php". Nochmals hingewiesen sei auf die dringende Notwendigkeit eines Backups vor der Ausführung.
  • Update von Version 2.0 auf Version 3.0
    Vor einem Update ist es dringend angeraten alle Dateien, sowie die Datenbank der älteren Version zu sichern, um bei eventuellen Problemen mit dem Update keine Daten zu verlieren. Sollten Sie keine komplette Sicherung vornehmen, so sollten aber zumindest die Datei inc/config.inc.php sichern, da diese bei der Installation überschrieben wird und Ihre aktuelle Konfiguration erhält. Sollten Sie Änderungen am Stylesheet vorgenommen haben, so sichern Sie auch Ihre Stylesheetdatei (Verzeichnis: /styles/???.css ).

    Achtung: Von der Version 2.0 zur Version 3.0 haben sich -bedingt durch die grosse Anzahl an neuen Funktionen- viele Änderungen in den Templates ergeben, sodass für Version 1.0 bzw. 2.0 geänderte Webtemplates zu einem Teil nicht mehr zu verwenden sind.

    Gehen Sie wie folgt vor:
    1.) Enpacken Sie die Dateien aus dem Distributionspaket in das Verzeichnis Ihrer ClassAd 2.0-Installation.
    2.) Editieren Sie nun in gewohnter Manier die Datei inc/config.inc.php . Wichtig ist hier die Datenbanksektion. Stimmen Sie diese mit Ihrer gesicherten Konfigurationsdatei ab.
    3.) Starten Sie dann durch Aufruf im Browser die Datei updatesql30.php . Die Datei nimmt die notwendigen Veränderungen an der Datenbank und Ihren Tabellen vor.
    4.) Nun sollte das Update erfolgreich abgeschlossen sein. Bei Problemen nehmen Sie bitte mit uns Kontakt auf!
  • Update von 2.0 -> 2.01
    Um von Version 2.0 auf die Version 2.01 upzudaten, kopieren Sie die Dateien inc/baseclass.inc.php, newad.php and editmessage.php in Ihr Installationsverzeichnis. Kopieren Sie dann die Zeile, die mit $LY_ALLOW_UPSIZING=false; beginnt aus der Datei inc/config.inc.php in Ihre originale Konfigurationsdatei. Die Datenbank und Ihr Inhalt bleibt vom Update unberührt.

Dateienübersicht

CTS ClassAd sollte im Distributionspaket folgende Dateien enthalten:

Datei Funktion
admin.php Anmeldung und Hauptmenü des Administrators
admin_addcategory.php Fügt dem Markt neue Rubriken hinzu (Administrator)
admin_config.php Konfigurationsprogramm von ClassAd (Administrator)
admin_dbmaintain.php Skript zur Datenbankwartung (Administrator)
admin_definefields.php Definieren von freien Datenbankfeldern (Administrator)
admin_deleteoutdated.php Verwaltung und löschen abgelaufener Anzeigen (Administrator)

admin_editcategory.php

Löschen und Editieren von Rubriken in der Datenbank (Administrator)
admin_editmessage.php Verwalten, editieren und löschen von Anzeigen in der Datenbank (Administrator)
admin_editmessagedetails.php Editieren einer einzelnen Anzeige (Administrator)
admin_edituser.php Verwalten, editieren und löschen von Benutzern (Administrator)
admin_edituserdetails.php Editieren von Benutzerdaten (Administrator)
admin_install.php Installationsprogramm
Achtung: Sollte nach erfolgreicher Installtion gelöscht oder deaktiviert werden (chmod 000)
admin_logout.php Logout für den Administrator (Administrator)
admin_phpinfo.php Zeigt PHP-Informationen an (Administrator)
admin_picturerelease.php Freischalten von Anzeigenbildern (Administrator)
admin_showlog.php Zeigt aufgezeichnete Ereignisse an / Logbuch (Administrator)
admin_statistics.php Zeigt Markt-Statistiken (Administrator)
admin_update_[30|35|40] Installationsprogramm für Datenbank-Updates; die Zahl gibt jeweils die Version an, die upgedatet werden soll. Nähere Informationen finden Sie bei Installation/Update.
Achtung: Sollte nach erfolgreichem Update gelöscht oder deaktiviert werden (chmod 000)
contact.php Allgemeines Kontaktscript
contactad.php Kontakt bzgl. einer eingetragenen Anzeige
cyclicmain.php Skript, welches allgemeine Wartungsaufgaben ausführt
Achtung: Dieses Skript sollte als Cronjob (oder in anderer Form regelmäßig) gestartet werden
editmessageuser.php Bearbeiten einer Anzeigen durch den besitzenden Benutzer (Benutzer)
generalterms.php Anzeige der AGB
imprint.php Anzeige des Impressum
index.php Hauptrubrikenübersicht / Startseite
lostpassword.php Skript für die Benutzer, die Ihr Passwort vergessen haben
newad.php Neue Anzeige aufgeben
newuser.php Als neuer Benutzer registrieren
releasesubmit.php Anzeige freischalten mittels Email-Code (Administrator ohne Login)
releaseuser.php Freischalten / Aktivierung eines Benutzers, der im Opt-in-Verfahren registriert wurde mittels Email-Code (Benutzer ohne Anmeldung)
rss.php Anzeige der RSS-Informationen
rssfeed.php Generiert den XML-RSS-Feed aus den übergebenen Variablen
searchads.php Suche nach Anzeigen
searchextend.php Erweiterte Suche nach Anzeigen
showad.php Anzeige von Anzeigen (kann per GET-Übergabe aufgerufen werden zur Verlinkung)
showadpictures.php Anzeige von Anzeigenbildern
showads.php Anzeige von Rubriken und der darin enthaltenen Anzeigen
tellad.php Weiterempfehlen von Anzeigen
userlogin.php Benutzer-Anmeldung
userlogout.php Benutzer-Abmeldung
usermymessages.php Anzeigenübersicht für Benutzer mit Editiermöglichkeit (Benutzer)
usermysettings.php Bearbeitung von Benutzerdaten (Benutzer)
/inc Verzeichnis: Enthält die benötigten Programmteile
/js Verzeichnis: Javascript-Dateien
/languages Verzeichnis: Enthält die Sprachdateien für die verfügbaren Sprachen
/styles Verzeichnis: CSS-Dateien
/emailtemplates Verzeichnis: Enthält Email-Templates
/templates Verzeichnis: Enthält HTML-Templates (untergeordnet nach Sprachen)
/graphics Verzeichnis: Alle Grafiken, die zum Ablauf des Skriptes benötigt werden sollten in diesen Ordner kopiert werden. Dieses gilt im besonderen auch für Rubrikenlogos.
/catlogos Verzeichnis: Enthält die Grafiken, die als Rubriken-Logos genutzt werden sollen
/usergraphics

Verzeichnis: Upgeloadete Grafikdateien von Benutzern werden hier gespeichert. Bei Upload eine Bildes werden vom newad.php Script zwei Dateien angelegt - Ein Vorschaudatei und eine Datei, die bei Ansicht der Anzeige angezeigt wird. Löschen Sie niemals Dateien manuell aus diesem Verzeichnis, da die Dateinamen in eindeutige Bezeichnungen umgewandelt werden!
!Achtung: PHP benötigt Schreib-/Leserechte.

/doc Verzeichnis: Enthält diese Dokumentation (untergeordnet nach Sprachen)
/cache Verzeichnis: Enthält die Cache-Dateien des Verzeichnis-Cache
!Achtung: PHP benötigt Schreib-/Leserechte.

Cronjob einrichten

Für notwendige Wartungsarbeiten sollte die Datei cyclicmain.php in regelmäßige Abständen automatisiert aufgerufen werden. Auf Unix-Systemen stehen Ihnen hierfür in der Regel sog. Cronjobs zur verfügung, die eine Art Terminplaner darstellen. Wie genau ein solcher Termin erstellt wird, sagt Ihnen Ihr Webspaceprovider.

!Achtung: Unter Umständen sind zur Einbindung als Cronjob Änderungen am Skript erforderlich, wie z.B. die Angabe einer Shell. Auch zu diesem Thema sollte Ihnen Ihr Provider Auskunft geben können.

Die Zeitabstände zwischen zwei Läufen ist stark von der Nutzung des Marktes abhängig, wie z.B. die Anzahl der neuerstellten Anzeigen. Generell sollte der Zeitabstand zwischen 1 Stunde und 1 Tag liegen.

Folgende Aktionen werden vom Wartungsskript durchgeführt:

  • Löschung und Neuerstellung des Rubrikenbaum-Cache
  • Löschung der Unterrubriken-Caches
  • Aktualisierung der Rubrikenstatistiken (Anzeigenzähler, Last-In-Daten etc.)
  • Löschung von nicht aktivierten Benutzern
  • Löschung von abgelaufenen Anzeigen

Cronjob beim Provider nicht verfügbar

Sollten Sie bei Ihrem Provider keine Möglichkeit haben einen Cronjob zu definieren, so können Sie haben Sie bei ClassAd eine Alternative. Setzen Sie in der Konfigurationsdatei inc/config.inc.php den Parameter $CRONJOB auf FALSE. Diese Lösung ist aber auf jeden Fall die schlechtere Möglichkeit, da einem zufälligen Benutzer die Rechnenzeit aufgebürdet wird, die Wartungsarbeiten auszuführen.

Technisch wird der periodische Ablauf dadurch gesteuert, dass innerhalb des Startseitenskripts ein Zufallsgenerator erzeugt wird, der jeden 1000sten (Standard) Abruf die Wartungsarbeiten durchführt. Die Wahrscheinlichkeit / Häufigkeit kann in der Konfiguraionsdatei durch den Parameter $MAINTAIN_PROBABILITY gesetzt werden und entspricht der Häufigkeit 1 : x (einmal in x Aufrufen) - je größer der Wert, desto seltener wird die Wartung durchgeführt.

RSS-Feed

Standardmäßig stellt ClassAd einen RSS-Feed zur Verfügung, der auf RSS in der Version 2.0 basiert. Im aktuellen Entwicklungsstand steht dieser Service allen Nutzern ohne weitere Authentifizierung zur Verfügung.

Erreichbar ist der Feed unter http://<IHRE.DOMAIN>/rssfeed.php.

Mit diesem Standardaufruf werden die zuletzt eingetragenen Anzeigen aus dem Markt in einer abgekürzten Version (max. 200 Zeichen pro Anzeige) zurückgeliefert. Die Anzahl der maximal berücksichtigten Datensätze können Sie in der Konfigurationsdatei inc/config.inc.php setzen - der entsprechende Parameter heisst RSS_MAX_COUNT.

In der Konfigurationsdatei sollten Sie auch die weiteren mit RSS_* beginnenden Parameter setzten. Sie legen fest, welchen Titel und welche Beschreibung Ihr RSS-Feed zurückliefern soll (z.B. "Mein kleiner Anzeigenfeed"). Wetierhin kann der RSS_TTL-Parameter gesetzt werden, er gibt vor, in welchem zeitlichen Abstand ein Newsreader Ihren Feed neu anfordert. Beachten Sie, dass dieses nur ein Vorschlag ist und keine verbindliche Reload-Sperre. Der Wert wird in Minuten angegeben.

Ein von ClassAd erzeugter RSS-kompatibler Feed sieht folgendermaßen aus:

<? xml version="1.0" ?>
< rss version =" 2.0 " >
   < channel > 
        < title > Mein kleiner Anzeigenmarkt </ title > 
        < link > http://www.xyz.com/classifieds/index.php </ link > 
        < description > Die neusten Anzeigen von www.xyz.de. Waren aller Art! </ description > 
        < generator > cts classAd 4.00 - www.projects-and-software.de </ generator > 
        < ttl > 60 </ ttl >
        < item > 
           < title > Das ist ein Anzeigentitel </ title > 
           < link > http://www.xyz.com/classifieds/showad.php?adid=24 </ link > 
           < description > Das ist der Anzeigentext </ description > 
           < pubDate > Tue, 10 Oct 2006 22:47:51 +0200 </ pubDate > 
     </ item >
  </channel >
</rss>

Speziellen RSS-Feed zur Verfügung stellen

Einer der Haupteinsatzmöglichkeiten von RSS zählt auch die lose Kopplung von Webseiten. So könnten Sie, z.B. als Anbieter eines Anzeigenmarktes für Haustiere, durchaus davon profitieren, wenn ein Anbieter einer Website für Katzen Ihre neusten Anzeigen einbindet und so Benutzer auf Ihre Webseite leitet.

Aus dem oben genannten Beispiel ergibt sich aber ein Problem: Die Katzen-Website möchte nur Anzeigen für Katzen anzeigen - keine von anderen Haustieren wie Hunden, Meerscheinchen oder Schlangen. Zur Lösung dieses Problems stellt ClassAd einen speziellen RSS-Feed zur Verfügung. Aufgerufen wird dieser durch:

http://<IHRE.DOMAIN>/<VERZEICHNIS>/rssfeed.php?feed=category_latest&cat=17&count=10

Dieser RSS-Feed stellt dem Aufrufer die letzten 10 Anzeigen (vgl. "count"-Parameter) aus der Rubrik mit der ID 17 zur Verfügung. Nutzen Sie das erweiterte Rubrikenmodell, so werden auf die Rubriken berücksichtigt, die im Rubrikenbaum unterhalb der gewählten Rubrik angesiedelt sind.

Um im Beispiel zu bleiben, könnte die Rubrik 17 "Katzen" genannt sein und die Unterrubriken "Hauskatze", "Perserkatze" und "Siamkatze" enthalten. Der Anbieter der Katzen-Website würde nun die neusten 10 Anzeigen aus allen genannten Rubriken erhalten.

RSS-Feed - generelle Hinweise

Gerade bei der Einbindung eines RSS-Feed in eine andere Webseite kann es zur Performanceproblemen auf Ihrem Webserver kommen, wenn die Daten beim Aufrufenden nicht zwischengespeichert / gecacht werden.

Zur Lösung dieses Problems hat es sich als gute Lösung erwiesen, dass der Aufrufende die XML-Rückgabe des Feeds in einer Textdatei auf seinem Webserver speichert. Bei erneuter Nutzung des Feeds kann nun auf diese lokale XML-Datei zurückgegriffen werden - erst wenn die XML-Datei ein gewisses Alter überschritten hat, wir ein neuer Aufruf beim RSS-Server gestartet. Dieses Caching sollte relativ einfach erstellbar sein.

Nachfolgende Versionen von ClassAd werden ein System enthalten, welches permanente ungechachte Anfragen erkennt und abblockt.

Impressum | Datenschutz-Erklärung | AGB | Kontaktformular | ©2008 cts projects&software