Foros del Web » Programando para Internet » PHP »

While para Smarty

Estas en el tema de While para Smarty en el foro de PHP en Foros del Web. Hola a todos, He visto que el bucle while en smarty no existe, está el foreach y el section pero actúan sobre arrays y yo ...
  #1 (permalink)  
Antiguo 11/02/2009, 05:20
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Mensaje While para Smarty

Hola a todos,

He visto que el bucle while en smarty no existe, está el foreach y el section pero actúan sobre arrays y yo necesito hacer un simple while

Código PHP:
while ($i)
{
   ......

En smarty sería algo así:
Código PHP:
{while $i}
     ....
{/while} 
He estado buscando algún plugin para smarty del while pero no lo he encontrado, alguien sabe donde puedo obtenerlo?

Gracias de antemano
__________________
Perdida en el mundo del conocimiento
  #2 (permalink)  
Antiguo 11/02/2009, 08:17
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: While para Smarty

Puedes ver aquí, o aquí, o aquí. Y no fue difícil encontrarlos, eh? smarty while
  #3 (permalink)  
Antiguo 11/02/2009, 09:10
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Respuesta: While para Smarty

Es verdad, no era difícil encontrarlo puesto que ya lo había hecho pero:
éste no lo he entendido, éste no viene la implementación de php y éste no me ha funcionado. Ni que decir que a éstas páginas he llegado a partir de plugin while smarty

He mirado también en los plugins de la página oficial pero no está. Mi nivel de smarty no es muy elevado por lo que esperaba encontrar algo como los otros códigos que he visto en la página que comento, ya que los veo más fáciles de aplicar.

Siempre, antes de preguntar, busco y si no encuentro o lo que encuentro no me sirve, entonces pregunto.

Saludos,
__________________
Perdida en el mundo del conocimiento
  #4 (permalink)  
Antiguo 11/02/2009, 09:32
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: While para Smarty

Si no funcionan, al menos puedes tomarlos de base para crear un plugin propio. Lamentablemente parece que no hay uno oficial, así que deberás usar los que otros usuarios han hecho (y adaptarlos) o crear uno tú mismo.

  #5 (permalink)  
Antiguo 11/02/2009, 10:27
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Respuesta: While para Smarty

Hola,

Ya he resuelto el tema y aquí os dejo la solución por si le pudiera ayudar a alguien. No soy una experta de smarty así que no se si ésta ha sido la mejor manera de crear un while, pero como me funciona... jeje

En la función _compile_tag de la clase de smarty Smarty_Compiler.class.php he añadido el siquiente código en el switch:
Código PHP:
switch ($tag_command) {
    case 'include':
        return $this->_compile_include_tag($tag_args);
................
    case 'while':
        $this->_push_tag('while');
        $res = $this->_compile_if_tag($tag_args);
        preg_match("/<\?php if (.*): \?>/",$res,$token);
        return "<?php while " . $token[1] . " ?>"; 
     case '/while':
        $_open_tag = $this->_pop_tag('while');
        return "<?php }?>";
............
}
Una vez añadido el nuevo tag a smarty su utilización en el template es la siguiente:
Código PHP:
     {assign var="cont" value="1"}
     {while (
$cont <= 5)}
    <
br />hola {$cont}
    {
assign var="cont" value=$cont+1}
     {/while} 
Sólo he hecho un par de pruebas simples pero confío que funcione para otras más complicadas.

Espero que pueda ser de ayuda.

Saludos!!
__________________
Perdida en el mundo del conocimiento
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:59.