Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] &l t;if &amp ;amp;amp ;amp;

Einklappen

Neue Werbung 2019

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

  • [Erledigt] &l t;if &amp ;amp;amp ;amp;

    Hallo

    Derzeit schreibe ich eine Klasse fuer ein Template System.

    Momentan ersetzte ich alle {VARIABLE} in einer HTML Datei mit der Variable aus einem PHP Script.
    Nun will ich aber noch in der HTML Datei if-Abfragen hinzufügen.
    Also wenn z.b. eine Variable gesetzt ist, gibt er den HTML Code aus sonst nicht.

    Diese Methode habe ich schon bei einigen Scripten gesehen (bsp.: vB)

    Da sieht eine HTML Datei z.b. so aus:
    Code:
    <if condition="!$post['variable']">HTML</if>
    Wie koennte ich sowas in meiner Klasse einbauen? Stehe da momentan total auf der Leitung

    Hoffe mir kann jemand helfen!

    Ach ja, hier noch meine derzeitige Klasse:

    PHP-Code:
    class tpl {
        var 
    $templates;
        var 
    $settings;
        
        function 
    tpl() {
            
    $this->settings'path' ] = "templates/";
        }
        
        function 
    get$template ) {
            if( !isset( 
    $this->templates$template ] ) ) {
                
    $temp $this->settings'path' ] . $template ".html";
                if( 
    file_exists$temp ) && is_readable$temp ) ) {
                    
    $fp fopen$temp"rb" );
                    
    $this->templates$template ] = fread$fpfilesize$temp ) );
                    
    fclose$fp );
                }
            }
            return( 
    $this->templates$template ] );
        }
        
        function 
    parse$template$array = array() ) {
            
    $pregFind = array();
            
    $pregRepl = array();
            foreach( 
    $array as $key => $value ) {
                
    $newID count$pregFind );
                
    $pregFind$newID ] = '/\{' $key '\}/is';
                
    $pregRepl$newID ] = $value;
            }
            return( 
    preg_replace$pregFind$pregRepl$template ) );
        }


  • #2
    Ich finde es schlechten Stil (wie so oft *g*), dass du neue HTML-Elemente definierst. Zwar versteht dein Template-System vielleicht irgendwann diese erfundenen HTML-Tags, allerdings würde ich dir raten, deine Template-Syntax nicht zu mischen, zwischen {variable} und <tags>.
    Der Vorteil & Zweck von Template-Systemen ist die Trennung von Inhalt und Layout um es anderen zu erleichtern Layout oder Inhalt zu ändern, ohne Ahnung vom anderen haben zu müssen. Wenn du jetzt so ein Mischmasch einführst widerspricht das eigentlich der Idee eines Template-Systems.

    Ich habe mich vor ein paar Monaten auch mal drangesetzt, um ein eigenes kleines Template-System zu erstellen. Ich bin dann an Schleifen gescheitert, habe die Idee so ein komplexes Template-System selbst zu erstellen verworfen und ein vorhandenes genommen (war es Smarty oder Flexy?! - irgendwas von PEAR). Habe das allerdings auch nicht verwendet, denn ich finde es übertrieben, wenn die Template-Script-Sprache schon Schleifen und if-Bedingungen verwendet, dann kann ich gleich PHP-Code reinbruzeln.

    Danach hast du aber nicht gefragt, das war nur so als Hinweis gedacht.

    Dein Problem könntest du vielleicht mit regulären Ausdrücken lösen?

    Kommentar


    • #3
      Also ich muss dir natürlich recht geben

      Es ist schon komisch wenn man sowas nun einbaut, aber es muss doch einen Grund haben warum die "großen" soetwas verwenden?
      Aus Performancegründen vielleicht?

      Ich will eben versuchen PHP Code vom HTML Code zu trennen, nur sobald ich an einer "IF Bedingung" komme, muss ich HTML Code in PHP Scripten einfügen.

      Das mit regulären Ausdrücken wird wohl auch das Ziel sein, nur fehlt es mir gerade da an Wissen

      Kommentar


      • #4
        Edit: Nichts. Ich habe voll viel antworten wollen, habe gepostet und wurde aus dem Forum ausgeloggt. Alles futsch. Blöd. Sorry.

        Kommentar


        • #5
          @creative-w3.de: dafür gibts im Browser die Zurück-Buttons

          @friesi: die "großen" arbeiten mit <tags>? Einzigster Vorteil wäre, dass sie vom Browser ignoriert würden, falls das System sie übersieht.

          Kommentar


          • #6
            Zitat von Zergling
            @creative-w3.de: dafür gibts im Browser die Zurück-Buttons
            Hab ich versucht, aber in der Textarea stand nur noch der Quote von Deinem ersten Beitrag, den ich als Ausgangspunkt meines Beitrages hatte... sorry wg. OT.

            Kommentar


            • #7
              <offtopic>OK das ist ärgerlich</offtopic>

              Kommentar

              Lädt...
              X