Montag, 16. August 2010

ClanSphere 2010 Template Platzhalter Features

Mit dem in wenigen Tagen erscheinenden finalen Release von ClanSphere 2010 werden sicherlich viele Webseiten auf diese Version umsteigen. Dabei gibt es durch den im zweiten Release Candidate umgebauten Template- und Theme-Parser diverse neue Features und alte, die herausgefallen sind. Aufgrund mangelnder Dokumentation gehe ich auf beides nicht näher ein, aber auf dass, was jetzt da ist.

Es folgt ein Überblick über die Leistungsfähigkeit und Platzhaltervielfalt bei den *.htm Dateien, die einem ClanSphere Template eben so angehören. Fragen hierzu bitte einfach als Kommentar posten. Diese werden dann nach bestem Wissen und soweit möglich beantwortet.



1. FUNC Platzhalter

Platzhalter mit dem Aufbau {func:*} werden mit systemnahen Werten gefüllt. Diese sind generell und so gut wie überall verfügbar. Viele davon sind wichtig und ihr Einsatz enorm sinnvoll.

1.1. {func:charset}

Wird mit dem in der setup.php gesetzten Zeichensatz ersetzt. Die Ersetzung findet in diesem Fall ausnahmsweise vor dem Cachen der Inhalte der *.htm Datei statt um Performance zu sparen. Aus Gründen der Flexibilität sollte dieser Platzhalter überall zum Einsatz kommen, wo andernfalls ISO-*, UTF-* oder ein anderer Zeichensatz, z.B. in der XML- und META-Tag-Angabe steht.

1.2. {func:show}

Liefert die per Modul und Aktion in der URL angeforderte Unterseite aus. Sollte nichts angegeben sein wird der im System eingestellte Standard verwendet. Dieser Platzhalter darf nur einmal je *.htm Datei vorhanden sein, alles Andere macht auch eh keinen Sinn.

1.3. {func:stylesheet}

Erlaubt die Angabe des Ortes, an dem per CMS nachgeladene CSS-Dateien, z.B. von der Lightbox, in der *.htm Datei platziert werden. Falls nicht vorhanden geschieht dies am Ende des HEAD-Tag.

1.4. {func:javascript}

Erlaubt die Angabe des Ortes, an dem per CMS nachgeladene JS-Dateien, z.B. von der Lightbox, in der *.htm Datei platziert werden. Falls nicht vorhanden geschieht dies am Ende des BODY-Tag.

1.5. {func:title}

Gibt den Titel der aktuellen Unterseite, bei Forumthemen und ähnlich aktiven Inhalten um weitere Informationen erweitert, aus. Sollte im TITLE-Tag des HEAD-Bereiches stehen.

1.6. {func:title_website}

Standard-Titel, der in den CMS Optionen eingestellt wird.

1.7. {func:queries}

Liefert die Anzahl, der beim aktuellen Aufruf durchgeführten SQL-Anfragen als Zahl zurück

1.8. {func:errors}

Zeigt aufgetretene Fehler in PHP bzw. ClanSphere an. Sollte nur für Debug-Zwecke verwendet werden. Oft eignet sich dort auch eher gleich der Einsatz von {func:debug} - weiter unten mehr dazu.

1.9. {func:sql}

Ausgabe der an die Datenbank gesendeten Anfragen des aktuellen Aufrufs. Oft eignet sich dort auch eher gleich der Einsatz von {func:debug} - weiter unten mehr dazu.

1.10. {func:debug}

Beinhaltet die Informationen von {func:errors} und {func:sql} in einen DIV Layer verpackt, der per Theme-Datei an eigene Wünsche anpassbar ist. Sollte dieser Platzhalter nicht vorhanden sein wird er bei aktiviertem Debug-Modus durch das CMS automatisch an den Beginn des BODY gesetzt.

1.11. {func:parse}

Liefert die gesamte Laufzeit, die die aktuelle Anfrage gebraucht hat, bis das Ergebnis an den Browser gesendet werden konnte.

1.12. {func:memory}

Gibt den bei der aktuellen Anfrage verwendeten Speicherverbrauch auf dem Server aus. Bei neueren PHP-Versionen wird dazu noch der zwischenzeitliche Spitzenverbrauch mit ausgegeben.

2. URL Platzhalter

Der Namensraum {url:*} ist für URL-Platzhalter reserviert. Diese sind in das A-Tag im HREF zu platzieren und wie folgt aufgebaut:

Beispiel 1: {url:news_list}

Verweist auf das Modul News mit der Aktion Liste

Beispiel 2: {url_board:board_list}

Verweist auf die board.php im Hauptverzeichnis und ruft das Modul Forum mit der Liste als Aktion auf

Beispiel 3: {url:static_view:id=5}

Verweist auf das Modul Statische Seiten mit der Aktion Anzeigen und der ID 5

Beispiel 4: {url:static_view:id={static:id}}

Siehe Beispiel 3, allerdings wird die ID der statischen Seite über den PHP-Array $data['static'] gesetzt. Dies wird zu 99% nur bei Themes verwendet, wäre aber bei Templates funktional auch möglich.

Viele fragen sich wohl, warum die URL nicht einfach per index.php?mod=news usw. aufgerufen wird. Dies ist nicht so einfach möglich, da die URL von Einstellungen wie z.B. AJAX und MOD_REWRITE abhängig ist, oder gar beides zusammen, was erstmalig mit ClanSphere 2010 fehlerfrei funktionieren sollte.


3. Einbau von Modul-Elementen, meistens Navigations-Ergänzungen

Diese sind einfach per {modulverzeichnisname:dateiname_ohne_endung} zu verwenden, z.B. {news:navlist} für eine kleine Übersicht der letzten News mit ihrer Kopfzeile und dem passenden Datum. Eine vollständige Liste dieser findet man über die debug.php im Standard-Design ClanSphere über die Box NAVLISTS, die sich rechts unten befinden sollte.

Einige dieser Aufrufe erlauben die Weitergabe einer virtuellen Eigenschaft. Diese wird dann an die aufzurufende Zieldatei als globaler Wert übermittelt und verarbeitet. Als Beispiel sei {wars:navlist:squadid=1} genannt, um die Anzeige der Clanwars auf den Squad mit der ID 1 einzugrenzen. Prinzipiell sind alle $_GET-Inhalte, die diese Dateien verarbeiten über diese Art und Weise übermittelbar, allerdings nur ein Schlüssel/Wert-Paar je Aufruf, wie im vorangegangenen Beispiel die Squad ID.

Abschließender Hinweis: Alle Platzhalter sollten keinerlei Leerzeichen oder Umbrüche zwischen dem { bis zum schhließenden } enthalten, da diese auf einzeilige Erkennung begrenzt sind. Dies betrifft alle Platzhalter ohne Ausnahmen und ist daher besonders wichtig.

1 Kommentar:

  1. Absolut genial, hajo. Das ist genau das was ich suchte, vorallem der Abschnitt "Url Platzhalter Beispiel2" klappt glänzend mit mod_rewrite und AJAX!
    Danke für Deinen Blog-Eintrag

    AntwortenLöschen