Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/05/2003, 08:49
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 23 años
Puntos: 0
Hola Ababol,

En realidad estaba casi bien lo que estabas haciendo, el problema era la definicion de los bloques, o sea, si en tu template tiene definido un bloque este no es "eliminado" del template, por lo cual cuando expandias el template completo te seguia incluyendo el bloque que habias definido.
Veamos tu ejemplo.

tContenido tiene lo siguiente:
Código PHP:
<table>
...
...
...
{
Ultimos_publicados}
    <!-- 
inicioBloqueTabla_ultimos -->
    <
tr>
        <
td width="40%" style="padding-left:20"><a href={URL_1} class="azul">
            
"{Campo_1}"</a></td>
        <
td width="30%"><a href={URL_2} class="pie"><b>( </b>
            {
Campo_2}<b> ) </b></a></td>
        <
td width="30%"><a href={URL_3} class="azul">
            {
Campo_3}</a></td>
   </
tr>
   <!-- 
finBloqueTabla_ultimos -->
</
table
y Tabla_ultimos esto:
Código PHP:
    <tr>
        <
td width="40%" style="padding-left:20"><a href={URL_1} class="azul">
            
"{Campo_1}"</a></td>
        <
td width="30%"><a href={URL_2} class="pie"><b>( </b>
            {
Campo_2}<b> ) </b></a></td>
        <
td width="30%"><a href={URL_3} class="azul">
            {
Campo_3}</a></td>
   </
tr
Cuando expandes al final tContenido, te daras cuenta de que la ultima fila se repetira, ya que tambien forma parte del template.
Para evitar este problema, lo que debes hacer es lo siguiente:

tu template deberia tener lo siguiente:
Código PHP:
<!-- inicioBloquetContenido -->
<
table>
...
...
...
{
Ultimos_publicados}
    <!-- 
inicioBloqueTabla_ultimos -->
    <
tr>
        <
td width="40%" style="padding-left:20"><a href={URL_1} class="azul">
            
"{Campo_1}"</a></td>
        <
td width="30%"><a href={URL_2} class="pie"><b>( </b>
            {
Campo_2}<b> ) </b></a></td>
        <
td width="30%"><a href={URL_3} class="azul">
            {
Campo_3}</a></td>
   </
tr>
   <!-- 
finBloqueTabla_ultimos -->
</
table>
<!-- 
finBloquetContenido --> 
Como vez estamos definiendo dos bloques anidados dentro de un template (aclaremos que un template no es necesariamente un bloque) y ahora lo unico que resta es cambiar un poco el codigo:

Código PHP:
$html->cargar('miTemplate',$area['plantilla']);
$html->definirBloque('Tabla_ultimos','miTemplate');
$html->definirBloque('tContenido','miTemplate');
...
...
...

$ind=0;
while (
$ultimos_escritos[$ind])
{
    
// Asignando valor a las variables template
    
$html-> asignar('Campo_1',$ultimos_escritos[$ind]['titulo']);
    
$html->asignar('URL_1',"index.php?accion=leer&seccion=relatos&id=".$ultimos_escritos[$ind]['id_relatos']."");
    
// Buscando el nombre del autor...    
    
$html->asignar('Campo_2',$nombre_autor);
    
$html->asignar('URL_2',"index.php?accion=leer&seccion=autores&id=".$ultimos_escritos[$ind]['id_autor']."");
    
//Buscando el nombre de la subcategoría...
    
$html->asignar('Campo_3',$nombre_subcategoria);
    
$html->asignar('URL_3',"index.php?accion=listar&seccion=relatos&id=".$ultimos_escritos[$ind]['id_subseccion']."");
    
//Expandiendo la fila de los últimos escritos publicados...
    
$html->expandir('Ultimos_publicados','+Tabla_ultimos');
    
$ind++;
}
$html->expandir('Contenido','tContenido'); 
ahora si funcionará como esperas, ya que tContenido ya no incluye al bloque, pues cuando defines el bloque automaticamente se quitan los sub-bloques.

Bueno, espero que te haya aclarado la duda.
Saludos.
Nok!