I try experience like this:
<?php
class Internal_NavigationController extends Zend_Controller_Action
{
public static $initialized = false;
public static $map;
public static $action;
public static $controller;
public static $module;
public static $defaultAction;
public static $defaultController;
public static $defaultModule;
public static $front;
public static $request;
public function init()
{
if(!self::$initialized) {
$config = Zend_Registry::get('config');
self::$map = $config->navigation->toArray();
self::$front = $this->getFrontController();
self::$request = self::$front->getRequest();
self::$action = self::$request->getActionName();
self::$controller = self::$request->getControllerName();
self::$module = self::$request->getModuleName();
self::$defaultAction = self::$front->getDefaultAction();
self::$defaultController =
self::$front->getDefaultControllerName();
self::$defaultModule = self::$front->getDefaultModule();
self::$initialized = true;
}
}
public function breadcrumbsAction()
{
$items = array();
if(1) {
}
return $items;
}
public function menuAction()
{
$items = array();
$modules = $this->getModules();
foreach($modules as $key => $module) {
$module['url'] = '/';
if($key != self::$defaultModule) {
$module['url'] = '/' . $key;
}
$module['current'] = $key == self::$module;
$items[] = $module;
}
$this->view->items = $items;
}
public function submenuAction()
{
$items = array();
$moduleName = self::$module;
$controllers = $this->getControllers($moduleName);
foreach($controllers as $key => $controller) {
$url = array();
if($moduleName != self::$defaultModule) {
$url[] = $moduleName;
}
if($key != self::$defaultController) {
$url[] = $key;
}
$controller['url'] = '/' . implode('/', $url);
$controller['current'] = $key == self::$controller;
$items[] = $controller;
}
$this->view->items = $items;
}
protected function getControllers($module)
{
$items = array();
$attributes = array('title', 'description');
if(!isset(self::$map['modules'][$module]['controllers']) ||
!is_array(self::$map['modules'][$module]['controllers'])) {
return $items;
}
foreach(self::$map['modules'][$module]['controllers'] as $key =>
$controller) {
if(!is_array($controller)) {
continue;
}
$item = $controller;
foreach($attributes as $attribute) {
if(!isset($controller[$attribute])) {
$item[$attribute] = $key;
}
}
$items[$key] = $item;
}
return $items;
}
protected function getModule()
{
$module = false;
}
protected function getModules()
{
$items = array();
$attributes = array('title', 'description');
if(isset(self::$map['modules']) && is_array(self::$map['modules']))
{
foreach(self::$map['modules'] as $key => $module) {
if(!is_array($module)) {
continue;
}
$item = $module;
foreach($attributes as $attribute) {
if(!isset($module[$attribute])) {
$item[$attribute] = $key;
}
}
$items[$key] = $item;
}
}
return $items;
}
}
--
View this message in context:
http://www.nabble.com/Simple-menu-on-every-page-tp16121967s16154p16124527.html
Sent from the Zend Framework mailing list archive at Nabble.com.