Einige Fragen zu Templatesystem

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

  • Einige Fragen zu Templatesystem

    Hi,

    ich habe eine kleine Templateklasse geschrieben, die ganz normal Platzhalter für Variablen ersetzt.

    Ein Beispiel:

    Template:
    PHP-Code:
    Das hier ist {$variable
    PHP-Code:
    PHP-Code:
    ...
    $tpl->assign("variable""ein Test");
    ... 
    Ausgabe:
    PHP-Code:
    Das hier ist ein Test 
    Das klappt soweit wunderbar. So..Nun wollte ich die Platzhalter erweitern, z.B. durch eine Datumsformatierung

    Template:
    PHP-Code:
    Datum: {$variable date_format="d.m.y"
    PHP-Code:
    PHP-Code:
    ...
    $tpl->assign("variable"time());
    ... 
    Ausgabe:
    PHP-Code:
    Datum20.04.07 
    Wie könnte ich sowas hinbekommen? Meine Parse-Funktion sieht bislang so aus:

    PHP-Code:
    function assign($variable$value){
        
    $this->template str_replace('{$' $variable '}'$value$this->template);

    Wie müsste ich diese Funktion erweitern? Ich denke mal, dass es mit RegEx lösbar ist, komme da aber nicht so ganz mit klar.

    Als weiteres habe ich noch die Frage wie ich am einfachsten Das Problem mit Schleifen und Anweisungen löse.

    Also z.B.

    PHP-Code:
    {if $variable == 2}
        
    variable ist 2
    {elseif $variable == 3}
        
    variable ist 3
    {else}
        
    variable ist weder 2 noch 3
    {/if} 
    Oder

    PHP-Code:
    {foreach $array as $value}
        
    ausgabe vom {$valueerfolgreich
    {/foreach} 

    Ich hoffe mir kann da jemand weiterhelfen oder mich auf irgendwelche Tutorials weiterleiten.

  • #2
    Re: Einige Fragen zu Templatesystem

    Original geschrieben von napsio


    Template:
    PHP-Code:
    Das hier ist {$variable
    PHP-Code:
    PHP-Code:
    ...
    $tpl->assign("variable""ein Test");
    ... 
    Ausgabe:
    PHP-Code:
    Das hier ist ein Test 
    das muß doch gehn:

    PHP-Code:
    $aktuellezeit date_format(....., time());
    $tpl->assign("thistime"$aktuellezeit); 
    Template:
    PHP-Code:
    Datum: {$thistime

    Kommentar


    • #3
      Re: Re: Einige Fragen zu Templatesystem

      Ja, das klappt schon, aber es geht mir darum, dass ich die Variable direkt im Template damit formatieren kann und nicht vorher über das PHP-Script formatieren muss.

      Kommentar


      • #4
        ach so.

        Dann würd ich ne neue Funktion schreiben

        $tpl->time("Datum: ", d.m.y);

        Bei Arrays brauchst auch eine neue Funktion,
        welche das Array und das Element als Parameter
        übergibt.

        Auch bei if, else, elseif brauchst ne eigene Funktion.

        Diese Funktionen sind für die Präsentationslogik zuständig.

        Kannst dich ja von Smarty inspirieren lassen.

        Aber bei jeder neuen Funktion muß der Templatebastler
        die Syntax kennen(-lernen).

        Und ob er jetzt das Template-if lernt oder das php-if ist dann meiner bescheidenen Meinung nach auch egal.
        Das heißt er lernt besser die paar Brocken php.
        Zuletzt geändert von Koala; 20.04.2007, 22:46.

        Kommentar


        • #5
          Naja, du musst halt immer überprüfen ob etwas spezielles vorkommt. ZB wäre ja bei deinem Tag der | etwas spezielles. Den Teil danach musst du dann verwenden und auch parsen, so kannst du auch verschiedene Fkt. integrieren
          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
          var_dump(), print_r(), debug_backtrace und echo.
          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

          Kommentar


          • #6
            Wie mache ich das denn am besten?...Mit RegEx oder mit Explode?...Was würde sich da ambesten anbieten?

            Kommentar

            Lädt...
            X