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!!