[PHP5] Ich suche ein Templatesystem

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

  • [PHP5] Ich suche ein Templatesystem

    Hallo,

    ich will ein CMS bauen, das mit Templates arbeitet.

    Artikel werden in Kategorien zugeordnet, ich würde gerne den Kategorien und Artikeln Templates zuweisen.

    Was mir aber fehlt ist die Idee der Umsetzung. Für die HTML-Ausgabe würde ich gerne Smarty verwenden. Nur: Smarty braucht ja irgendwoher die Inhalte.

    Es muss ja also eigentlich eine Datei geben, die die Smarty-Variablen befüllt.

    Diese Datei soll aber möglichst flexibel sein, es soll ja nicht für jeden Template aufweniger PHP-Code erstellt werden müssen.

    Wie könnte man also so ein System aufbauen? Wenn ich es richtig sehe müsste es dreigeteilt sein.
    1. Eine Datei die die Inhalte aus der Datenbank annimmt und verarbeitet und an Smarty übergibt.
    2. Smarty zum ausgeben der Seite.
    3. Module/Funktionen die die Inhalte der Datei (siehe 1.) verarbeiten.

    Macht das Sinn, wie würdet ihr ein Templatesystem aufbauen?
    Gruß,
    Peter

  • #2
    als Anregung (Smarty ist dann überflüssig):

    PHP-Code:
    <?php

    error_reporting
    (E_ALL);
    session_start();


    // config-Daten
    include "include/config.php";

    // Sprachdatei einbinden
    include "lang/l_romanian.php";

    // Loginstatus prüfen
    if(!isset($_SESSION['login'])) $_SESSION['login'] = "no"

    // Schnellsuche einbinden
    include "quick_search.php";

    // Ausgewählte Datei einbinden sofern sie existiert
    if(isset($_GET['f']) && file_exists($_GET['f'].".php")){
        include 
    $_GET['f'].".php";
        }
    else{
        include 
    "index_content.php";
        }

    /* Ausgabeteil */
    include "template/header.tpl.html";
    include 
    "template/left_column.tpl.html";

    if(isset(
    $_GET['f']) && file_exists("template/".$_GET['f'].".tpl.html")){
        include 
    "template/".$_GET['f'].".tpl.html";
        }
    else{
        include 
    "template/index.tpl.html";
        }

    if (
    $show_right_column != 0) include "template/right_column.tpl.html";

    include 
    "template/footer.tpl.html";
    ?>

    Kommentar


    • #3
      1. Falsches Forum *verschieb*
      (2. Bist du sicher, dass du in der Lage bist, das ganze umzusetzen?) WebCMS gibt es wie Sand am Meer, und wenn du wirklich flexibel sein willst, ist das nicht mal eben gemacht, da gehört schon einiges an Planung dazu (wenn man nicht abschreibt.)

      Kommentar


      • #4
        Ja ich willl das auf jeden Fall umsetzen, da ich kein flexibles Open Source CMS kenne, das einfach zu bedienen ist.
        Gruß,
        Peter

        Kommentar


        • #5
          Mach es doch so, dass du einen globalen Array zur Verfügung stellst, z.B. $GLOBALS['tpl'] und diesen in der mySmarty.class.php die man von Smarty vererben kann, in der Proxyfunktion display/fetch für Smarty referenzierst.

          Code:
              class mySmarty extends Smarty
              {
              .
              .
              .
              function display( $source )
              {
                  $this->assign( $GLOBALS['tpl'] );
                  $this->display( $source );
              }
              .
              .
              .
              }
          Alles was du dazu tun musst, ist den globalen Array von irgendwo mit Daten füllen, dass musst du so oder so tun.

          Um nicht bei jedem Aufruf zu referenzieren kann man das auch anders lösen, aber über die Struktur kannst du ja selber nachdenken.

          Kommentar


          • #6
            Original geschrieben von Screw Driver
            Ja ich willl das auf jeden Fall umsetzen, da ich kein flexibles Open Source CMS kenne, das einfach zu bedienen ist.
            Dann versuch mal Joomla dieses arbeitet mit PatTemplate , ist sehr einfach zu bedienen, und sehr flexibel.Joomla

            Kommentar


            • #7
              Nein danke, aber nichts wird mich jemals dazu kriegen, mit Joomla etwas zu machen. Nur Typo3 ist überschätzter als Joomla.
              Gruß,
              Peter

              Kommentar

              Lädt...
              X