예제 #1
0
 public static function LoadAlias($class)
 {
     if ($class == 'Request' || $class == 'All') {
         Oraculum::Load('Request');
         /**********************************
          * Tratamento de requisicoes
          **********************************/
         Oraculum_Request::getpagina();
         Oraculum_Alias::AddAlias('post', 'Oraculum_Request::post');
         Oraculum_Alias::AddAlias('get', 'Oraculum_Request::get');
         Oraculum_Alias::AddAlias('sess', 'Oraculum_Request::sess');
         Oraculum_Alias::AddAlias('setsess', 'Oraculum_Request::setsess');
         Oraculum_Alias::AddAlias('unsetsess', 'Oraculum_Request::unsetsess');
         Oraculum_Alias::AddAlias('init_sess', 'Oraculum_Request::init_sess');
         Oraculum_Alias::AddAlias('set_cookie', 'Oraculum_Request::set_cookie');
         Oraculum_Alias::AddAlias('cookie', 'Oraculum_Request::set_cookie');
         Oraculum_Alias::AddAlias('getpagina', 'Oraculum_Request::getpagina');
         Oraculum_Alias::AddAlias('getid', 'Oraculum_Request::getid');
         Oraculum_Alias::AddAlias('getlast', 'Oraculum_Request::getlast');
         Oraculum_Alias::AddAlias('getvar', 'Oraculum_Request::getvar');
         Oraculum_Alias::AddAlias('gets', 'Oraculum_Request::gets');
     }
     if ($class == 'Crypt' || $class == 'All') {
         Oraculum::Load('Crypt');
         /**********************************
          * Tratamento de criptografia
          **********************************/
         Oraculum_Alias::AddAlias('strcrypt', 'Oraculum_Crypt::strcrypt');
         Oraculum_Alias::AddAlias('strdcrypt', 'Oraculum_Crypt::strdcrypt');
         Oraculum_Alias::AddAlias('blowfish', 'Oraculum_Crypt::blowfish');
         Oraculum_Alias::AddAlias('blowfishcheck', 'Oraculum_Crypt::blowfishcheck');
     }
     if ($class == 'HTTP' || $class == 'All') {
         Oraculum::Load('HTTP');
         /**********************************
          * Tratamento de parametros HTTP
          **********************************/
         Oraculum_Alias::AddAlias('redirect', 'Oraculum_HTTP::redirect');
         Oraculum_Alias::AddAlias('ip', 'Oraculum_HTTP::ip');
         Oraculum_Alias::AddAlias('host', 'Oraculum_HTTP::host');
     }
     if ($class == 'Validate' || $class == 'All') {
         Oraculum::Load('Validate');
         /**********************************
          * Tratamento de formularios
          **********************************/
         Oraculum_Alias::AddAlias('validar', 'Oraculum_Validate::validar');
         Oraculum_Alias::AddAlias('verificaCPF', 'Oraculum_Validate::verificaCPF');
         Oraculum_Alias::AddAlias('verificaEmail', 'Oraculum_Validate::verificaEmail');
     }
     if ($class == 'Views' || $class == 'All') {
         Oraculum::Load('Views');
         /**********************************
          * Tratamento de Views
          **********************************/
     }
     if ($class == 'Text' || $class == 'All') {
         Oraculum::Load('Text');
         /**********************************
          * Tratamento de informacoes textuais
          **********************************/
         Oraculum_Alias::AddAlias('moeda', 'Oraculum_Text::moeda');
         Oraculum_Alias::AddAlias('moedasql', 'Oraculum_Text::moedasql');
         Oraculum_Alias::AddAlias('data', 'Oraculum_Text::data');
         Oraculum_Alias::AddAlias('data_mysql', 'Oraculum_Text::data_mysql');
         Oraculum_Alias::AddAlias('hora', 'Oraculum_Text::hora');
         Oraculum_Alias::AddAlias('saudacao', 'Oraculum_Text::saudacao');
         Oraculum_Alias::AddAlias('getpwd', 'Oraculum_Text::getpwd');
         Oraculum_Alias::AddAlias('inflector', 'Oraculum_Text::inflector');
         Oraculum_Alias::AddAlias('plural', 'Oraculum_Text::plural');
     }
     if ($class == 'Files' || $class == 'All') {
         Oraculum::Load('Files');
         /**********************************
          * Tratamento de inclusao de arquvos
          **********************************/
         Oraculum_Alias::AddAlias('inc', 'Oraculum_Files::inc');
     }
     if ($class == 'Logs' || $class == 'All') {
         Oraculum::Load('Logs');
         /**********************************
          * Tratamento de erros e logs
          **********************************/
         Oraculum_Alias::AddAlias('alert', 'Oraculum_Logs::alert');
     }
 }
예제 #2
0
            $db = new Oraculum_Models();
            $db->setDsn($banco . '://' . $usuario . ':' . $senha . '@' . $servidor . '/' . $base);
            $db->PDO();
            $dbo = new DBO();
            DBO::execSQL('USE ' . $base . ';');
            $query = DBO::execSQL('SHOW KEYS FROM ' . $tabela . ' WHERE Key_name = \'PRIMARY\';')->fetchAll();
            //$d=$query->fetchAll();
            //var_dump($query);
            $keys = array();
            foreach ($query as $r) {
                if (is_null($firstkey)) {
                    $firstkey = $r['Column_name'];
                }
                $keys[] = $r['Column_name'];
            }
            $keys = 'array(\'' . implode('\',\'', $keys) . '\')';
            $control = '<' . '?' . 'php' . NL . 'Oraculum::Load(\'Models\');' . NL . 'Oraculum::Load(\'Plugins\');' . NL . 'Oraculum::Load(\'HTTP\');' . NL . '// Carrega o arquivo de conexao com o banco' . NL . '$db=new Oraculum_Models(\'' . $banco . '\');' . NL . NL . '// Carrega dinamicamente uma classe para a tabela ' . $tabela . NL . '$db->LoadModelClass(\'' . $tabela . '\');' . NL . '$action=Oraculum_Request::getvar(\'' . $arquivo . '\');' . NL . NL . '// Verifica se a acao e\' permitida no sistema' . NL . 'if (!(in_array($action, array(\'cadastrar\', \'listar\', \'alterar\', \'excluir\'))))' . NL . '	$action=\'listar\';' . NL . NL . '// Verifica se existe uma funcao com o mesmo nome da acao' . NL . 'if (is_callable($action))' . NL . '    call_user_func($action); // Chama a funcao' . NL . 'else' . NL . '// Senao chama a funcao listar (esse e\' um tratamento de seguranca)' . NL . 'if (is_callable(\'listar\'))' . NL . '	call_user_func(\'listar\');' . NL . NL . 'function listar() {' . NL . '	// Carrega o plugin Oraculum_Datagrid' . NL . '	Oraculum_Plugins::Load(\'datagrid\');' . NL . '	// Cria uma instancia da classe' . NL . '	$tb=new ' . $classe . '();' . NL . '   $tb->setKey(' . $keys . ');' . NL . '	// Carrega todos os registros da tabela/entidade' . NL . '	$regs=$tb->getAll();' . NL . '	// Cria uma instancia de do plugin Oraculum_Datagrid' . NL . '	$grid=new Oraculum_Datagrid($regs);' . NL . NL . '	// Define a classe CSS da tabela' . NL . '	$grid->setTableClass(\'table table-bordered table-striped\');' . NL . '	// Define a classe CSS do botao de atualizacao' . NL . '	$grid->setUpdateClass(\'btn btn-primary\');' . NL . '	// Define a classe CSS do botao de exclusao' . NL . '	$grid->setDeleteClass(\'btn btn-danger\');' . NL . '	// Determina o padrao de URL para o link de atualizar' . NL . '	$grid->setUpdateURL(URL.\'' . $arquivo . '/alterar/%id%\');' . NL . '	// Determina o padrao de URL para o link de excluir' . NL . '	$grid->setDeleteURL(URL.\'' . $arquivo . '/excluir/%id%#confirm%id%" onclick="if(confirm(\\\'Tem certeza que deseja excluir?\\\')){return true;}else{return false;}\');' . NL . '	// Define o label do botao de atualizacao' . NL . '	$grid->setUpdateLabel(\'<i class="icon-pencil icon-white"></i> Alterar\');' . NL . '	// Define o label do botao de exclusao' . NL . '	$grid->setDeleteLabel(\'<i class="icon-remove icon-white"></i> Excluir\');' . NL . '	// Define o texto que deve ser exibido caso nao existem registros' . NL . '	$grid->setNoRecordsFound(\'Nenhum registro encontrado!\');' . NL . '	// Gera o HTML do grid' . NL . '	$grid=$grid->generate();' . NL . '	// Armazena o grid num registrador chamado grid que sera\' lido na view' . NL . '	Oraculum_Register::set(\'grid\', $grid);' . NL . '	// Armazena os registros num registrador chamado regs que sera\' lido na view' . NL . '	Oraculum_Register::set(\'regs\', $regs);' . NL . '}' . NL . NL . 'function excluir() {' . NL . '	// Cria uma instancia da classe' . NL . '	$tb=new ' . $classe . '();' . NL . '   $tb->setKey(' . $keys . ');' . NL . '	// Captura o que estiver apos /excluir/ na URL' . NL . '	$id=(int)Oraculum_Request::getvar(\'excluir\');' . NL . '	// Carrega todos os registros que tiverem o ID relacionado' . NL . '	$reg=$tb->getBy' . ucwords($firstkey) . '($id);' . NL . '	if (sizeof($reg)>0) {' . NL . '		// Se encontrar algum registro, o mesmo e\' apagado' . NL . '		$reg->delete();' . NL . '	}' . NL . '	// Redireciona para a pagina de listagem' . NL . '	Oraculum_HTTP::redirect(URL.\'' . $arquivo . '\');' . NL . '}' . NL . NL . 'function cadastrar() {' . NL . '  // No momento ainda e\' necessario criar manualmente o cadastro' . NL . '}' . NL . NL . 'function alterar() {' . NL . '  // No momento ainda e\' necessario criar manualmente a alteracao' . NL . '}' . NL . NL . 'if ($action==\'listar\'):' . NL . '  Oraculum_WebApp::LoadView()' . NL . '     ->AddTemplate(\'geral\')' . NL . '	  ->LoadPage(\'' . $arquivo . '-listar\'); // Carrega a view de listagem' . NL . 'endif;';
            $viewlistar = '<' . '?' . 'php $grid=Oraculum_Register::get(\'grid\'); ?' . '>' . "\n\r" . '<' . '?' . 'php echo $grid; ?' . '>';
            Oraculum_Register::set('model', $model);
            Oraculum_Register::set('control', $control);
            Oraculum_Register::set('viewlistar', $viewlistar);
            Oraculum_Register::set('nomebanco', $banco);
            Oraculum_Register::set('arquivo', $arquivo);
        } catch (Exception $e) {
            Oraculum_Register::set('msg', 'Ocorreu algum problema ao capturar as informa&ccedil;&otilde;es do banco');
            Oraculum::Load('Logs');
            Oraculum_Alias::LoadAlias('Logs');
        }
    }
}
Oraculum_WebApp::LoadView()->AddTemplate('geral')->LoadPage('gerador-de-codigos');
예제 #3
0
<?php

/*
  Utilizar OF_DEBUG true apenas em ambiente de desenvolvimento
	  pois habilita a exibição de todos os erros e alertas (E_STRING)
*/
define('OF_DEBUG', false);
define('DS', DIRECTORY_SEPARATOR);
/*
    Definindo diretorio do framework ../libraries/OF/
*/
define('PATH', getcwd() . DS . '..' . DS . 'libraries' . DS . 'OF' . DS);
/*
    A linha abaixo foi comentada por que foi identificado problemas em sistemas Windows
    ini_set('include_path', PATH.'::'.dirname(__FILE__));
*/
ini_set('include_path', PATH);
date_default_timezone_set('America/Sao_Paulo');
include 'Oraculum.php';
Oraculum::Load('Register');
Oraculum::Load('Request');
Oraculum::Load('Alias');
Oraculum_Alias::LoadAlias('Request');
/*
    Utilizar apenas em ambiente de desenvolvimento
    Oraculum::Load('Exceptions');
*/