Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/12/2009, 19:24
maue75
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Zend, seguimiento del menu y el item clickeado

Realice este metodo para evitar trabajar con parámetros. No se si es lo mejor pero me ha gustado.

En el init() del controller, asigno a una variable en la view el menú que se ha invocado

$this->view->menuElegido = $this->getOpcionMenu();


//Esta funcion, rastrea la url actual, y busca cual de las palabras de mi menu aparece
public function getOpcionMenu()
{
$pathActual=$_SERVER['REQUEST_URI'];

$menuAdmin=array('home','clientes','productos','pr oveedores', 'contacto');

for ($i=0;$i<count($menuAdmin);$i++){
$p=strpos($pathActual,$menuAdmin[$i]);
if ($p===false){
//
}else{
return $menuAdmin[$i];
}
}
return false;
}


luego, en el phtml donde armo el menú, coloco algo como esto por cada item del menu:
<li <?php if(strpos($this->menuElegido, 'productos')!==false) echo "id=current" ?>>
<a title="Productos"
href="<?php echo $this->baseUrl ?>/admin/productos/">
<span>Productos</span>
</a></li>

La condición es que exista una palabra única que identifique a cada item del menú, y con eso armar el array dentro de la función.