public function __construct($model = NULL) { if (!defined('MODEL_DIR')) { define('MODEL_DIR', 'models'); } Oraculum::Load('DBO'); Oraculum::Load('ActiveRecord'); return !is_null($model) ? $this->LoadModel($model) : $this; }
public static function checkDebug() { if (defined('OF_DEBUG') && OF_DEBUG) { error_reporting(E_ALL | E_STRICT); ini_set('display_errors', TRUE); Oraculum::Load('Exceptions'); } else { ini_set('display_errors', FALSE); } }
public function __construct() { if (!defined('URL')) { define('URL', ''); } Oraculum::Load('Crypt'); Oraculum::Load('HTTP'); Oraculum::Load('Request'); $this->_logoffurl = URL . 'logoff'; $this->_loginurl = URL . 'login'; }
public static function showError($code = NULL, $message = NULL, $file = NULL, $line = NULL, $context = null) { Oraculum::Load('Logs'); $filecode = NULL; $report = '<h1>' . $message . '</h1>'; $report .= '<strong>Error Code:</strong> #' . $code . '<br />'; $report .= '<strong>Source File:</strong> ' . $file . ' <strong>line ' . $line . '</strong><br />'; $report .= '<h3>Backtrace</h3>'; $report = '<div style=\'float:left;text-align:left;\'>' . $report . '</div>'; Oraculum_Logs::alert($report); }
public function start() { Oraculum::Load('Request'); $request = Oraculum_Request::request(); $url = str_ireplace(URL, '', $request); $gets = Oraculum_Request::gets(); if (isset($gets[BASE + 1])) { $page = $gets[BASE + 1]; } else { $page = $this->_defaulturl; //throw new Exception('[Erro CGFC36] Nao foi possivel determinar a pagina atraves da URL'); } if ($url == '') { $url = $this->_defaulturl; } Oraculum_App::LoadControl()->LoadPage($page, $url); }
?> public/img/oraculum.png" alt="Oraculum Framework" title="Oraculum" id="logo" /> </a> <br /> <div id="content"> <em>Oraculum Framework :: <?php echo $_SERVER['SERVER_NAME']; ?> </em> <p> <?php /* Abaixo ocorre a mesma coisa que no inicio, e' carregado o modulo Oraculum_Text */ Oraculum::Load('Text'); ?> <br /> <?php echo Oraculum_Text::saudacao(); ?> nobre desenvolvedor!<br /> Você está agora sendo apresentado a uma aplicação modelo, desenvolvida inteiramente com o Oraculum Framework para que você possa entender de forma uma forma mais simples possível o seu funcionamento.<br /><br /> Sinta-se à vontade para explorar os códigos e fazer alterações para se familiarizar com este novo ambiente de desenvolvimento.<br /><br /> Qualquer dúvida acesse o site oficial do projeto e entre em contato:<br /> <a href="http://oraculumframework.org/" target="_blank"> http://oraculumframework.org/</a><br /><br />
<?php $plugin = Oraculum_Request::getvar('plugin'); Oraculum::Load('Plugins'); switch ($plugin) { case 'calendar': Oraculum_Plugins::Load('calendar'); $calendar = new Oraculum_Calendar(); Oraculum_Register::set('calendar', $calendar); break; case 'captcha': Oraculum_Plugins::Load('captcha'); $vcaptcha = Oraculum_Request::getvar('captcha'); if ($vcaptcha == 'generate') { $captcha = new Oraculum_Captcha(); exit; } break; case 'password-generator': Oraculum_Plugins::Load('password-generator'); $password1 = new Oraculum_PasswordGenerator(1); $password2 = new Oraculum_PasswordGenerator(2); $password3 = new Oraculum_PasswordGenerator(3); Oraculum_Register::set('password1', $password1); Oraculum_Register::set('password2', $password2); Oraculum_Register::set('password3', $password3); break; default: $plugin = 'default'; } Oraculum_WebApp::LoadView()->AddTemplate('geral')->LoadPage('plugin-' . $plugin);
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'); } }
public function DbAuth() { if (is_object($this->_dbobj)) { $userfield = 'getBy' . ucwords($this->_userfield); $passwordfield = $this->_passwordfield; $keyfield = $this->_keyfield; $obj = $this->_dbobj; $register = $obj->{$userfield}($this->_user); if (sizeof($register) == 1) { if ($this->_crypttype == 'md5') { if ($register->{$passwordfield} == md5($this->_password)) { $this->_key = $register->{$keyfield}; $this->_register = $register; return true; } else { return false; } } elseif ($this->_crypttype == 'sha1') { if ($register->{$passwordfield} == sha1($this->_password)) { $this->_key = $register->{$keyfield}; $this->_register = $register; return true; } else { return false; } } elseif ($this->_crypttype == 'blowfish') { Oraculum::Load('Crypt'); if (Oraculum_Crypt::blowfishcheck($this->_password, $register->{$passwordfield})) { $this->_key = $register->{$keyfield}; $this->_register = $register; return true; } else { return false; } } else { if ($register->{$passwordfield} == $this->_password) { $this->_key = $register->{$keyfield}; return true; } else { return false; } } } } else { throw new Exception('Para autenticacao atraves de base de dados deve ser passada uma instancia relacionada a uma entidade do banco'); } }
<?php Oraculum::Load('DBO'); class Oraculum_Cart extends DBO { private $_class = null; private $_fields = array(); private $_results = array(); public function newPed($campos) { while (list($key, $val) = each($campos)) { $this->_class->{$key} = $val; } $this->_class->insert(); return $this->_class->getInsertId(); } public function newItem($campos) { while (list($key, $val) = each($campos)) { $this->_class->{$key} = $val; } $this->_class->insert(); return $this->_class->getInsertId(); } public function delItem($tabela, $campo, $valor) { $sql = "delete from {$tabela} where {$campo} = {$valor}"; return $this->_class->execSQL($sql); } public function updQtd($tabela, $campo, $valor, $codigo, $valcod) {
<?php Oraculum::LoadContainer('App'); class Oraculum_WebApp extends Oraculum_App { public function __construct() { header('X-Powered-By: Oraculum PHP Framework'); Oraculum_App::checkDebug(); } }
<?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'); */
public function FrontController() { Oraculum::Load('FrontController'); return new Oraculum_FrontController(); }
define("SMTP_USER", "email"); // Usuario SMTP define("SMTP_PASS", "senha"); // Senha SMTP define("LANG", "pt_br"); // Idioma define("NLOGS", 0); // Nivel de logs. 0: Nada. 1: Erros. 2: Alertas. 3: Tudo date_default_timezone_set("America/Sao_Paulo"); // Timezone include_once "./apps/" . PROJECT . "/config/workspaces/load.php"; // Carregando Workspaces include_once "./library/fs.php"; // Carregando funcoes gerais include_once "./library/core/Oraculum.php"; Oraculum::load_all(); // Carregando Base do Oraculum Oraculum::start(); // Inicializando Oraculum /* Descomente a linha abaixo para carregar os arquivos de traducao */ //I18N::load(); /* Descomente a linha abaixo caso esteja utilizando algum Banco de Dados configurado com o Doctrine ORM */ //include_once("./models/doctrine/".PROJECT.".php"); include_once "./controllers/Controller.php"; include_once "./apps/" . PROJECT . "/controllers/modulos/index/home.php"; /* Descomente a linha abaixo caso esteja utilizando algum Banco de Dados configurado com o Doctrine ORM */ //Doctrine::loadModels("./apps/".PROJECT."/models/entidades"); // Inicializando sessao init_sess();
$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ções do banco'); Oraculum::Load('Logs'); Oraculum_Alias::LoadAlias('Logs'); } } } Oraculum_WebApp::LoadView()->AddTemplate('geral')->LoadPage('gerador-de-codigos');
<?php /* Abaixo e' utilizada a classe Oraculum_Register, por isso e' utilizado Oraculum::Load('Regiter') para carregar o modulo necessario. O ideal e chamar os modulos no Bootstrap (arquivo de inicializacao), ou nos controladores. O motivo de estar aqui e' apenas para demonstracao. */ Oraculum::Load('Register'); /* A classe Oraculum_Register serve para registrar variaveis entre arquivos (controladores, views e models) Para definir: Oraculum_Register::set('variavel', 'valor'); Para recuperar: Oraculum_Register::get('variavel'); */ Oraculum_Register::set('titulo', 'Erro 404 - Página não encontrada'); ?> <div id="erro"> <h1>A página não pode ser encontrada ;-(</h1> <h2>HTTP ERRO 404</h2> <strong>Causas mais comuns:</strong><br /> <ul> <li> Pode haver um erro na digitação do endereço. </li> <li> Se você clicou em um link, ele pode estar desatualizado.
<?php ini_set('display_errors', true); header('Content-Type: text/html; charset=iso-8859-1'); header('X-Powered-By: Oraculum PHP Framework'); date_default_timezone_set("America/Sao_Paulo"); include './bootstrap.php'; Oraculum::LoadContainer('WebApp'); $app = new Oraculum_WebApp(); $app->FrontController()->setBaseUrl('/projetos/Kap/kap/')->setDefaultPage('home')->setErrorPage('404')->start();