Templates Flags ersetzen?

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

  • Templates Flags ersetzen?

    Hi @ all

    Vorsicht Newbie?

    Ich habe mich für Templates innerhalb meines Projektes entschieden.
    Deswegen habe ich hier das Forum durchsucht und die entsprechenden Beiträge durchgelesen.
    Jetzt habe ich mich gegen smarty und ITX entschieden.
    Um für den Anfang alles nachvollziehen zu können, habe ich mich für den Tipp von thomas.ney entschieden.

    thomas.ney schrieb:
    Die Flags sind ja nichts anderes als normaler Text. Füge an der stelle, an der du die Umfrage willst, einfach ein neuen Flag [UMFRAGE] ein und ein Flag [MENU]

    Der PHP-Code sieht dann folgendermaßen aus:


    PHP-Code:
    $umfrage "Hier können Sie die Umfrage als ganz normale HTML-Tags mit PHP-Variablen einfügen";
    $menu "<a href=\"link1.htm\">Link 1</a>";

    $template join('',file('template.htm'));
    $ausgabe str_replace("[UMFRAGE]"$umfrage$template);
    $ausgabe str_replace("[MENU]"$menu$template);
    echo 
    $ausgabe

    Das heißt, du musst die gewünschte Information (Menü, Umfrage) bereits mit PHP generieren lassen, und sie in eine Variable schreiben ($umfrage, $menu).
    Ich habe das ebenfalls so eingebaut, es wird auch ein Flag ersetzt aber eben nur das letzte. Jetzt habe ich den Quellcode wie folgt geändert.

    PHP-Code:
    $template join('',file('../html/SchPerA.html'));
    $ausgabe str_replace("{VORNAME}"$vorname$template);
    $template2 $ausgabe;
    $ausgabe2 str_replace("{NACHNAME}"$nachname$template2);
    $template3 $ausgabe2;
    $ausgabe3 str_replace("{GDATUM}"$gdatum$template3);
    echo 
    $ausgabe3
    Es funktioniert!
    Jetzt werden alle 3 Flags werden ersetzt, aber es erscheint mir zu kompliziert. Das muss doch einfacher gehen.

    Ich habe mir die Funktionsweise von phpbb Templates angesehen, sie sind
    effektiv, aber leider funzt es bei mir nicht.

    PHP-Code:
    //Template-Datei(en) laden 
    $template->set_filenames(array( 
        
    'SchPerA' => '../html/SchPerA.html'
        
    'fehler' => './html/error.html' 
    ));

    //Mehrere Variablen auf einmal zuweisen 
    $template->assign_vars(array( 
        
    'VORNAME' => $vorname
        
    'NACHNAME' => $nachname
        
    'GDATUM' => $gdatum
        
    ));

    //Template ausgeben 
    $template->pparse('SchPerA'); 
    hier sieht es sehr komfortabel aus, die Flags ersetzen zu lassen.
    Nur leider bekomme ich hier immer diese Fehlermeldung

    Fatal error: Call to a member function on a non-object in g:\www\siq\php\abfrage_pers.php on line 26
    das script fängt mit der Zeile 25 an also liegt hier der Fehler in der Zeile 2

    Ich bin für jede Hilfe dankbar und am liebsten wäre es mir, wenn ich das Temlplates wie in phpbb benutzen könnte.

    MfG Sirius

  • #2
    Im Zweifel fehlt dir die Klassendefinition ... das Objekt wird wahrscheinlich auch nicht initialisiert ... usw. ...

    Warum nicht einfach sowas in der Art ... nicht so von hinten durch die Brust ins Auge wie Dein Ansatz:
    PHP-Code:
    $template join('',file('../html/SchPerA.html'));

    $variablen = array("{VORNAME}""{NACHNAME}""{GDATUM}");
    $textersatz = array($vorname$nachname$gdatum);

    $ausgabe str_replace($variablen$textersatz$template); 
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Danke

      Danke es funzt,

      Mich würde das phpbb template system schon intressieren wie es funktioniert. Was benötige ich alles damit es auch in meinem beispiel läuft?

      MfG Sirius

      Kommentar

      Lädt...
      X