Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/09/2003, 01:56
Antigol
 
Fecha de Ingreso: mayo-2003
Ubicación: Buenos Aires
Mensajes: 97
Antigüedad: 21 años
Puntos: 0
Bloques en el template de Nok

Hola gente, tengo una consulta para hacerles:

Yo estoy usando el motor de templates de Nok que está muy bueo y me encontré con algo que no le encuentro la vuelta.

No se si es correcto como lo uso para generar tablas o selects.

Lo hago todo dentro del mismo template, o sea no defino un bloque fuera como en el tutorial que da Nok.

Por ejemplo, si hago una tabla que genere N filas hago un bloque en donde corresponde a la tabla y desde el php hago un for 1 a 3.

El problema es que siempre el último se repite cuando se imprime.

Por ejemplo, si uso un select con 3 elementos: Pedro, Juan y Jose me queda visualizado:

Pedro
Juan
Jose
Jose

Me di cuenta que esto pasa porque cuando el for llega a su última vuelta ejecuta el método expandir de la clase de nok y por eso repite una vez el último elemento del select, lo saqué a ese último expandir y funcionó pero obviamente no es lo que quiero pq no puedo sacar ese método del for.


Este es el html (no les puse las tags html y eso para no aburrir)

<select name="juego">
{FILAS}
<!-- inicioBloque: opcion -->
<option>{op}</option>
<!-- finBloque: opcion -->
</select>


Este es el php en donde uso el array del ejemplo de la pagina de nok

Código PHP:
include('Class.NokTemplate.php');  
$html= new NokTemplate('.');
$html->cargar('tplTabla','defbloques.html');
$html->definirBloque('opcion''tplTabla');   
$html->asignar('titulo','Ejemplo número 3');
$datos = array('Jose' => 'Perez',      'Carlos' => 'Gonzales',      'Anibal' => 'Hugo');     
$html->asignar('FILAS','');
foreach (
$datos as $nombre ) {    
    
$html->asignar('op'$nombre);  
    
$html->expandir('FILAS''+opcion');  //si esto se lo saco para la última vuelta del for anda bien, sino me repite el último elemento
}
$html->expandir('FINAL''tplTabla');  
$html->imprimir('FINAL'); 
La pregunta es: es posible hacer lo que quiero yo? o si o si hay que hacer el html con los bloques aparte??

Gracias!!