include-Befehle aus DB auslesen und ausführen (Smarty)

Gifty43

Erfahrenes Mitglied
Hallo Zusammen,

Ich habe folgendes Problem:

Ich habe in einer Datenbank mehrere include-Befehle gespeichert. Diese sehen wie folgt aus:
Code:
{php}include("datei.php"){/php}

Ausgelesen wird wie folgt:
Code:
$smarty->assign('include', $row->include);
Beim auslesen mit {$include} in der .tpl-Datei, wird dieser include Befehlvon der DB aber nicht als solcher erkannt, sondern wird ganz einfach als Text ausgegeben. So steht dann da:

HTML:
Nachfolgend die Seite:
{php}include("datei.php"){/php}
Natürlich sollte er den include-Befehl ausführen und nicht anzeigen.:confused:

Wie kann ich das so umsetzen, dass er den Inhalt der Datenbank nicht als Text, sondern als Befehl erkennt?

Geht das überhaupt oder wie könnte ich das anders realisieren?

Thanks für eure Hilfe.

Grüsse,
Gifty
 
hast du ein {literal} irgendwo vor deinem {php} stehen?

Folgendes funktioniert nämlich in meinem *tpl File..
{php} include("test.php"); {/php}
 
@daddz: den habe ich getestet, funktioniert aber ebenfalls nicht...

@chris_sit: Nein habe ich nicht. Was bewirkt diese Funktion?
 
Bist du sicher, dass der Befehl nicht funktioniert? Bei mir gehts einwandfrei.

Vielleicht stimmt die Pfadangabe nicht!?

Es könnte auch sein, dass es garnicht bis zu diesem include-Befehl kommt, weil das Script bzw. Template vorher irgendeine if-Abfrage hat oder so.

greetz
daddz
 
{literal}{/literal} wirkt wie ein "Kommentar" in Smarty.. alles was zwischen diesen beiden Tags steht wird von Smarty nicht geparsed sondern stur ausgegeben...
 
Hallo,

in der Form kann das natürlich nicht klappen. {$include} bewirkt nur, dass der Inhalt der zugewiesenen Variable include ausgegeben wird.

Soll der Inhalt einer Variablen wie ein Template ausgewertet werden, dann müsste man {eval} verwenden. In diesem Fall wäre es aber vielleicht doch besser, nur den Dateinamen der zu inkludierenden PHP-Datei in der Datenbank zu speichern und diese dann über {include_php} einzubinden.

Grüße,
Matthias
 
Zurück