Foros del Web » Programando para Internet » PHP » CodeIgniter »

Duda sobre menú dinamico en CI

Estas en el tema de Duda sobre menú dinamico en CI en el foro de CodeIgniter en Foros del Web. Hola a todos, Quiero mostrar un menú vertical (que sea vertical es lo de menos) y dicho menú esta compuesto por categorías y subcategorías de ...
  #1 (permalink)  
Antiguo 29/12/2010, 13:10
Avatar de kazafun  
Fecha de Ingreso: diciembre-2003
Ubicación: Elda
Mensajes: 843
Antigüedad: 20 años, 3 meses
Puntos: 13
Pregunta Duda sobre menú dinamico en CI

Hola a todos,

Quiero mostrar un menú vertical (que sea vertical es lo de menos) y dicho menú esta compuesto por categorías y subcategorías de cada una de éstas. Es decir un menú a dos niveles.

La primera opción que se me viene a la cabeza sería realizar una consulta para las categorías y después cuando vamos mostrando cada categoría a su vez hacer una nueva consulta para mostrar las subcategorías de dicha categoría.
La DUDA que tengo es que si hago la segunda consulta en la vista "ROMPO" un poquito el paradigma MVC, y aunque sé que CI me proporciona esta flexibilidad me parece que no es lo más correcto.

¿Cual sería la manera correcta de hacerlo en CI? ¿Quizá preparar previamente un array bidimensional? ¿montar todo el html en el controlador a través de alguna función o librería ad-hoc?

Estoy aprendiendo CodeIgniter y espero que podais echarme una mano.

Gracias
__________________
MUERTE a Internet Explorer


Mi portfolio de diseño web en Elda
  #2 (permalink)  
Antiguo 31/12/2010, 08:19
(Desactivado)
 
Fecha de Ingreso: marzo-2005
Mensajes: 6
Antigüedad: 19 años
Puntos: 1
Respuesta: Duda sobre menú dinamico en CI

Hola kazafun,

Lo que te ocurre es normal al principio y tienes toda la razón en que romperías el paradigma MVC si realizaras consultas en la vista. Por coherencia, todas las consultas a base de datos deben estar en el modelo.

Si lo que quieres hacer es un menu a 2 niveles, lo que debes hacer es algo como esto en tu modelo:

Código PHP:
$categorias_superiores $this->db->getwhere('tu consulta', array('parent' => 0));
foreach(
$categorias_superiores->result() as $categoria_superior)
   
$categoria_superior->subcategorias $this->db->getwhere('tu consulta', array('parent' => $categoria_superior->id)); 
De forma que ahora en $categorias_superiores cada registro tiene a su vez un objeto con los registros de sus subcategorías.

Espero haberme explicado, sino, sigue preguntando ;)

Saludos!
  #3 (permalink)  
Antiguo 03/01/2011, 07:16
Avatar de kazafun  
Fecha de Ingreso: diciembre-2003
Ubicación: Elda
Mensajes: 843
Antigüedad: 20 años, 3 meses
Puntos: 13
Respuesta: Duda sobre menú dinamico en CI

Finalmente monte el listado de categorias en el controlador y lo envie a la vista, pensé que era lo "menos malo".

Pero me gusta más tu solución, es más limpia y correcta, la implementaré.

Muchas gracias!
__________________
MUERTE a Internet Explorer


Mi portfolio de diseño web en Elda

Etiquetas: categorias, subcategorias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:45.