Example #1
0
 /**
  * @abstract Executa o comando para retornar os dados 
  * em JSON para o AJAx
  * @param $xjson
  * @return String JSON
  */
 public function responde($xjson = false)
 {
     $msg = Sistema_Mensagem::instanciar();
     $json = new Sistema_Json();
     //Adiciona as Variáveis adicionais na resposta do Ajax
     if ($this->_vars != null) {
         foreach ($this->_vars as $campo => $valor) {
             $respostajax[$campo] = $valor;
         }
     }
     $respostajax['qtd'] = $msg->getMensagem(true) ? count($msg->getMensagem(true)) : 0;
     $respostajax['mensagem'] = $msg->getMensagem();
     $respostajax['tipo'] = $msg->getTipo();
     $respostajax['campos'] = $msg->getCamposErro();
     $respostajax['erro'] = $msg->temErro() ? 1 : 0;
     $respostajax['alerta'] = $msg->temAlerta() ? 1 : 0;
     if (is_array($this->_botoes)) {
         foreach ($this->_botoes as $k => $v) {
             $respostajax['botao'][] = $v;
         }
     }
     $resposta = $json->encode($respostajax);
     $resposta = str_replace("\n", '<br />', $resposta);
     # Verifica se irá retornar junto com o cabeçalho HTTP
     if ($xjson) {
         header("Content-Type: text/html; charset=iso-8859-1");
         header('X-JSON: ' . $resposta);
     } else {
         # Retorna como texto
         header("Content-Type: text/html; charset=iso-8859-1");
         echo $resposta;
     }
 }
Example #2
0
 /**
  *	instanciar()
  *
  *	Fornece o Singleton para a classe
  *
  * @author Everton Emilio Tavares
  * @access public
  * @return Sistema_Mensagem
  */
 public static function instanciar()
 {
     if (!self::$_instancia instanceof self) {
         self::$_instancia = new self();
     }
     return self::$_instancia;
 }
Example #3
0
 public function acaoTesteAcao()
 {
     $l = Sistema_Layout::instanciar();
     $m = Sistema_Mensagem::instanciar();
     $m->setSucesso("tESte");
     $l->setNomePagina("Teste para Aчуo");
     $l->setCorpo("Texto Acao");
 }
Example #4
0
 public function __construct($classe, $form = "")
 {
     $this->_class = $classe;
     $this->_form = $form;
     $this->_msg = Sistema_Mensagem::instanciar();
     $this->l = Sistema_Layout::instanciar();
     $this->l->includeCss(SISTEMA_URL . "css/formulario.css");
     $this->l->includeJavaScript(SISTEMA_URL . "javascript/formulario.js");
 }
Example #5
0
 /**
  * @abstract Verifica se o usuario tem acesso a ação chamado
  * @param $acao
  */
 private function temPermissao($acao)
 {
     # Verifica se tem ação total
     if ($this->_login->temPermissao($acao)) {
         return true;
     } else {
         $this->_msg->setErro("Você não tem acesso a esta ação ");
     }
 }
Example #6
0
 /**
  * @abstract Método dinâmico para get e set
  * @param $nome
  * @param $valor
  * @return mixed
  */
 public function __call($nome, $valor)
 {
     $nome = strtolower($nome);
     $prefixo = substr($nome, 0, 3);
     if ($prefixo == "set") {
         $var = str_replace("set", "_", $nome);
         $this->{$var} = $valor[0];
     } else {
         if ($prefixo == "get") {
             $var = str_replace("get", "_", $nome);
             return $this->{$var};
         } else {
             $this->_msg->setErro('Método da Persistência ' . $nome . '() inválido.');
         }
     }
 }
Example #7
0
 /**
  * Construtor da Classe
  * @example "templates/index.tpl"
  * @param string $template caminho do template
  */
 public function __construct($template)
 {
     $msg = Sistema_Mensagem::instanciar();
     $this->template_dir = SISTEMA_DIR . 'templates';
     $this->compile_dir = SISTEMA_DIR . 'templates/templates_c';
     $this->config_dir = SISTEMA_DIR . 'templates/configs';
     $this->cache_dir = SISTEMA_DIR . 'templates/cache';
     $this->caching = false;
     $template_nome = SISTEMA_DIR . $template;
     if (file_exists($template_nome)) {
         $this->_template = $template_nome;
     } else {
         $msg->setErro("Erro ao Criar Template: Arquivo de Template não é válido");
         return false;
     }
     $this->addVar("SISTEMA_URL", SISTEMA_URL);
 }
Example #8
0
 /**
  * Seta uma entrada no histórico
  * @param $tipo
  * @param $chave
  * @param $tabela
  */
 public function setHistorico($tipo, $chave, $tabela)
 {
     # pega o IP
     $ip = $_SERVER["REMOTE_ADDR"];
     # pega a data
     # Data eh gravada direto pelo banco no formato TIMESTAMP
     # pega a acao da tela
     $acao = $this->_acao;
     # Codigo do usuario
     $usr_cod = $_SESSION['login']['codigo'];
     # Monta a SQL
     $ins = sprintf("INSERT INTO historico \n\t\t\t\t\t\t(hist_ip,hist_acao,usr_cod,hist_tipo,hist_chave,hist_tabela)\n\t\t\t\t\t\tVALUES\n\t\t\t\t\t\t('%s','%s','%s','%s','%s','%s')", $ip, $acao, $usr_cod, $tipo, $chave, $tabela);
     # Executa a inserção
     if (!Sistema_Conecta::Execute($ins)) {
         $msg = Sistema_Mensagem::instanciar();
         $msg->setErro("Não foi possível gravar o histórico para a ação " . $acao);
     }
 }
Example #9
0
 /**
  * get
  *
  * @abstract Retorna o valor de uma variável independente de onde
  * ela esteja armazenada.
  *
  * @param string variavel Nome da variável que está sendo procurada
  * @param string local Local onde a variável está armazenada, este parâmetro
  * por padrão é null, porém se existir duas variáveis com o mesmo nome
  * mas em dois locais diferentes deve ser especificado o POST, GET ou SESSION
  * */
 public static function get($variavel, $local = "")
 {
     $msg = Sistema_Mensagem::instanciar();
     $valor = "";
     # acesso com o local sendo informado, usado apenas quando
     if ($local) {
         switch ($local) {
             case "GET":
                 $valor = self::validaParametro($_GET[$variavel]);
                 break;
             case "POST":
                 $valor = self::validaParametro($_POST[$variavel]);
                 break;
             case "SESSION":
                 $valor = self::validaParametro($_SESSION[$variavel]);
                 break;
             default:
                 break;
         }
         return $valor;
     } else {
         $achouVariavel = 0;
         # é post
         if (!$_POST[$variavel] === false) {
             $achouVariavel++;
             $valor = $_POST[$variavel];
         }
         # é get
         if (!$_GET[$variavel] === false) {
             $achouVariavel++;
             $valor = $_GET[$variavel];
         }
         # é session
         if (!$_SESSION[$variavel] === false) {
             $achouVariavel++;
             $valor = $_SESSION[$variavel];
         }
         if ($achouVariavel > 1) {
             $msg->setErro("ERRO : var duplicated.");
         } else {
             return self::validaParametro($valor);
         }
     }
 }
    $sql = "SELECT * FROM trabalho WHERE trb_cod = " . Sistema_Variavel::get('cod');
    $trb = Sistema_Conecta::Execute($sql);
    foreach ($trb[0] as $k => $v) {
        $_POST[$k] = $v;
    }
    // verifica se o cara que ta logado é o dono do projeto
    if ($login->getCodigo() != $_POST['usr_cod']) {
        die("Este trablho pertence a outro usuário.");
    }
    if ($_POST['trb_status'] != ATIVO && $_POST['trb_status'] != ACEITOCOMRESALVAS) {
        die("Este não pode ser editado.");
    }
}
// salvar os dados do projeto
if (Sistema_Variavel::get('salvar')) {
    $msg = Sistema_Mensagem::instanciar();
    // verifica se as areas basicas foram escolhidas
    /*
    		if (($_POST['trb_area'] == "") && ($_POST['trb_areabasica'] == "") && ($_POST['trb_outraqual'] == "")){
    			$mensagem = '<div class="clean-error">É necessário escolher a área básica</div><br/>';
    		}*/
    if ($_POST['trb_categoria'] != "Pesquisa/Extensão") {
        $autores = explode(";", $_POST['trb_coautor']);
        $orientadores = explode(";", $_POST['trb_orientador']);
        if (sizeof($autores) > 3 || sizeof($orientadores) > 2) {
            $mensagem = '<div class="clean-error">Para Casos Clínicos e Revisão de Literatura no máximo 3 co-autores e 2 orientadores</div><br/>';
        }
    }
    $palavraschave = explode(";", $_POST['trb_palavraschave']);
    if (sizeof($palavraschave) != 3 && sizeof($palavraschave) != 4) {
        $mensagem = '<div class="clean-error">Informe 3 ou 4 palavras chaves separadas por ; (ponto e virgula)</div><br/>';
Example #11
0
 /**
  * Ação para testes
  * @return String
  */
 public function acaoGerarmidia()
 {
     $sql = "\r\n\t\tSELECT\r\n\t\t\t*\r\n\t\tFROM trabalho t\r\n\t\t\tINNER JOIN usuario u ON\r\n\t\t\t\tt.usr_cod = u.usr_cod\r\n\t\tWHERE\r\n\t\t\tt.trb_status = " . ACEITO . " OR \r\n\t\t\tt.trb_status = " . ACEITOCOMRESALVAS;
     $trabalhos = Sistema_Conecta::Execute($sql);
     // limpar os arquivos da pasta
     $dir_aceitos = SISTEMA_DIR . "cd\\trabalhos_aceitos\\";
     $dir_enviados = UPLOAD_DIR;
     Modulo_Trabalho_Funcao::funlinkRecursive($dir_arquivos, false);
     # percorre os trabalhos que foram aceitos
     foreach ($trabalhos as $trabalho) {
         $a = '{"ID":"' . $trabalho['trb_cod'] . '",';
         $a .= '"TITULO":"' . $trabalho['trb_titulo'] . '",';
         $a .= '"AUTOR":"' . $trabalho['usr_nome'] . '",';
         $a .= '"AREA":"' . $trabalho['trb_area'] . '",';
         $a .= '"DESCRICAO":"' . $trabalho['trb_resumo'] . '"}';
         $aux[] = utf8_encode(strtoupper(strtr($a, "áéíóúâêôãõàèìòùç", "ÁÉÍÓÚÂÊÔÃÕÀÈÌÒÙÇ")));
         // copiar os arquivos dos trabalhos que foram aceitos para a pasta do CD
         $arquivoName = $trabalho['trb_cod'] . ".pdf";
         $arquivo_aceito = $dir_aceitos . $arquivoName;
         if (!file_exists($arquivo_aceito)) {
             die("O arquivo do trabalho " . $trabalho['trb_cod'] . " não foi localizado.");
         }
         $arquivo_enviado = $dir_enviados . $arquivoName;
         copy($arquivo_enviado, $arquivo_aceito);
     }
     $texto = implode(",", $aux);
     $conteudo = 'var json = [' . $texto . ']; var trabalhos = new TAFFY(json);';
     // grava o arquivo
     $filename = SISTEMA_DIR . 'cd\\base.js';
     // Primeiro vamos ter certeza de que o arquivo existe e pode ser alterado
     if (is_writable($filename)) {
         if (!($handle = fopen($filename, 'w'))) {
             echo "Não foi possível abrir o arquivo ({$filename})";
             exit;
         }
         // Escreve $conteudo no nosso arquivo aberto.
         if (fwrite($handle, $conteudo) === FALSE) {
             echo "Não foi possível escrever no arquivo ({$filename})";
             exit;
         }
         $msg = Sistema_Mensagem::instanciar();
         $msg->setSucesso("Midia gerada com sucesso.");
         fclose($handle);
     } else {
         echo "O arquivo {$filename} não pode ser alterado";
     }
 }
Example #12
0
 /**
  * Ação responsável para salvar os dados vindos
  * do formulário
  * @return JSON
  */
 public function ajaxSalvarEntradas()
 {
     # Verifica se o aluno existe
     $usr_cod = Sistema_Conecta::getOne("SELECT usr_cod FROM usuario WHERE usr_cod=" . $_POST['usr_cod']);
     if ($usr_cod > 0) {
         # Verifica se o aluno ja foi dado entrada
         $etcr_cod = Sistema_Conecta::getOne("SELECT etcr_cod FROM entrada_cursos WHERE usr_cod=" . $usr_cod . " AND crs_cod=" . $_POST['crs_cod']);
         if ($etcr_cod > 0) {
             $msg = Sistema_Mensagem::instanciar();
             $msg->setAlerta("Participante com o código " . $usr_cod . " já cadastrado para este curso");
         } else {
             $obj = new Classe_EntradaCursos();
             $obj->setDados($_POST);
             $id = $obj->salvar();
             if ($id > 0) {
                 $msg = Sistema_Mensagem::instanciar();
                 $msg->limparMensagem();
                 $msg->setSucesso("Participante " . $usr_cod . " cadastrado com sucesso");
             }
         }
     } else {
         $msg = Sistema_Mensagem::instanciar();
         $msg->setAlerta("Participante com o código " . $_POST['usr_cod'] . " não cadastrado");
     }
     $json = new Sistema_Ajax();
     //$json->addVar($id);
     $json->responde();
 }
Example #13
0
<?php

session_start();
# Start para a sessão PHP
# Não deixa a página permanecer no cache
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
/**
 * @abstract Arquivo principal do sistema, todas as página 
 * que deverão ser visualizadas no navegador serão chamadas 
 * por este arquivo.
 * 
 * @copyright  -
 * @author     -
 * @version    1.0
 * @since      10/03/2009
 */
# Inclui o arquivo de configuração
include 'config.php';
# Instancia a classe para mensagens
$mensagem = Sistema_Mensagem::instanciar();
# Instancia a classe de controle do sistema
$controle = Sistema_Controle::instanciar();
# Executa o controle
$controle->executar();
# Exibe o conteudo
$template = Sistema_Layout::instanciar();
$template->exibir();
Example #14
0
 /**
  * @abstract Função responsável por executar todas
  * as SQL do sistema, ela fará o tratamento de execessoes
  *
  * @param string Sql que será executada
  * @param array PDO.. tipo de retorno
  * PDO::FETCH_OBJ: retorna um objeto
  * PDO::FETCH_BOTH: retorna como indice um numero e a chave
  * PDO::FETCH_ASSOC: retorna como indice a chave
  * */
 public static function Execute($sql, $PDO = false)
 {
     $con = self::getConexao();
     # Verifica se é uma SELECT
     $temp = strpos(strtoupper('X' . $sql), "SELECT");
     $pers = $con->prepare($sql);
     if ($temp == true) {
         try {
             $resultado = $con->query($sql);
             # verifica se tem algum erro
             $erros = $con->errorInfo();
             if ($erros[0] != 0) {
                 $mensagem = sprintf("Erro ao executar a SQL <br/> <i style='color:red'>%s</i><br/> <b>MENSAGEM DO BANCO :</b> %s", $sql, $erros[2]);
                 throw new Sistema_Excessoes($erros[2], 4);
             } else {
                 if (!$PDO) {
                     return $resultado->fetchAll();
                 } else {
                     return $resultado->fetchAll($PDO);
                 }
             }
         } catch (Sistema_Excessoes $e) {
             $msg = Sistema_Mensagem::instanciar();
             $msg->setErro($e);
         }
     } else {
         $con->beginTransaction();
         $pers->execute();
         $erros = $pers->errorInfo();
         if ($erros[0] != 0) {
             $con->rollBack();
             $mensagem = sprintf("Erro ao executar a SQL <br/> <i style='color:red'>%s</i><br/> <b>MENSAGEM DO BANCO :</b><br> %s", $sql, $erros[2]);
             //throw new Sistema_Excessoes($erros[2],4);
             $msg = Sistema_Mensagem::instanciar();
             $msg->setErro($mensagem);
         } else {
             $resultado = true;
             if (strpos(strtoupper('X' . $sql), "INSERT") == true) {
                 $resultado = $con->lastInsertId();
             }
             $con->commit();
             return $resultado;
         }
     }
 }
Example #15
0
 public function __construct()
 {
     $this->_msg = Sistema_Mensagem::instanciar();
 }
Example #16
0
 public function exibir($template = null)
 {
     $msg = Sistema_Mensagem::instanciar();
     # Inclui os cabeçalhos JavaScript
     if ($this->inc_javaScripts != null) {
         $inc_cabecalho = "<!-- JavaScript -->\n";
         foreach ($this->inc_javaScripts as $arquivo => $nulo) {
             $inc_cabecalho .= "\t<script type='text/javascript' src='" . $arquivo . "'></script> \n";
         }
         $inc_cabecalho .= "\n\n\n";
     }
     $this->cabecalho = $inc_cabecalho . $this->cabecalho;
     # Inclui os cabeçalhos CSS
     if ($this->inc_css != null) {
         $this->cabecalho .= "<!-- Folhas de estilos -->\n";
         foreach ($this->inc_css as $arquivo => $nulo) {
             $this->cabecalho .= "\t<link rel='stylesheet' type='text/css' media='all' href='" . $arquivo . "' />\n";
         }
         $this->cabecalho .= "\n\n\n";
     }
     $this->assign('cabecalho', $this->cabecalho);
     if ($template == null) {
         # Inclui as mensagens na tela
         $this->assign('mensagem', $msg->getMensagem());
         $this->assign('tipo_msg', $msg->getTipo());
         $menu = new Sistema_Menu();
         $this->assign('menu', $menu->getMenu());
         $this->assign('corpo', $this->corpo);
         $this->assign('info', $this->info);
         $this->assign('nome_pagina', $this->nomepagina);
         $this->assign('extra', $this->extra);
         $this->assign('nome_usuario', $this->usuario);
         $this->assign('onload', $this->onload);
         $this->assign('funcaojs', $this->getFuncoesJS());
         $this->assign('botoes', $this->getBotoes());
         $info = sprintf(" Seja bem vindo, <b>%s</b>. %s", $_SESSION['login']['nome'], date("d/m/Y H:i:s"));
         $this->assign('infotopo', $info);
         $this->display('index.tpl');
     } else {
         $this->display($template);
     }
 }