Dynamischer Content bei Template-Engine

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Dynamischer Content bei Template-Engine

    Hallo ihr,

    also erst gestern kam ich auf den Drichter, dass man HTML-Templates in die Logik reinläd, und nicht wie ich es bisher gemacht habe, die Logik in die HTML-Seite inkludiert - also praktisch genau andersrum.
    Soweit, so gut, das funktioniert auch ganz prima.

    Jedoch bin ich gerade am Überlegen, wie man den "Hauptcontent" der Seite dynamisch läd. Früher hatte ich im HTML an dieser Stelle ein Switch($_get['site']) stehen, welches überprüft hat, obs die aufgeforderte Seite gibt und dann inkludiert hat.
    [COLOR=silver]
    Von jetzt an im Text:
    Logik = index.php
    [/COLOR]
    Um der Templatesache weiter treu zu bleiben, steht an dieser Stelle im Template jetzt aber ein <?=content ?>. D.h. die Index.php, welche das Template am Ende reinläd und mit Daten versorgt, müsste die Aufgabe übernehmen, den richtigen Content auszuwählen und zu laden.

    Nehmen wir mal an, es wird index.php?site=guestbook aufgerufen. Ich könnte ja den Switch nun hier in der index.php einbauen und rausfinden, dass Guestbook existiert und es anschliessend... ja was denn nun anschliessend?

    Denn das Gästebuch hat ja wiederrum sein eigenes Template UND seine eigene Logik. Brauche ich nun eine Template-Engine in der Template-Engine?

    Oder inkludiere ich in die index.php die Logik des Gästebuches und weise der Variablen $content (welche ja später im Template an besagter Stelle steht) per readfile() das HTML-Template des Gästebuches zu?

    Ich hoffe, ich habe mich nicht zu umständlich ausgedrückt, sonst erklär ichs nochmal neu.

    PS: ihr werdet euch fragen, wo da die Template-"Engine" nun ist, ist doch nichts weiter als simples PHP. Richtig aber mit PHP alleine kann man die meisten Templatesachen ja auch ohne 3rd Party Script einfach lösen, das reicht mir. Im Prinzip ist das von mir beschriebene ja eine kleine Template-Engine.

    Gruß
    Zuletzt geändert von INC.; 21.12.2008, 11:46.

  • #2
    Keiner ne Idee? Soll ich einen neuen Erklärungsversuch starten?

    Kommentar


    • #3
      Re: Dynamischer Content bei Template-Engine

      Original geschrieben von INC.
      Nehmen wir mal an, es wird index.php?site=guestbook aufgerufen. Ich könnte ja den Switch nun hier in der index.php einbauen und rausfinden, dass Guestbook existiert und es anschliessend... ja was denn nun anschliessend?
      Ich denke mal dein Problem läuft darauf hinaus, dass du nicht einfach guestbook.php inkludieren kannst, weil diese Datei bereits HTML ausgibt. Du benötigst aber die Ausgabe in einer Variablen, um sie im Haupttemplate $content zuweisen zu können.

      Eine einfache Möglichkeit wäre es, mit dem Outputbuffer zu arbeiten:
      PHP-Code:
      ob_start();
      include_once(
      $file);
      $out ob_get_contents();
      ob_end_clean(); 

      Kommentar


      • #4
        Danke, aber das ist eher ein architektonisches Problem. Welche Methode der 2 folgenden ist üblich, oder macht man das ganz anders?

        1. Die index.php läd getrennt die Logik UND das Template der aufgerufenen Seite und "verschmelzt" diese anschließend vor dem Ausgeben.

        2. Die index.php läd die Logik der aufgerufenen Seite, und genau diese Logik (also die der aufgerufenen Seite, nicht die ursprüngliche der index.php) läd wiederrum das Template.

        Kommentar

        Lädt...
        X