ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
285
285
EMPFEHLEN
-
12.03.05 21:51 #1
Wie stelle ich es bei Smarty an, dass eine Variable ausgewertet anstatt ausgegeben wird. Ich hab mal in der Dokumentation nach eval gesucht, aber aus dem Ergebnis werde ich nicht schlau.
Ich habe es so angestellt, dass ich das hier assigne:
und so schreibe ich das dann ins template:PHP-Code:$smarty->assign('otable', '{section name=table loop=$tables}{$tables[table]}{/section}');
Leider wird dafür nur folgendes ausgegeben:PHP-Code:{eval var=otable}
otable
Also der Name der Variable.
Vielleicht wird ja jemand von euch daraus schlau:
http://smarty.php.net/manual/de/lang...ction.eval.php
-
Hallo,
Also soweit ich weiß kann die Funktion eval ein string welcher PHP Code enthält ausführen also z.B. wenn du in smarty das so machst:
nun sollte er dir beim Platzhalter otable den wert Hallo Welt ausgeben.PHP-Code:$smarty->assign('otable', '<?php echo "Hallo Welt" ?>' );
Was du nun Versuchst ist ja eine smarty Funktion auszuführen und das ist mit eval nicht möglich denke ich zumindest.
was hast du den vor vielleicht kann ich dir ja ein anderen Tipp geben?!
MfG FunjoyIch bin ein KLEINER Webmaster werde aber immer GRÖßER
-
13.03.05 19:22 #3
An sich ist es auch gegen das Prinzip von Smarty bzw. eines TemplateSystems, dass du den TemplateCode selbst wieder durch PHP generierst. Ich würde je nach Verwendungszweck vielleich eher mit eine IF im Template selbst oder so arbeiten. Wenn der Inhalt z.B. dynamisch, oder in mehreren Seiten verwendet werden soll, dann würde ich den entsprechenden Teil in eine extra TemplateDatei speichern und diese dann einbinden:
PHP-Code:// temp1.tpl
{section name=table loop=$tables}{$tables[table]}{/section}
// seite.tpl
{include file=$otable}
// datei.php
<?php
$smarty->assign('otable', 'temp1.tpl');
?>
-
14.03.05 21:34 #4
Entschuldigung, dass ich mich bisher nicht mehr gemeldet habe, aber ich hatte bisher keine Zeit.
So meine Vorgehensweise ist Folgende, die ich aber zu kompliziert finde, weil zu viel schwer zu verstehender Code(für only-htmler) in die Templates kommt:
Bisher habe ich es immer so gemacht, wenn eine DatenbankTabelle bzw. mehrere Einträge durchlaufen werden müssen, dass ich im php-code für jede Spalte ein eigenes indiziertes Array erzeugt habe, welches ich dann im Template ganz einfach mit einer section Anweisung durchlaufen habe. Aber, wenn man nun eine ganze Tabelle mit vielen Spalten ausgibt, dann hat man statt eines übersichtlichen {$name} oder {$date} immer lange section Anweisungen dort stehen. Deshalb wollte ich die Sektion Anweisungen mit dem PHP-Code erstellen und nur noch als Variable assignen.
Hier mal ein praktisches Beispiel:
PHP-Datei:
Im Template steht dann statt einer einzelnen überschaubaren Variable dort eine Sektion Anweisung:PHP-Code:while ($row = mysql_fetch_array($result))
{
$tables[] = '<option value="'.$row['id'].'">'.$row['name'].'</option>';
}
$smarty->assign('tables', $tables);
Dies versteht, aber jemand, der nur html kann kaum und weiß nicht wie es es in einem neu gestalteten Template unterbringen soll. Deshalb würde ich gerne die Section Anweisung ganz einfach z.B durch ein {$tables} ersetzen. Vielleicht weiß ja jemand von euch eine Lösung für dieses Problem.PHP-Code:{section name=table loop=$tables}{$tables[table]}{/section}
Ähnliche Themen
-
Frage Smarty und die Schleifen
Von luni22 im Forum PHPAntworten: 4Letzter Beitrag: 29.10.08, 14:21 -
Frage zu Smarty und DB Abfrage
Von alex130 im Forum PHPAntworten: 0Letzter Beitrag: 09.02.08, 18:50 -
Frage zu Smarty, wer kennt sich aus?
Von xtratz im Forum PHPAntworten: 9Letzter Beitrag: 11.07.07, 12:55 -
frage zu include (unterseiten) & Smarty
Von Nerolein im Forum PHPAntworten: 16Letzter Beitrag: 05.05.07, 23:43 -
Frage zum Templatesystem Smarty
Von caramba12321 im Forum PHPAntworten: 6Letzter Beitrag: 24.04.06, 16:25





Zitieren
Login






[PHP] [Codeschnipsel] ImageColor aus HTML-Farbcodierung erstellen