Templates in Community Framework #2 - Wo liegt was?

  • WCF 1

Achtung: Diese Seite ist nur noch Teil eines Archivs und wird in Zukunft entfernt.

Ein Problem, das häuftiger vorkommt: Man möchte das Template bearbeiten, ist auch technisch soweit erfahren, dass die Template-Sprache kein Problem darstellt, doch wie findet man das Template, das man letztendlich bearbeiten möchte?
Ein paar Regeln gibt es im Community Framework natürlich, welche ich hier mal näherbringen möchte.

Zum einen gibt es da die Templates der eigentlichen Seiten an sich. Die Seite unter index.php?page=Index beinhaltet das Template "index". Die Seite index.php?page=MembersList das Template "membersList". So lassen sich schon einmal die Grundtemplates einfach finden.
Wenn man jedoch weiterschaut, sieht man schnell, dass nicht jedes Template unter einen eigenen Seite aufgerufen wird, stattdessen gibt es auch Templates, die öfters in anderen Templates vorkommen.

Ein Beispiel ist hier das Template "header". Dieses wird auf allen Seiten angezeigt und demnach in jedem Grundtemplate, wie ich sie jetzt mal nenne, eingebunden. Das sieht im Template dann z.B. so aus:

Smarty-Template

  1. {include file='header' sandbox=false}
Genau dasselbe passiert auch auf jeder Seite mit dem Template "documentHeader" oder "footer".
Weiterhin gibt es natürlich auch Templates, die nur auf bestimmten Seiten eingebunden werden. Im Template "thread" z.B. wird in Zeile 179 das Template "messageSidebar", also die Seitenleiste neben jedem Beitrag, eingebunden. Diese ist in einem eigenen Template ausgelagert, das somit bearbeitet werden kann, ohne das gesamte thread-Template zu bearbeiten.

Sucht man demnach in einem Template einen ganz bestimmten Code, kann ihn aber nicht finden, sollte man die Zeilen darüber und darunter in seine Suche mit einbeziehen, so dass man dann hoffentlich die Stelle findet, die kurz nach oder kurz vor dem "include" steht. Dann findet man auch das Template, das man eigentlich bearbeiten muss.
Über den Autor
Ich bin Webentwickler in Stuttgart und administriere Server seit vielen Jahren. In diesem Blog erstelle ich hauptsächlich Tutorials für andere Webentwickler, Webdesigner und Serveradministratoren.
-------------------------------------------------------------------------------------------------------------------------------------
I’m a web developer in Stuttgart, Germany, and server administrator since many years. This blog mainly contains a tutorial set for other web developer, web designer and server administrators.

824 mal gelesen

Kommentare 2

  • Black Rider -

    Danke für die Anregung. Ich denke, ich werde auch noch einen entsprechenden Artikel für all diejenigen schreiben, die keinen solchen Template-Editor besitzen. ;)

  • Fighter456 -

    Nun, das mit dem Suchen des entsprechenden Codes hast du hiermit nun gut beschrieben.

    Woltlab-Kunden, also diejenigen die mit dem WBB 3 den Templateeditor mitgeliefert bekommen, werden auch keine Probleme damit haben, die Templates zu finden, da diese schön vom System aufgeführt werden.

    Kniffliger wird es hier allerdings für diejenigen, die manuell Hand anlegen müssen und die Templates direkt im Dateisystem bearbeiten müssen. Diese müssen erst das richtige Verzeichnis ausfindig machen, was je nach der Menge der installierten Endanwendungen durchaus Zeit in Anspruch nimmt.

    Die Templates liegen je nach Typ in den Ordnern der Endanwendungen. Das "thread"-Template ist ausschließlich im WBB-Ordner zu finden, während das "header"-Template im WCF sowie (in bisher allen mir bekannten Endanwendungen) im Ordner der Endanwendung liegt. Bei letzterem Fall hat man bei einer installierten Endanwendung die Chance 50:50, dass man das richtige Template erwischt. Meistens fällt es nämlich erst nach der Bearbeitung auf, wenn die gemachte Veränderung nicht sichtbar ist, dass man das "header"-Template des WCF geändert hat, anstatt das Template der Endanwendung.

    Wenn man die Arbeitsreihenfolge des Templatesystems versteht, gibt es hier natürlich keinerlei Probleme und man erwischt auch sofort das richtige Template im Dateisystem.

    Nur zur Vollständigkeit: Das Templatesystem des Frameworks arbeitet nämlich nach dem Muster, dass es erst schaut, ob das gesuchte Template im Ordner der Endanwendung zu finden ist und - wenn nicht - im WCF-Ordner sucht. Wenn es auch dort nicht zu finden ist, kommt die mittlerweile "berühmte Meldung", dass das Template nicht gefunden werden konnte.