Ver Mensaje Individual
  #8 (permalink)  
Antiguo 13/09/2010, 14:07
josico
 
Fecha de Ingreso: julio-2009
Mensajes: 172
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Dificultados al imprimir información con while desde una variable

Tenéis razón. Voy a explicarlo más detalladamente.

Yo he creado un menú y una página en el CMS en el que baso mi web (e107) desde donde aparecen películas que yo introduzco a una tabla.

Resulta que para que el texto, tanto en la página como en el menú aparezca correctamente integrado al tema hay que usar esto:

Código:
$ns->tablerender($titulo, $texto, '')
Donde la variable titulo refiere al titulo de la página o menú y la variable texto refiere al contenido de la página o menú.

Todo lo que salga fuera de estas dos variables no sera correctamente introducido por lo que aparecerá en el caso de los menús fuera de la columna y en caso de ser una página (dependiendo del tema) en el head o footer.

Por lo tanto si yo creo un menú o una página asi:

Código:
<?php

echo '<h4>Peliculas</h4><br /><hr /><p>Texto</p>';

?>
No sera correctamente interpretado por el CMS.

Esta es la forma correcta:

Código:
<?php

$titulo='Peliculas';
$texto='Texto';

$ns->tablerender($titulo, $texto, '');

?>
Todo lo que tenga que aparecer dentro de la pagina o menu, debe ser insertado mediante la variable $texto.

De ser una web programada sobre un tema CSS, con esto sobraria:
Código:
<?php

while($result...){
?>
<div>
<?php echo$resulr... ?>
</div>
<?php
}

?>
Pero estoy obligado a hacerlo de la siguiente forma

Código:
<?php

$titulo='Peliculas';

while($result...){
  $campo1=$result['campo1'];
 $campo2=$result['campo2'];
 $campo3=$result['campo3'];
}

$texto='<div><table>...'.$campo1.'</table></div><div>'.$campo2.'</div>';

$ns->tablerender($titulo, $texto, '');

?>


Si como me has por supuesto antes inserto la variable $ns dentro del while, repite la página y no el contenido en el bucle. Por eso debo dejarlo fuera.

Si hay otra forma más fácil o eficaz o es que realmente se hace con otras herramienta, es lo que necesito averiguar.

Gracias por vuestras respuestas.