<?php

class Agro_Plugin_Navigation_Create {
	public $pages;
	private $user;
	private $acl;
	
	public function __construct() {
		$this->user = Zend_Auth::getInstance()->getIdentity();
		
		if ($this->user) {
			if(!$_SESSION['menu']) {
				$this->pages = $this->buildNavigationRole();
				$_SESSION['menu'] = $this->pages;
			} else {
				$this->pages = $_SESSION['menu'];
			}
		}
	}
	
	private function buildNavigationRole($parent=null) {
		$Acoes = new Sistema_Model_Acoes();
		$Rs = $Acoes->getMenus($parent);
		$pages = array();
		
		if ($Rs->count()) {
			foreach ($Rs as $Row) {
				if ($Row->ds_module && $Row->ds_controller && $Row->ds_action) {
					$resource = "{$Row->ds_module}:{$Row->ds_controller}:{$Row->ds_action}";
				} else if ($Row->ds_module && $Row->ds_controller && !$Row->ds_action) {
					$resource = "{$Row->ds_module}:{$Row->ds_controller}";
				} else if ($Row->ds_module && !$Row->ds_controller && !$Row->ds_action) {
					$resource = "{$Row->ds_module}";
				}
				
				if (Agro_Util::checkPermission($resource,false,$Row->id)) {
					$params = array();
					
					if ($Row->ds_param) {
						$params = Zend_Json::decode($Row->ds_param);
						$params['menu'] = true;
					} else {
						$params['menu'] = true;
					}
					
					
					if (!$Row->id_parent or $Row->ds_action == 'submenu') {
						$pages[$Row->id]['uri'] = '#';
					} else {
						$pages[$Row->id]['controller'] = $Row->ds_controller;
						$pages[$Row->id]['module'] = $Row->ds_module;
						$pages[$Row->id]['action'] = $Row->ds_action;
					}
					
					$pages[$Row->id]['title'] = $Row->ds_descricao;
					
					$User = Zend_Auth::getInstance()->getIdentity();
					$Acl = Agro_Acl::getInstance($User);
					$role = ($role ? $role : $User->ds_chave);
										
					if($Row->ds_label == 'Nobre' and Zend_Auth::getInstance()->getIdentity()->ds_chave == 'SEGURADORA_ESSOR'){
					    $pages[$Row->id]['label'] = 'Seguradora';					    
					} else {
					    $pages[$Row->id]['label'] = $Row->ds_label;					    
					}
					
					$pages[$Row->id]['params'] = $params;
					$pages[$Row->id]['pages'] = $this->buildNavigationRole($Row->id);
				}
			}
		}
		
		return $pages;
	}
}