Smarty - Template-Engine : "Text Compilieren"
-
Hi,
habe folgendes Problem und ich hoffe, dass sich jemand mit dieser Engine auskennt um mir zu helfen:
gibt es eine möglichkeit einen Text zu "Compilieren" am nicht, dass er dann als PHP code vorhanden ist sondern, als "richtiger" text. Als wenn ich eine Datei durchparse und die Varaiblen auswerte..
Wäre danke für iegtnwelche informationen.
Ciao
-
Bitte was?
-
Hi,
hab hier folgenden Code:
$g_cTpl->assign( 'msg_title', 'Login erfolgreich' ); $g_cTpl->assign( 'msg_type', 'info' ); $g_cTpl->assign( 'msg_text', 'Willkommen, Sie haben sich erfolgreich eingeloggt. ' );
Jetzt will ich aber nicht nur "Willkommen, Sie ... blablaa"
sondern mit dem Namen ansprechen:
"Willkommen Hanspeter, Sie .... blabla"
Also ungefähr so könnte es dann aussehen:
$g_cTpl->assign( 'msg_title', 'Login erfolgreich' ); $g_cTpl->assign( 'msg_type', 'info' ); $g_cTpl->assign( 'msg_text', 'Willkommen {\$signin_name}, Sie haben sich erfolgreich eingeloggt. ' );
"{$signin_name}" soll dann hier geparst werden.
D.h.
ICh brauche einen Parser der mir in der assign funktion variablen ausgibt die bereits als Varaible in der Engine vorliegen => ebenfalls mit assign gespeichert.
Jetzt kommt aber bitte nicht und sagt "Willkommen $signin_name" verwenden.
Normalerweise sieht das hier komplizierter aus.Wäre nett wenn evt. mir ja jemand einen tipp gegben kann wie das möglich ist.
-
Warum fügst du nicht den Namen schon in der php ein
-
kucke dir in der smarty dokumentation {eval} an
-
Weil der Text eig. in einer anderen Datei steht (früher eingebunden wird) und das dann sehr unübersichtlich wäre.
hm, kann irgentwei nicht erkennen, dass es mir weierhelfen könnte. Überseh ich da etwas ?
Ich brauche eine möglichkeit, (via. funktion ) einen Text zu parsen und der wird nicht angezeigt, sondern mir wieder zurückgegeben.
sowas zb bräuchte ich
$cSmarty->assign( "name", $name ); $parsed_text = $cSmarty->parse_text( "test {$name}" );
-
http://smarty.php.net/manual/en/language.function.eval.php
setup.conf ---------- emphstart = <b> emphend = </b> [b]title = Welcome to {$company}'s home page![/b] // Hilft dir das? ErrorCity = You must supply a {#emphstart#}city{#emphend#}. ErrorState = You must supply a {#emphstart#}state{#emphend#}. index.tpl --------- {config_load file="setup.conf"} {eval var=$foo} {eval var=#title#} {eval var=#ErrorCity#} {eval var=#ErrorState# assign="state_error"} {$state_error} OUTPUT: This is the contents of foo. [b]Welcome to Foobar Pub & Grill's home page![/b] You must supply a <b>city</b>. You must supply a <b>state</b>.
-
Ist ein bisschen Tricky, aber so könnte es gehen.
Du schreibst dir eine eigene Resource "string:" welche eben den string als Template resource nimmt.dann kannst du es per
smarty->fetch('string:'.$string);weiterverarbeiten
-
Hi,
@.:
Das könnte mir warscheintlich weiterhelfen.
Ich will eine Multi-Language seite machen und brauche einen buffer (file) in der ich die ganzen Sätze / Wörter speicher.
Ich dachte mir, dass ich alles in eine config-datei speicher und diese dann lade.
Gibt es eine bessere Möglichkeit ?
Ciao
-
Hmm, EVAL mit der Config-datei sieht recht interessant und günstig aus.
Jedoch brauch ich wieder eine möglichkeit in eine Varible einen Text zu speichern, der das auswertet.
Problem ist, dass ich ein message template habe und in diesen immer aktuelle nachrichten reinschreibe
vars:
msg_title
msg_textDas wäre gut
=> Wenn er selbst in variablen da auswertet !!
$g_cTpl->assign( 'msg_type', 'info' ); $g_cTpl->assign( 'msg_title', 'Login erfolgreich' ); //$g_cTpl->assign( 'msg_text', 'Willkommen, Sie haben sich erfolgreich eingeloggt. ' ); $g_cTpl->assign( 'msg_text', '{eval var=#login_welcome#}' );
Sowas wird doch des öffteren gebraucht !! Sowas müsste doch bereits geben.