TPL System

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

  • TPL System

    Hallo,
    ich habe mir ein kleines TPL System gebastelt doch habe ich einen Fehler drinne den ich nicht verstehe.
    Hier mal der Code:

    tpl.class
    PHP-Code:
        function set_tpl ($tpl_name$tpl_typ "index") {
            
            if(
    $tpl_typ == "index") {
                
    $file $this->index_path_tpl $tpl_name ".tpl";
                if(
    file_exists($file)) {
                    
    $this->get_title();
                    
    $this->tpl_include $file;
                } else {
                    
    $this->error_handler(TPL$tpl_name ".tpl (" $tpl_typ ") ist nicht vorhande!");
                }
            
            } elseif(
    $tpl_typ == "user") {
                
    $file $this->user_path_tpl $tpl_name ".tpl";
                if(
    file_exists($file)) {
                    
    $this->get_title();
                    
    $this->tpl_include $file;
                } else {
                    
    $this->error_handler(TPL$tpl_name ".tpl (" $tpl_typ ") ist nicht vorhande!");
                }
                
            } elseif(
    $tpl_typ == "admin") {
                
    $file $this->admin_path_tpl $tpl_name ".tpl";
                if(
    file_exists($file)) {
                    
    $this->get_title();
                    
    $this->tpl_include $file;
                } else {
                    
    $this->error_handler(TPL$tpl_name ".tpl (" $tpl_typ ") ist nicht vorhande!");
                }
            
            } else {
                
    $this->error_handler(TPL"Kann "$tpl_name ".tpl (" $tpl_typ ") nicht laden!");
            }
        }
        
        function 
    include_tpl () {
            if(
    $this->tpl_include != "" && is_string($this->tpl_include)) {
                return include_once(
    $this->tpl_include);
            }
        } 
    datei.php
    PHP-Code:
    <?php

    $read 
    date("d-m-Y");

    if(
    $read == "") {
        
    $read date("d-m-Y");


    $data date("d-m-Y") . "<br /> \n";

    $handle file("content/admin/error_handler/" date("d-m-Y") . ".txt");

    $tpl->set_tpl("error_handler""admin");
    ?>
    tpl datei die dazu gehört:
    Code:
    <?php 
    foreach ($handle as $zeile) {
            echo $zeile . "<br /> \n";
    }
    ?>
    index.php
    PHP-Code:
    if(isset($include_path)) {
        if(
    $include_typ == "index") {
            if(
    file_exists("content/index/"$include_path ".php")) {
                include_once (
    "content/index/"$include_path ".php");
            } else {
                
    $tpl->error_handler(PHPDAT"PHP Datei:" $include_path " nicht vorhanden!");
            }
        }
        elseif(
    $include_typ == "user") {
            if(
    file_exists("content/user/"$include_path ".php")) {
                include_once (
    "content/user/"$include_path ".php");
            } else {
                
    $tpl->error_handler(PHPDAT"PHP Datei:" $include_path " nicht vorhanden!");
            }
        }
        elseif(
    $include_typ == "admin") {
            if(
    file_exists("content/admin/"$include_path ".php")) {
                include_once (
    "content/admin/"$include_path ".php");
            } else {
                
    $tpl->error_handler(PHPDAT"PHP Datei:" $include_path " nicht vorhanden!");
            }
        }
        else {
            include_once (
    "content/index/"$include_path ".php");
        }
        
    } else {
        include_once (
    "content/index/"$include_path ".php");
    }

    include_once(
    "content/index/tpl/html_header.tpl");
    $tpl->include_tpl();
    include_once(
    "content/index/tpl/html_footer.tpl");
    ?> 


    wenn ich eine Variable setze in datei.php und die tpl datei direkt include funktioniert der Code.
    Aber wenn ich es über die funktion mache wird zwar normal es HTML ausgegeben aber nicht die Variable da steht dann NOTICE: Variable nicht gesetzt...
    Aber warum werden die Variablen nicht übergeben wurde doch beides in die index geladen.

    mfg Marco

  • #2
    Hallo,

    meine ganz ehrliche Meinung. Schmeiß das Ding so wie es ist in den Papierkorb.
    Du machst eine Klasse bzw. eine Methode abhängig von index, user und admin?
    Was soll das werden? Was wenn noch galerie, gästebuch dazu kommt? Dann musst du dort und da wieder ändern und erweitern und bist somit noch abhängiger und noch Fehleranfälliger mit dem ganzen.

    Das ganze was du da zeigst läuft schon im Ansatz gegen den Baum, dynamisch ist etwas anderes.

    Warum willst du das Rad neu erfinden? Nutze doch fertige funktionierende Sachen, wenn es eine Serverseitige Templateengine sein soll dann ist Smarty nicht das verkehrteste.

    Und Clientseitig bietet die XSLT alles was du brauchst.

    So eine Template Engine gehört schon gut designed und geplant, bei ist davon nichts zu sehen.

    Bitte sieh meine Worte nur als Kritik nicht als Abwertung gegen deine Arbeit.

    Gruß der Litter
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de

    Kommentar


    • #3
      Zitat von litterauspirna Beitrag anzeigen
      dann ist Smarty nicht das verkehrteste.
      Naja, eigentlich doch. Von allen Template-Engines bitte nicht Smarty.

      Kommentar


      • #4
        Zitat von h3ll Beitrag anzeigen
        Naja, eigentlich doch. Von allen Template-Engines bitte nicht Smarty.
        Keine Sorge ich kann Smarty auch nicht leiden und kann dem auch nichts abgewinnen, ich kenne Serverweitig aber nur Smarty, weil bis dato nur damit was zu tun hatte und promt von Template Engines (Serverseitig) geheilt war.

        Clientseitig hatte ich dann im Praktikum mit XSLT zu tun, aber leider danach auch nicht mehr. Daher kann ich nur von den beiden hier reden die ich kenne. Über anderes kann ich mir leider kein Urteil erlauben.
        Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
        http://www.lit-web.de

        Kommentar


        • #5
          XSLT geht auch auf dem Server ;-)
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            Aktuell (mMn) die beste Template-Engine ist Twig (von den Symfony-Leuten)
            This is what happens when an unstoppable force meets an immovable object.

            Kommentar


            • #7
              Auch Fluid, integriert in Flow3, ist einen Seitenblick wert.
              Wir werden alle sterben

              Kommentar


              • #8
                Vielen dank für die vielen vorschläge und die Kritik. Bin immer offen für Kritik
                Ich bastel mir gerade ein Browsergame zusammen.
                Welches der tpl systeme sind da am besten?
                Oder gar kein tpl system?

                Mfg Marco

                Kommentar


                • #9
                  Schau sie dir an, verwende sie in Beispielen, mach die Tutorials durch und entscheide für dich selbst.

                  Prinzpiell, gerade bei Browsergames: Jedes TPL-System ist besser als keines.
                  This is what happens when an unstoppable force meets an immovable object.

                  Kommentar


                  • #10
                    Im Grunde genommen haben all die genannten Template Engines einen Nachteil: sie bringen eine eigene Syntax mit sich, die Du Dir erst aneignen musst.

                    Es wurde hier auch schon XSLT als native Template Engine genannt. Allerdings ist XSLT auch ein Thema, welches man sich erst aneignen und verstehen muss, bringt aber im Endeffekt keine neue Syntax mit sich. Aus meiner Sicht auch eher ein Thema für Fortgechrittene.

                    Hier eines der guten Tutorials zu einer XSLT Template Engine: XSLT als Template Engine in PHP - Teil 1 | webholics - development + design | Freelancer im Bereich Webentwicklung und Webdesign
                    MM Newmedia | MeinBlog

                    Kommentar


                    • #11
                      Vielen Dank!!!

                      werde mich mal in XSLT reinlesen

                      Kommentar


                      • #12
                        Eine Template-Engine, die XML als Sprache verwendet:

                        PHPTAL :: Template Attribute Language for PHP 5

                        Hat gegenüber den meisten anderen Template-Engines den Vorteil, dass sie jeder XML/HTML-Editor verstehen und bearbeiten kann. Außerdem wird es es so praktisch unmöglich kaputten XHTML-Code auszugeben, da die Template-Engine bei kaputtem Code sofort Fehler wirft, während andere Template-Engines den fehlerhaften Code einfach ohne sich dafür zu interessierend durchwinken.

                        Kommentar


                        • #13
                          danke für die antwort!

                          Ich habe auch noch ei tpl System gefunden das recht leicht ist:
                          Quakenet/#php Tutorial - de - Templatesystem

                          aber in diesem TPL System wird nichts ersetzt sondern einfach mit echo erledigt.

                          Ist das ein Vor- oder Nachteil?

                          Kommentar

                          Lädt...
                          X