/**
* Função que define qual diretório se encontra a classe não definida
* @param string Nome da classe
*/
function definirDiretorio($stClasse)
{
    $definicoes = definicao::pegarDefinicao();
    $stEntidade = definicaoEntidade::entidade($stClasse);
    foreach ($definicoes->xpath('//classes/classe') as $index => $classe) {
        if (isset($classe['id'])) {
            $id = strval($classe['id']);
            $slice = substr($stClasse, 0, strlen($id));
            if ($id == $slice) {
                if (strval($classe['entidade']) == 'sim') {
                    $dir = "{$stEntidade}/" . strval($classe['dir']) . '/';
                    $tipoBanco = strval($classe['tipoBanco']) == 'sim' ? strval($definicoes->bancos->banco[0]['tipo']) : null;
                } else {
                    $dir = strval($classe['dir']) . '/';
                    $tipoBanco = strval($classe['tipoBanco']) == 'sim' ? strval($definicoes->bancos->banco[0]['tipo']) : null;
                }
            }
        } else {
            $dirPadrao = $classe['dir'];
            $tipoBanco = strval($classe['tipoBanco']) == 'sim' ? strval($definicoes->bancos->banco[0]['tipo']) : null;
        }
    }
    $stDiretorio = isset($dir) ? $dir : $dirPadrao;
    if ($tipoBanco) {
        $stArquivo = "{$stDiretorio}{$stClasse}.{$tipoBanco}.php";
    } else {
        $stArquivo = "{$stDiretorio}{$stClasse}.php";
    }
    return array('stDiretorio' => $stDiretorio, 'stArquivo' => $stArquivo);
}
 /**
  * Método construtor que lê os acessos liberados para o usuário logado
  */
 public function __construct()
 {
     try {
         $definicoes = definicao::pegarDefinicao();
         $controleDeAcesso = $definicoes->xpath('//controleDeAcesso');
         $this->menuLiberado = isset($controleDeAcesso[0]) && strval($controleDeAcesso[0]['liberado']) == 'sim' ? true : false;
         if (!$this->menuLiberado) {
             $nUsuario = sessaoSistema::pegar('usuario');
             $nAcesso = new NAcesso();
             $this->acessosLiberados = array_flip($nAcesso->lerAcessosPorUsuario($nUsuario)->gerarVetorDeAtributo('nmAcesso'));
         }
         return true;
     } catch (erro $e) {
         return false;
     }
 }
 /**
  * Método criado para efetuar a validação de acesso a um controle do sistema
  * @param string nome do controle acessado
  */
 public static function validarAcesso($controleAcessado)
 {
     try {
         $definicoes = definicao::pegarDefinicao();
         if (strval($definicoes->controleDeAcesso['liberado']) == 'sim') {
             return true;
         }
         switch (true) {
             case !sessaoSistema::tem('usuario'):
                 throw new erroAcesso('Acesso não permitido, usuário não registrado!');
             default:
                 $nUsuario = sessaoSistema::pegar('usuario');
                 $nUsuario->carregarPerfis();
                 $nAcesso = new NAcesso();
                 $colecao = $nAcesso->lerAcessosPorUsuario($nUsuario, $controleAcessado);
                 if (!$colecao->contarItens()) {
                     throw new erroAcesso('Acesso Não Permitido!');
                 }
         }
         return true;
     } catch (erro $e) {
         throw $e;
     }
 }
* @package Sistema
* @subpackage Index
*/
$versao = '5.1.2';
if (phpversion() < $versao) {
    throw new Exception(sprintf('O Calixto Framework não funciona com versão inferior a %s.', $versao));
}
header("Content-type:text/html; charset=utf-8");
date_default_timezone_set('America/Sao_Paulo');
set_time_limit(0);
//Lendo o arquivo XML de definições de diretórios e arquivos
$definicoes = simplexml_load_file('.sistema/xml/definicoes.xml');
$dirCalixto = strval($definicoes->classes->classe[0]['dir']);
//Carrregando as classes de definições e erros
include_once $dirCalixto . 'definicoes/include.php';
$definicoes = definicao::pegarDefinicao('.sistema/xml/definicoes.xml');
switch (definicaoSistema::pegarAmbiente()) {
    case definicaoSistema::homologacao:
        ini_set('display_errors', 'Off');
        break;
    case definicaoSistema::producao:
        ini_set('display_errors', 'Off');
        break;
    case definicaoSistema::desenvolvimento:
    default:
        ini_set('display_errors', 'On');
        break;
}
error_reporting(E_ALL | E_STRICT);
set_error_handler('reportarErro');
/**