Write haof XML files: Matias Surdi
(
matiassurdi@gmail.com)
Fecha: sáb 14 may 2005 - 02:36:43
CEST
Matias Salimbene escribió:
> gracias a todos por responder, me
han ayudado bastante.
>
> Saludos
>
> "Matias Salimbene" <
mad22@fibertel.com.ar> wrote in message
>
news:20050510193937.26195.qmail@lists.php.net...
> Hola muchachos, estoy
desarrollando un sitio con smarty y me encuentro en
la
> siguiente situacion.
>
> Tengo los siguiente
templates:
>
> - home.tpl
> - header.tpl
> - footer.tpl
> - menu.tpl
>
> Los templates "header","footer" y
"menu" estan incluidos en "home". Es
> decir, que la instruccion display
se la aplico a "home" solamente, como los
> otros templates esta incluidos, me
aparecen todos. Hasta ahi bien, ahora,
> como puedo hacer para pasar
atributos a estos "sub-templates" que tengo.
> Porque los assign que hago
funcionan solo para el template para el cual
> despues ejecuto un
display.
>
> Ej:
> Home.tpl:
> <html>
>
<head>{$idioma}</head>
> <body>
> {include
file="header.tpl"}
> {include file="menu.tpl"}
> {include
file="footer.tpl"}
> </body>
> <html>
>
> Header.tpl
> <a
href='{$link}'>{$nombre}</a>
>
> Menu.tpl
> <a
href='{$link1}'>{$nombre1}</a>
>
> Footer.tpl
> <a
href='{$link2}'>{$nombre2}</a>
>
> Home.php:
> <?PHP
> if ($lang=="es"){
>
$smarty->assign("idioma","español");
>
$smarty->display("home.tpl");
> }
> elseif($lang=="en"){
>
$smarty->assign("idioma","ingles");
>
$smarty->display("home.tpl");
> }
> ?>
>
> Este ejemplo puede ayudar a
entender como es el tema. Una cosa que intente
> era agregar atributos a los
"include" del "home.tpl" e igualarlos a una
> variable para luego asignarle un
valor con assign, pero no me funcionó.
>
> Algo como {include file="menu.tpl"
lang=$lenguaje}, lo cual funciona si en
> lugar de poner una variable, pongo
un valor estático, pero eso no me sirve.
>
> Espero me hayan podido entender,
gracias y saludos!
>
> Matias.-
Deberias ver el método Smarty->fetch() si no es que ya lo has utilizado.
La idea báscia, es colocar en el template principal,
en lugar de
includes, variables, como por ejemplo {$header} y {$footer}.
luego, en el template header.tpl te pones {$title} , por
ejemplo o lo
que quieras modificar.
finalmente en el codigo php, primero, asignarias al objeto
smarty los
valores para las variables del header.tpl y en vez de
utilizar el metodo
display(), utilizas el metodo fetch() guardando los
resultados en una
variable de PHP, luego esta variable q tienes en php, la
asignas al
template principal.
Repites este proceso igualmente con el footer.tpl y cualquier
otro
template "complementario".
Y al final, con display() lo presentas todo en la pantalla.
a mi me funciona muy bien este metodo, pero en mi caso he
optado por
hacer una especie de "framework" para facilitarme las cosas
un poco mas
en el futuro.
Saludos, y espero q te sirva.
-- PHP Spanish Localization Talk Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Este archivo fue generado por hypermail 2.1.7 : sáb 18 mar 2006 - 18:24:01 CET