Tengo una aplicación construida alrededor de un patrón MVC. La vista es php pero sobre todo HTML con código php mínima incrustado, cosas como esta -Separar el código del diseño en la plantilla
Welcome <?php echo $USERNAME ?>
y
<table>
<?php foreach ($USERS as $row) : ?>
<tr><td><?php echo $row->name ?><td><?php echo $row->address ?></tr>
<?php endforeach ?>
sólo quiero lógica de diseño de pantalla en este archivo, y yo quiero que sea sencillo !
Esto en su mayoría funciona realmente bien para mí, sin embargo estoy luchando un poco ciertos aspectos. Por ejemplo, mire la tabla en el código anterior e imagine que cada columna (nombre y dirección) tiene un título NameAddress
Imagine que quiero hacer que las columnas se puedan ordenar. Así que lo hago algo así como -
<tr><th><a href="?sort=name">Name</a><td><a href="?sort=addr">
Pero esto no es suficiente. Mi vista necesita ver por qué columna se está ordenando y agregar una flecha hacia arriba o hacia abajo. Necesita cambiar el enlace de la columna ordenada actualmente a? Sort = name_reverse si esa columna ya está siendo ordenada de modo que al hacer clic en ella se ordene de otra manera. Es un poco demasiado complicado para escribir buen código limpio en mi plantilla ahora ...
para que pueda obtener mi controlador para crear las variables que contienen -
<tr><th><?php echo $HEADING[0] ?><th><?php $HEADING[1] ?>
etc, pero esto significa que mi controlador es ahora generar HTML real que es realmente responsabilidad de la plantilla de página. Elimina la capacidad de la plantilla para formatear la página de diferentes maneras ... Y simplemente se siente mal.
Pero cómo puedo adecuado manejo de estas, donde me siento que necesito mi controlador de página a ser las variables que generan HTML que contienen ...
¿Alguna sugerencia?
Me gusta esto. Cosas como sortlink permitirían a los "diseñadores" transformar los datos sin hacer que escriban código complejo. Y la información original todavía está allí, así que no obliga a un estilo en particular a diferencia de proporcionar HTML en las variables – jcoder