Hola, estoy editando un código que saqué de un libro (
POO y MVC en PHP) y este tiene un motor de plantillas.
Pero me surge una duda al generar los menús, cómo podría ser por ejemplo si estoy en la página de Inicio, que el botón 'Inicio' aparezca seleccionado?
O sea lo que quiero es asignarle una clase CSS al botón activo, de acuerdo a la página que esté abierta.
En vista.php hay algo así:
Código PHP:
$diccionario = array(
'links_menu'=>array(
'VIEW_SET_USER'=>MODULO.VIEW_SET_USER.'/',
'VIEW_GET_USER'=>MODULO.VIEW_GET_USER.'/',
'VIEW_EDIT_USER'=>MODULO.VIEW_EDIT_USER.'/',
'VIEW_DELETE_USER'=>MODULO.VIEW_DELETE_USER.'/'
)
// (...)
);
function retornar_vista($vista, $data=array()) {
// (...)
$html = render_dinamic_data($html, $diccionario['links_menu']);
// (...)
}
user_template.html
Código:
<div id="menu">
<a href="/mvc/{VIEW_SET_USER}" title="Nuevo usuario">Agregar usuario</a>
<a href="/mvc/{VIEW_GET_USER}" title="Buscar usuario">Buscar/editar usuario</a>
<a href="/mvc/{VIEW_DELETE_USER}" title="Borrar usuario">Borrar usuario</a>
</div>
Lo que se me ocurrio es usar la misma técnica de los enlaces, pero para asignar clases CSS
Código:
<div id="menu">
<a href="/mvc/{VIEW_SET_USER}" class="{NUEVO_USUARIO}" title="Nuevo usuario">Agregar usuario</a>
<a href="/mvc/{VIEW_GET_USER}" class="{BUSCAR_USUARIO}" title="Buscar usuario">Buscar/editar usuario</a>
<a href="/mvc/{VIEW_DELETE_USER}" class="{BORRAR_USUARIO}" title="Borrar usuario">Borrar usuario</a>
</div>
Y en vista.php hago que si la etiqueta {} es la misma que la vista, entonces reemplaza con la clase correspondiente, de lo contrario la reemplaza con nada, o sea ''.
Pero es la primera vez que manejo un sistema así, de templates, y no sé si eso sería lo adecuado. Ustedes cómo lo harían?