Gracias webstudio y nok por responder!! ya lo arreglé con el link que me mandaste.
 
Ahora tengo otra pregunta: 
Yo estoy haciendo un foro y estoy haciendo la página principal que tiene que salir asi: 
Categoria 1
Foro 1
Foro 2
Categoria 2
Foro 3 
Algo asi. Yo hice una consulta que me tira los datos asi 
id_foro   nombre   id_categoria
  1          Futbol           1
  2          Basket          1
  3          Software      2 
Me tira 3 registros con su respectiva categoria por lo que hago un while mysql fetch array para que de las 3 vueltas. 
Dentro de ese while tengo dos IF 
Uno detecta si la categoria fue escrita, si no fue escrita la escribe poniendo 
Categoria 1 
Después pasa al segundo IF donde tiene que escribir el primer foro de esa categoria. Da la vuelta y como la categoria ya fue escrita y el segundo foro pertenece a esa categoria entonces no entra en el IF y pasa al segundo, al de los foros y lo escribe. 
Esa es la lógica que uso, sin templates anda perfecto, sin problemas. 
El problema es que no le encuentro la vuelta a la lógica a utilizar con templates.   
 Código PHP:
     while($recordset=mysql_fetch_array($conectar->consultar))  {
         if ($recordset["id_categoria"]!=$categoria) {
             $html->asignar('TITULO_CAT',$recordset['titulo_cat']);
             $categoria=$recordset["id_categoria"];
             $html->expandir('FILAS_CAT','+categoria');
         } 
         if ($recordset["id_categoria"]==$categoria) {
             
          $html->asignar('TITULO_FORO',$recordset["titulo_foro"]);
          $html->asignar('DESCRIPCION_FORO',$recordset["descripcion_f"]);
          $html->asignar('CANT_TOPICS',$cant_t);
          $html->asignar('CANT_POST',$cant_p);
          $html->asignar('NICK',$recordset["nick_u"]);
          $html->asignar('ID_USUARIO',$recordset["id_usuario"]);
          $html->asignar('FECHAHORA',$recordset["fechahora_p"]);
          $html->asignar('GRAFICO','');
          $html->asignar('LINKFORO','');
          $html->expandir('FILAS_FORO','+foro');
          
          
          }
    }
$html->expandir('contenido', 'categoria');      
$html->imprimir('contenido'); 
    
  
En el html tengo algo asi  
 Código PHP:
     {FILAS_CAT}
<!-- inicioBloque: categoria -->
 
<tabla>
VARIABLES
</tabla>
 
{FILAS_FORO}
<!-- inicioBloque: foro -->
<tabla>
Variables
</tabla>
<!-- finBloque: foro -->
<!-- finBloque: categoria --> 
    
  El problema es que me escribe las dos categorias, pero los 3 foros los escribe todos debajo de la última. 
Quiero aclarar de nuevo que sin usar templates anda bien (como para dejar atrás dudas si anda bien o mal el código php) el problema es que no se si entendí bien la lógica de como trabaja el template. 
Saludos  
