cts projects and software logo

ClassAd anpassen

Anpassen des Programmlayouts

Das Layout von ClassAd kann an die Bedürfnisse Ihre Webseite angepasst werden. Im Folgenden möchten wir Ihnen zeigen, an welchen Stellen Sie ein Customizing vornehmen können. Grundsätzlich sollten Sie sich aber vor Augen führen, dass dieses ohne ein Verständnis von HTML und CSS nicht möglich ist.

Templates / Vorlagendateien

ClassAd benutzt ein System vom Templates (HTML-Vorlagen), um die vom Benutzer angeforderten Seiten darzustellen. Grundsätzlich stellen Templates ein Gerüst dar, in das variable bzw. vom Skript generierte Daten an bestimmten Stellen eingefügt werden. Hier sind zwei Arten von Templates zu unterscheiden: HTML-Template und Email-Templates; dieser Abschnitt befasst sich mit Ersteren.

Grundgerüst von HTML-Templates

Die von ClassAd genutzten HTML-Templates haben eine Grundstruktur, die auf der Verwendung von <div>-Bereichen basiert. Diese Struktur macht ein tabellenloses Grund-Design der Webseiten möglich. Die Verwendung von <div>-Tags bietet sich an, da das Design im Gegensatz zum Tabellen-Layout besser (mittels CSS) erstellt werden kann. Natürlich können HTML-Templates und CSS-Dateien auch auf die Verwendung von tabellenbasierten Layouts umgearbeitet werden.

Dieses Grundgerüst ist im Auslieferungszustand wie folgt gebaut:

<div id="overall">
     <div id="headtitle">
*** TITEL BLOCK ***
</div>
<div id="headmenu">
*** OBERE MENUE-ZEILE ***
</div>
<div id="viewarea"> *** DARSTELLUNGSBEREICH DER SEITE ***
<div id="viewtitle">
*** TITEL DES DARSTELLUNGSBEREICHS
</div>
<div class="breadcrumb">
*** BREADCRUMB ***
</div>
<?php if(isset($strMessage) && !empty($strMessage)) { ?>
*** FALLWEISE ANZEIGE EINER NACHRICHT *** <?php } ?>
<div class="viewmain">

*** HAUPTANZEIGEBEREICH *** </div>
<div id="viewfooter"> *** FUSS DES DARSTELLUNGSBREICHS </div>
</div>
<div id="footer">
*** FUSSBEREICH DER SEITE ***
</div>
</div>

Modifizieren der Templates

Grundsätzlich ist ClassAd so gestaltet, dass ein Template durch "include" eingebunden und damit angezeigt wird. Vor der Anzeige werden durch das Programmskript alle notwendigen Variablen erzeugt, z.B. aufbereitete Tabellen oder einfach Textbausteine. Diese erzeugten Variablen werden mit PHP in den HTML-Text eingebunden <?php echo $strVariable; ?> ist beispielsweise ein solches Konstrukt.

Vorteil dieser Template-Verarbeitung ist die Geschwindigkeit, da PHP genau zu dem Zweck genutzt wird, zu dem es auch geschaffen wurde: Als HTML-Template-Engine. Nachteile bei diesem System ist die geringe Abstraktion des Template-Gedanken.

Die Templates selber können mit mit jedem beliebigen HTML-Editort editier werden (z.B. Macromedia Dreamweaver o.a.). Zu beachten ist, dass der HTML-Editor nicht ungewollt in die HTML-Struktur eingreift - wie z.B. Microsoft Word etc..

Sie finden die Templates im Unterordner /templates. Dort widerum verzweigen sich die Vorlagen nach den unterschiedlichen Sprachversionen.

In der Regel sind die Templates mit gleichem Namen wie die zugehörigen Programmskripte benannte - die Template-Namen sollten aus diesem Konsistenzgrund beibehalten werden.

Modifizieren der Stylesheets

Zur Platzierung und für das Design, der von ClassAd verwendeten Elemente, wird CSS genutzt. Diese Datei steuert u.a. das Fließverhalten der <div>-Elemente, die zur Seitenstrukturierung verwendet werden. Weiterhin Textgrößen, Farben, Ränder, Abstände, Hintergrund- und Elementdesign durch so genannte CSS-Attribute, die auf HTML-Elemente einwirken.

Die verwendete CSS-Datei finden Sie im Ordner /styles unter dem Namen classified.css. Sie können sich jederzeit neue CSS-Dateien erstellen - am besten durch Kopie der Originaldatei und Veränderung der Elementeigenschaften. Welche CSS-Datei verwendet wird bestimmt die Konfiguration mittels des Parameters "Verwendete Stylesheetdatei".

Falls Sie wenig Kenntnisse in CSS vorweisen können, so sollten Sie die Bearbeitung "am lebenden Objekt" vornehmen. Dieses erreichen Sie im Dreamweaver durch öffnen der Template-Datei und setzen der zu bearbeitenden Stylesheet-Datei. Hierfür bietet der Dreamweaver die Möglichkeit an, ein Stylesheet nur zur Design-Time zu verknüpfen - wodurch z.B. Probleme mit relativen Pfadangaben umgangen werden.

Beachte Sie, dass Änderungen am Stylesheet sich direkt und indirekt durch Vererbung auf andere Templates und Elemente auswirken kann. Diese "Seiteneffekte" sind in der Regel gewollt, aber oftmals auch störend. - z.B. wenn nur das Element auf einer bestimmten Seite eine Rahmen haben soll und nicht alle Elemente mit gleicher ID. Diese Probleme können in der Regel durch Änderungen im HTML-Quelltext der Templates behoben werden (z.B. durch Zuweisung einer neuen, eindeutigen ID) oder durch Verwendung von spezielleren CSS-Selektoren, die den Kontext des zu änderden Elements besser berücksichtigen. Letzter Möglichkeit ist die eindeutig besser Alternative, aber in gewissen Fällen nicht nutzbar.

Nutzer mit viel CSS-Erfahrung können die CSS-Datei direkt mit einem geeigneten Editor bearbeiten.

Weitere Informationen zu Thema CSS und zugehörigen Selektoren finden Sie im Internet.

Javascript, AJAX und dynamisches HTML

In zukünftigen Versionen wird ClassAd vermehrt auf Javascript-basierende Technologien wie z.B. AJAX und dynamische Seitenmodifikationen setzen. Hierfür wird eine AJAX-Schnittstelle zu wichtigen Daten geschaffen und gezielt Funktionen verbessert/vereinfacht.

Für Modifikationen ist es unter Umständen schon im Vorfeld interessant, auf welches Framework hierbei aufgesetzt wird. Nach intensiven Tests wurde aufgrund seiner geringen Größe, guten Erweiterbarkeit und seiner Funktionalität jQuery als Hilfsmittel ausgewählt. Sollten Sie also ClassAd-Erweiterungen planen, dann wäre es eine gute Wahl ebenfalls jQuery zu nutzen.

Anpassen der Sprachdateien

In der Auslieferungsversion stellt ClassAd 4.0 zwei Sprachfassungen zur Verfügung - Englisch und Deutsch.

Eine neue Sprachfassung zu erstellen stellt mit ClassAd kein Problem dar. Hier möchten wir Ihnen kurz die Punkte darstellen, die zu tun und zu beachten sind:

  • Beachten Sie, dass bei allen Datei- und Verzeichnisoperationen auf Unix-Systemen zwischen Gross- und Kleinschreibung unterschieden wird. Bei Umbennungen und Kopieroperationen sollte hierbei konsequent auf Konsistenz geachtet werden.
  • Kopieren Sie zunächst aus dem Ordner /templates eine Quell-Sprachfassung in einen neuen Ordner. Der Order sollte nach einem eindeutigen Sprachschlüssel benannt werden (z.B. GER für Deutsch, ESP für Spanisch, FR für Französisch u.s.w.). Alle Dateien dieses Ordners müssen nun übersetzt werden
  • Als nächstes wechseln Sie zum Ordner /languages. Nehmen Sie eine Quell-Sprachfassung, kopieren die Datei und benennen Sie in language.<Kurzzeichen der Sprachfassung>.php, also z.B. languages.ESP.php für eine spanische Sprachfassung. Diese Datei enthält alle Zeichenketten, die vom Programm genutzt werden. Die Zuordnung wird durch define-Anweisungen realisiert, d.h. nur der zweite Teil dieser darf übersetzt werden - der erste Teil muss unverändert bleiben ("LANG_*").
  • Bei einigen Zeichenketten werden %1 und %2 verwendet. Diese stellen Platzhalter dar, die später mit "Leben" gefüllt werden. Binden Sie diese Platzhalter in die übersetzten Zeichenketten ein, analog dem, wie sie in der Ausgangssprache genutzt werden.
  • Editieren Sie nun die Format-Strings für Zeit- und Datumsanzeigen für den von Ihnen erzeugten Sprachraum und pflegen Sie die landessprachliche Badword-Liste. Beachten Sie hierzu die Hinweise weiter unten.
  • Erzeugen Sie dann die Email-Templates im Ordner /emailtemplates durch Kopieren und Umbennen und übersetzen Sie diese. Die Bezeichnungen in runden Klammern z.B. {UserEmail} stellen Variablen dar und müssen unverändert bleiben.
  • Binden Sie die neue Sprachfassung in die Konfigurationsdatei ein (Parameter: DEFINEDLANG). Fügen Sie -analog zu den vorhandenen Einträgen- dem Array einen neuen Eintrag hinzu, der als Schlüssel das Sprachkürzel und als Wert den Namen der Sprache ein.

Pflege des Datumsformat

ClassAd verwendet für alle angezeigten Datumsausgaben die in der Datei languages.[LANG].php angegebenen Formatstrings.

LOCAL_DATETIME wird dann verwendet, wenn Datum und Zeit angezeigt werden sollen,
LOCAL_DATE, wenn nur das Datum angezeigt werden soll.

Zur Formattierung wird das erweiterte sprintf()-Format verwendet, welches es möglich macht, die Reihenfolge der Parameter zu andern. Übergeben werden die Datums/Zeit-Parameter immer in folgender Reihenfolge:

Jahr (1) - Monat (2) - Tag (3) [ Stunde (4) - Minute (5) - Sekunde (6) ]

Für ein deutsch-formatiertes Datum lautet der Format-String also:

define("LOCALE_DATE","%3$02d.%2$02d.%1$04d"); // Anzeigt wird: 17.01.2006

Pflege der Badwordlist

Der Badword-Filter in ClassAd filtert eingebene Langtexte nach allen Filterwörtern, die in dem Array $BAD_WORD_LIST in der Datei languages.[LANG].php definiert werden. Der Filter findet auch Wortteile, ist z.B. das Wort "Test" als unerwünschtes Wort definiert, so wird auch "Computertest" als unerwünscht erkannt.

Editieren Sie die Badword-List, so dass alle unerwünschten Wörter oder Wortteile erhalten sind - denken Sie auch daran, allgemein verständliche internationale Beleidigungen einzutragen.

Pflege der Länderlisten

Bei Registrierung eines neuen Benutzers, bei Eingabe einer neuen Anzeige und an anderen Stellen innerhalb des Programms, werden Drop-Down-Eingaben zur Länderauswahl genutzt. Diese Auswahl ist zweigeteilt - im oberen Teil finden sich die Länder, die am Standort des Marktes als wichtigste Auswahlen betrachtet werden, im unteren Bereich alle anderen Länder der Erde.

Bei Erstellung von ClassAd wurde diese Länderliste, aus diversen Gründen, in die Datei inc/countries.inc.php und nicht in die Sprachdatei ausgegliedert. In dieser Datei finden Sie zwei Arrays: $IMPORTANT_COUNTRIES und $COUNTRIES.

Im assoziativen Array $COUNTRIES wird einem Ländernamen ein Schlüssel zugeordnet, der der ISO-Kennung des Landes entspricht. Die Landesname sind teilweise eingedeutscht, teilweise in Englisch. Grund für diese scheinbare Inkosistenz ist, dass nicht die Spracheinstellung des Benutzers die Liste bestimmen soll, sondern der Standort des Marktes.

Im zweiten Array $IMPORTANT_COUNTRIES werden die ISO-Codes der Länder gespeichert, die im oberen Teil der Auswahlbox angezeigt werden sollen. Länder, die im oberen Teil der Liste aufgeführt sind, werden im unteren Teil nicht noch einmal angezeigt.

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