Einige Fragen zu Templatesystem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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.

      Comment


      • #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.
        Last edited by Koala; 20-04-2007, 21:46.

        Comment


        • #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.

          Comment


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

            Comment

            Working...
            X