Foros del Web » Programando para Internet » PHP »

Variables smarty y variables php

Estas en el tema de Variables smarty y variables php en el foro de PHP en Foros del Web. Hola a todos: estoy haciendo una web nueva usando smarty (mi primera vez) y lo veo muy util y sobre todo lo chulo k keda ...
  #1 (permalink)  
Antiguo 30/08/2007, 09:15
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Variables smarty y variables php

Hola a todos:
estoy haciendo una web nueva usando smarty (mi primera vez) y lo veo muy util y sobre todo lo chulo k keda el tener tu codigo php por un lado y la parte de diseño por otra, eso me encanta. El caso esk tb he kerido separar el texto de la web en un archivo por si alguna vez kisiera añadir un nuevo lenguaje ( k la web se pudiera ver en ingles o en gallego porejemplo y solo hubiera k editar este archivo con todo el texto de la web) El caso esk estas variables de texto k almaceno en este archivo son variables de smarty:

Código:
<?php
	$plantilla->assign('titulo_index','Bienvenido a la web');
	$plantilla->assign('index_titulo','Titulillo provisional');
	$plantilla->assign('index_registrate','Danos tus datos');
	$plantilla->assign('salir','Desconectar');
?>
Pues bien, muchas veces se da la necesidad de k dentro de mi codigo en php necesito usar algunas de esas variables y no puedo hacerlo pork estan definidas para smarty, no para php, y me veo en la necesidad de duplicarlas para poder usarlas en ambos codigos, y claro esto es una chapuza, ejemplo:
Código:
<?php
//index
	$titulo_index = "Bienvenido a la web"; //variable para php

	$plantilla->assign('titulo_index','Bienvenido a la web'); //variable para smarty
	$plantilla->assign('index_titulo','Titulillo provisional');
	$plantilla->assign('index_registrate','Danos tus datos');
	$plantilla->assign('salir','Desconectar');
?>

Última edición por SubZero_mb; 30/08/2007 a las 09:32 Razón: LLego el jefe y toy en el curro
  #2 (permalink)  
Antiguo 30/08/2007, 09:49
Avatar de andruqui  
Fecha de Ingreso: agosto-2007
Mensajes: 269
Antigüedad: 16 años, 8 meses
Puntos: 2
Re: Variables smarty y variables php

Lo mejor es usar archivos de configuracion de lenguaje y levantarlos directamente desde smarty.
Yo he usado eso y es lo que mas conviene, por ejemplo tenes un archivo que se llama "pagina.es"
en el html con smarty lo levantas y si el archivo dice:
msg_bienvenida = Hola, este es el msg de bienvenida

lo sustituye al hacer el display del html.

Si miras en los ejemplos de Smarty esta muy claro.

Saludos
Andres
  #3 (permalink)  
Antiguo 30/08/2007, 10:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Variables smarty y variables php

y porque no lo haces asi:
Código PHP:
$titulo_index "Bienvenido a la web"//variable para php

$plantilla->assign('titulo_index',$titulo_index); //variable para smarty 
Saludos.
  #4 (permalink)  
Antiguo 30/08/2007, 10:54
Avatar de andruqui  
Fecha de Ingreso: agosto-2007
Mensajes: 269
Antigüedad: 16 años, 8 meses
Puntos: 2
Re: Variables smarty y variables php

Es mucho mas facil usar lo que ofrece Smarty.
En tu html pones algo asi

{config_load file=test.conf}


El contenido de ese archivo dice:
msg_bienvenida = Hola, este es el msg de bienvenida

Luego en el html cuando pongas
{#msg_bienvenida#} lo va a sustituir por el msg.

Es la mejor manera, no lo tienes en el php ni nada.
test.conf es un archivo plano donde en cada linea tienes una palabra y su sustitucion.

Saludos
Andres
  #5 (permalink)  
Antiguo 30/08/2007, 11:03
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: Variables smarty y variables php

De acuerdo andruquik, no conocia esa caracteristica y desde luego es muxisimo mas comoda k andar con el rollo de :
$plantilla->assign('titulo_index','Bienvenido a la web')
cada vez k kieres definir, xo basicamente volvemos a estar en las mismas, la opcion k propones es igual k la k yo usaba (mas sencilla, pero solo definimos variables de smarty) y yo lo k necesitaba es k al definir una variable valiera para php y para smarty (y GatorV, la opcion k me propones esta bien, xo si tengo 300 lineas de variables definidas para smarty me parece un poco feo andar haciendo otras 300 lineas para php) un Saludo
  #6 (permalink)  
Antiguo 30/08/2007, 11:11
Avatar de andruqui  
Fecha de Ingreso: agosto-2007
Mensajes: 269
Antigüedad: 16 años, 8 meses
Puntos: 2
Re: Variables smarty y variables php

Claro, para manejar el etiquetado para el lenguaje usa archivos planos y las variables de smarti usalas para enviar datos desde php a smarty.

Saludos
Andres
  #7 (permalink)  
Antiguo 30/08/2007, 13:29
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: Variables smarty y variables php

Lo otro que te puede ayudar a liberar la carga es usar Matrices ejemplo

Código PHP:
<?

$sistema
['titulo'] = "Bienvenidos";
$sistema['hora'] = time();
$sistema['fecha'] = time();

// script y todo el leseo ...

// finalmente entregamos datos a la plantilla
$plantilla->assign('sistema',  &$sistema );

?>
Como ves , los datos los agregamos a un array, y ese array nomas se lo pasamos por referencia al smarty (por referencia es mejor, ya que por valor duplicamos memorias, por referencia las dos variables apuntan al mismo espacio de memoria).

Y en el smarty para leer la variable simplemente
Código HTML:
<title>{$sistema.titulo}</title> etc ...

Saludos
  #8 (permalink)  
Antiguo 31/08/2007, 01:42
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: Variables smarty y variables php

Ole ole y ole!Muchisimas gracias Deer, es exactamente lo k buscaba. Primero hago una referencia a smarty por pagina (por ejemplo una para el index, otra para el formulario...) y no una por cada variable y luego encima puedo usar ese array cuando kiera en php. Es todo lo k keria, denuevo muxas gracias a ti y al resto k me han ayudado. Solo una cosilla mas, a k te refieres cuando dices k es mejor por referencia k por valor? Me interesa muxo ajustar al maximo la memoria pero no entiendo lo k me dices. Un saludo!
  #9 (permalink)  
Antiguo 31/08/2007, 07:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Variables smarty y variables php

Se refiere a que por ejemplo si tu array $sistema mide en memoria 200 kb (por la cantidad de strings) y tu la pasas directamente en:

$smarty->assign('sistema', $sistema );

Lo que hace el motor de PHP es copiar la variable entonces ya tendrias dos variables de 400kb.

Si la pasas por referencia con &$sistema, entonces solo pasas la referencia a la variable y las dos variables son la misma y por ende no se duplica el tamaño de tu script.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:07.