All pastes #939844 Raw Edit

Unnamed

public text v1 · immutable
·published 2008-03-12 16:54 UTC
rendered paste body
<?php

class Zend_View_Helper_Navigation
{
	public $view;
	
	public function setView(Zend_View_Interface $view) {
		$this->view = $view;
	}
	
	public function navigation() {
		return $this;
	}
	
	public function main() {
		
		$user = Zend_Auth::getInstance()->getIdentity();
		
		if (isset($user->acl_role_id) && $user->acl_role_id > 0) {
			$acl = EDM_Acl::getInstance();
			$db = Zend_Db_Table::getDefaultAdapter();
			
			$navs = $db->fetchAll("SELECT
					acl_resource.acl_resource_name,
					acl_privilege.acl_privilege_name,
					navigation.navigation_name
					FROM navigation, acl_privilege, acl_resource WHERE 
					navigation.acl_privilege_id = acl_privilege.acl_privilege_id AND
					acl_privilege.acl_resource_id = acl_resource.acl_resource_id
					ORDER BY navigation.navigation_order");
        	
			$this->view->nav_list = array();
			
			foreach ($navs as $nav_item) {
				if ($acl->has($nav_item['acl_resource_name'])) {
					if ($acl->isAllowed($user->acl_role_id, $nav_item['acl_resource_name'], $nav_item['acl_privilege_name'])) {
						$this->view->nav_list[] = array('href'=>array('controller'=>$nav_item['acl_resource_name'], 'action'=>$nav_item['acl_privilege_name']), 'name'=>$nav_item['navigation_name']);
					}
				}
			}
			
			return $this->view->render('nav/list.phtml');
			
		}
		
	}
	
}