Exemplo n.º 1
0
 /**
  * Gera Menus para a View
  */
 public function getMenu()
 {
     # Monto a opção de escolha dos sistemas do Usuario
     try {
         $sess = Session::getLiveSession('sisicmbio', 'USER');
         SIALException::ThrowsExceptionIfParamIsNull($sess, 'Não foi encontrada a sessão para o objeto informado');
     } catch (SIALException $e) {
         # Não foi encontrada a Sessão para Este Sistema
         header("Location: " . $this->bootstrap()->config()->get('app')->get('authSystem'));
     }
     $count = 0;
     foreach ($sess->sistemas as $sistema) {
         $arrSistema[$count]['href'] = $sistema['sqSistema'];
         $arrSistema[$count]['text'] = $sistema['sgSistema'];
         $count++;
     }
     $Menuoptions = array('__DIVIDER_VERTICAL__', 'Início' => array(), '__DIVIDER_VERTICAL__', 'Sistemas' => $arrSistema, '__DIVIDER_VERTICAL__');
     $menuParam = new \stdClass();
     $menuParam->options = $Menuoptions;
     $menuParam->type = 'h';
     $this->_SIALApplication->set('menuH', $this->getSAF()->create('menu', $menuParam));
     $this->_SIALApplication->set('param', array('nome' => $sess->noPessoa, 'perfil' => $sess->noPerfil, 'uorg' => isset($sess->noUnidadeOrg) ? $sess->noUnidadeOrg : NULL, 'help' => 'HTML', 'sysId' => $sess->sqSistema, 'multiProfile' => count($sess->allProfile) > 1 ? TRUE : FALSE));
     # Monta os Menus
     $menu = $sess->MenuExterno;
     $arrMenu = array();
     foreach ($menu as $no) {
         #Sq da Raíz
         $curr = $no['MenuPai']['sqMenu'];
         $arrMenu[$curr]['text'] = $no['MenuPai']['noMenu'];
         $arrMenu[$curr]['href'] = $no['Acao'];
         #adiciona cada filho
         if (isset($no['MenuFilho'])) {
             foreach ($no['MenuFilho'] as $filho) {
                 if (isset($filho['Acao']) && NULL !== $filho['Acao']) {
                     $arrMenu[$curr][$filho['MenuFilho']['sqMenu']]['href'] = $filho['Acao'];
                 }
                 if (!empty($filho['MenuFilho']['noMenu'])) {
                     $arrMenu[$curr][$filho['MenuFilho']['sqMenu']]['text'] = $filho['MenuFilho']['noMenu'];
                 }
             }
         }
         if (isset($no['MenuNeto'])) {
             foreach ($no['MenuNeto'] as $menuNeto) {
                 $netoList = current($menuNeto);
                 if (isset($arrMenu[$curr][$netoList['sqMenuPai']])) {
                     $arrMenu[$curr][$netoList['sqMenuPai']][$netoList['sqMenu']]['href'] = isset($menuNeto['Acao']) ? $menuNeto['Acao'] : '#';
                     if (isset($netoList['noMenu'])) {
                         $arrMenu[$curr][$netoList['sqMenuPai']][$netoList['sqMenu']]['text'] = $netoList['noMenu'];
                     }
                 }
             }
         }
     }
     $menuParam = new \stdClass();
     $menuParam->title = 'Menu';
     $menuParam->options = $arrMenu;
     $menuParam->type = 'v';
     $this->_SIALApplication->set('menuV', $this->getSAF()->create('menu', $menuParam));
 }
Exemplo n.º 2
0
 /**
  * autoload de arquivo de constantes
  * este metodo, com base na requisicao (bootstrap->request()), carrega o arquivo de constante do modulo ativado
  *
  * @throws br\gov\sial\core\exception\SIALException
  * */
 public function requestConstantAutoload()
 {
     # recupera o namespace da app
     # observer que para o correto funcionamento eh necesasrio que esta propriedade
     # seja configurada em application/config/config.ini
     $namespace = substr($this->_bootstrap->config('app.namespace'), 1);
     $message = 'É necessário informar o namespace da aplicação em config.ini::app.namespaces ';
     SIALException::throwsExceptionIfParamIsNull(!empty($namespace), $message);
     # constantes gerais de todos os sistemas que deve esta sob a pasta \br\gov\icmbio\[systemName]\application
     $loadConstants['sys'] = $namespace;
     # constantes geral do sistema carregado: \br\gov\icmbio\[systemName]\application\subsystem
     $loadConstants['app'] = $loadConstants['sys'] . self::NAMESPACE_SEPARATOR . $this->_bootstrap->getModule();
     # constante do modulo do sistema selecionado \br\gov\icmbio\[systemName]\application\subsystem\module
     $loadConstants['mdl'] = $loadConstants['app'] . self::NAMESPACE_SEPARATOR . $this->_bootstrap->getFuncionality();
     foreach ($loadConstants as $key => $value) {
         $assert = 'mdl' == $key;
         $this->loadModuleConstant($value, $assert);
     }
 }
Exemplo n.º 3
0
 /**
  * recupera o conteudo registrado pelo metodo <i>Registry::set()</i>
  *
  * @code
  * <?php
  *  # registra um valor no Registry
  *  Registry::set('strKey', 'someValue');
  *
  *  # recuper ao valor registrado
  *  echo Registry::get('strKey');
  *
  *  // output: someValue
  * ?>
  * @endcode
  * @param string $index
  * @return mixed
  * @throws \br\gov\sial\core\exception\SIALException
  * */
 public static function get($index)
 {
     SIALException::throwsExceptionIfParamIsNull(self::isRegistered($index), sprintf(self::T_REGISTRY_STR_NO_ENTRY_REGISTERED, $index));
     $instance = self::factory();
     return $instance->_data->offsetGet($index);
 }
Exemplo n.º 4
0
 /**
  * {@inheritdoc}
  * */
 public function __construct($message = '', $code = 0, \Exception $previous = NULL)
 {
     parent::__construct($message, $code, $previous);
 }