Esel: Smarty template Problem

Hallo Forum,

ich möchte an eine Smarty Template einen Filenamen übergeben, um diesen zu inkludieren.

Nun ist die include Anweisung aber selber in geschweiften Klammern und es kommt ein Syntaxfehler. Geht das überhaupt?

{include file="../{$id}"}

  1. hallo,

    ich möchte an eine Smarty Template einen Filenamen übergeben, um diesen zu inkludieren.

    Warum denn? Dein Template ist vermutlich eine HTML-Datei, die du beispielsweise template.tpl genannt hast. Darin hast du Platzhalter stehen, zum Beispiel:
      {includefile}
    Es gibt außerdem eine PHP-Funktion, in der du den Inhalt dieser Variablen bestimmst. In dieser Funktion liest du nun den Inhalt der Datei ein, die du in dein Template übernehmen möchtest - bitte _nicht_ mit include(), sondern mit file() oder file_get_contents() - und ordnest das deiner Variablen $includefile zu. Das Ganze übergibst du dann mit
      $smarty->assign("includefile"=>$includefile);
      $smarty->display('template.tpl');
    an Smarty. Fertig. Es gibt für Smarts auch ein nettes kleines Tutorial, das du für solche Fragen konsultieren kannst.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Hi Christoph,

      In dieser Funktion liest du nun den Inhalt der Datei ein, die du in dein Template übernehmen möchtest - bitte _nicht_ mit include(), sondern mit file() oder file_get_contents() - und ordnest das deiner Variablen $includefile zu.

      Und was, wenn der Includefile ein weiteres Smarty-Template ist, welches weiteren Smarty-Code enthält, der zu parsen ist? Was wenn der Include-File vom Template-Designer mit einem Prefix oder so versehen werden können soll?

      MfG, Dennis.

      --
      Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
      Patch zur Verwendung von PATHINFO in JLog
      Immer wenn man etwas anders macht, wird man wieder Leute gegen sich haben. (Jürgen Kliensmann)
  2. Hallo,

    ich möchte an eine Smarty Template einen Filenamen übergeben, um diesen zu inkludieren.
    Nun ist die include Anweisung aber selber in geschweiften Klammern und es kommt ein Syntaxfehler. Geht das überhaupt?

    ja - lass die geschweiften Klammern um die Variable einfach weg: {include file="../$id"}

    Grüße aus Nürnberg
    Tobias

  3. Hi,

    {include file="../{$id}"}

    http://smarty.incutio.com/?page=SmartyFrequentlyAskedQuestions#template-7
    ggf maskieren:
    http://smarty.php.net/manual/de/language.syntax.quotes.php

    Gruesse, Joachim

    --
    Am Ende wird alles gut.