public function showConstants() { foreach ($this->getObject()->getDao()->loadArrayList() as $c) { echo "define('SL_" . str_replace(" ", "_", strtoupper(CleanString::clean($c->getNome()))) . "' , " . $c->getId() . ");<br />"; } }
/** * Inclui o arquivo correto do site * * @param string $pageName */ public function displayPage() { $filterClass = ""; $url = self::getUrl(); if (empty($url[0])) { $url[0] = $this->getDefaultPage(); } $urlDir = explode("/", $url[0]); $directory = ""; if (count($urlDir) > 1) { $directory = ""; $className = array_pop($urlDir); $className = ucfirst($className); // encontro os metodos da url $metodos = explode(Samus::getMethodUrlSeparator(), $className); $className = $metodos[0]; unset($metodos[0]); foreach ($urlDir as $dir) { $directory .= $dir . "/"; } /******************************************************************* * CLASSE FILTRO * classes de filtro devem ter o mesmo nome do pacote (mas com a * primeira maiuscula) seguidas do sufixo definido em Samus::$filterSufix * e são sempre inseridos e executados quando qualquer classe do pacote * são inseridas ******************************************************************/ $filterClass = ucfirst($urlDir[count($urlDir) - 1]); $filterClass .= Samus::getFilterSufix(); } else { $className = ucfirst($url[0]); // encontro os metodos da url $metodos = explode(Samus::getMethodUrlSeparator(), $className); $className = $metodos[0]; unset($metodos[0]); } /********************************************************************** * INCLUSÃO DO FILTRO * as classes de filtro devem ter o mesmo nome do pacote e devem imple- * mentar a interface Samus_Filter *********************************************************************/ $filterFile = Samus::getControlsDirectory() . '/' . $directory . $filterClass . Samus::getControlsFileExtension(); /************************************************************************ * CLASSE FILTRO DEFAULT * caso não tenha um filtro associado ele busca o filtro padrão ************************************************************************/ if (!is_file($filterFile)) { $filterClass = Samus::getDefaultFilterClass(); $filterFile = Samus::getControlsDirectory() . '/' . $directory . $filterClass . Samus::getControlsFileExtension(); } $classFile = $className; //nome do arquivo $className = UtilString::underlineToUpper($className); //nome da classe if (Samus::isDecodeUTF8Strings()) { $className = utf8_decode($className); } $className = CleanString::clean($className, true); $className .= Samus::getControlsClassSufix(); $className = ucfirst($className); self::$controllerName = $className; $filtred = false; if (is_file($filterFile)) { require_once $filterFile; $ref = new ReflectionClass($filterClass); if ($ref->getParentClass()->getName() != "Samus_Filter") { throw new Exception("A interface Samus_Filter deve ser implementada nos filtros"); } $filtroObj = $ref->newInstance(); $this->filter = $filtroObj; $met = $ref->getMethod("getExceptions"); /*@var $met ReflectionMethod*/ $exceptionsPages = $met->invoke($filtroObj); $flickThisSamus_Controller = true; foreach ($exceptionsPages as $control) { if (strtolower($control) == strtolower($className)) { $flickThisSamus_Controller = false; break; } } // se a página não for uma exeção if ($flickThisSamus_Controller) { $met = $ref->getMethod("filter"); $met->invoke($filtroObj); } $filtred = true; } $requireFile = Samus::getControlsDirectory() . '/' . $directory . $className . Samus::getControlsFileExtension(); if (is_file($requireFile)) { require_once $requireFile; $ref = new ReflectionClass($className); $obj = $ref->newInstance(); if ($filtred) { $met = $ref->getMethod("setGlobal"); $met->invoke($obj, $this->filter); } if (!empty($metodos)) { foreach ($metodos as $met) { $metParametros = explode(Samus::getMethodUrlParameterSeparator(), $met); $met = $metParametros[0]; unset($metParametros[0]); $met = UtilString::underlineToUpper($met); //nome da classe if (Samus::isDecodeUTF8Strings()) { $met = utf8_decode($met); } $met = CleanString::clean($met, true); $met = $met . Samus::getMethodUrlSufix(); if (!method_exists($obj, $met)) { // throw new Samus_Exception("O metodo $met não existe na classe $className"); } else { $urlMet = $ref->getMethod($met); if (!empty($metParametros)) { if (Samus::isDecodeUTF8Strings()) { foreach ($metParametros as $key => $m) { $metParametros[$key] = utf8_decode($m); } } try { $urlMet->invokeArgs($obj, $metParametros); } catch (ReflectionException $ex) { throw new Samus_Exception("Você não tem permissão para acessar este metodo ou ele é invalido " . $ex->getMessage()); } } else { try { $urlMet->invoke($obj); } catch (ReflectionException $ex) { throw new Samus_Exception("Você não tem permissão para acessar este metodo ou ele é invalido " . $ex->getMessage()); } } } } } /*@var $met ReflectionMethod*/ $met = $ref->getMethod("index"); $met->invoke($obj); $met = $ref->getMethod("assignClass"); $met->invoke($obj, $directory); } else { /*************************************************************** * EXIBIÇÃO DE ARQUIVOS SEM CONTROLADORES ASSOCIADOS **************************************************************/ //$className = strtolower(substr($className, 0, 1)) . substr($className,1); //caso seja um arquivo ajax $ajaxTamanho = strlen(Samus::getAjaxPhpFileExtension()); $nClassName = str_replace(Samus::getControlsClassSufix(), "", $className); if (substr($nClassName, $ajaxTamanho * -1, $ajaxTamanho) == Samus::getAjaxPhpFileExtension()) { require_once Samus::getAjaxPhpFilesDirectory() . '/' . $classFile; } else { //caso seja um arquivo de template if (empty($className)) { $className = $this->getDefaultPage(); } if (substr($className, -8, 8) == '.inc.php') { $requireViewFile = Samus::getViewsDirectory() . '/' . strtolower($className); require $requireViewFile; } else { $requireViewFile = Samus::getViewsDirectory() . '/' . $directory . UtilString::upperToUnderline($classFile) . Samus::getViewFileExtension(); if (is_file($requireViewFile)) { require_once 'samus/Samus_DefaultController' . Samus::getControlsFileExtension(); $ref = new ReflectionClass("Samus_DefaultController"); $obj = $ref->newInstance(); /*@var $met ReflectionMethod*/ $met = $ref->getMethod("index"); $met->invoke($obj); if ($filtred) { $met = $ref->getMethod("setGlobal"); $met->invoke($obj, $filtroObj); } $met = $ref->getMethod("assignClass"); $met->invoke($obj, $requireViewFile); } else { require_once 'util/Util.php'; //echo "<h1 align='center'>Página não Encontrada!</h1>"; //echo "<h2 align='center'>".$_SERVER['REQUEST_URI']."</h2>"; $strA = ''; foreach (Samus::getURL() as $st) { $strA .= $st . '-'; } $strA = substr($strA, 0, -1); if (substr($strA, -5) != "index") { echo "Requisição não processada"; } else { //Util::redirect($this->errorPage.'-'.Samus::getURL(0), 0); } } } } } }
public function graficoResultado($tipo = "p3", $cor = "32b343", $lagura = 450, $altura = 200, $cssClass = "") { $respostas = $this->getRespostas(); $totalVotos = $this->getTotalVotos($respostas); $str = ""; $graficoValores = ""; $graficoNomes = ""; foreach ($respostas as $key => $r) { //$r = new ConteudoEnqueteResposta(); $respost = $r->resposta; if (!empty($respost)) { if ($totalVotos == 0) { $porcentagem = 0; } else { $porcentagem = $r->getVotos() / $totalVotos; } $porcentagem = number_format($porcentagem * 100, 2); $graficoValores .= $porcentagem . ','; $graficoNomes .= CleanString::removeAcento($respost) . '|'; } } $graficoValores = substr($graficoValores, 0, -1); $graficoNomes = substr($graficoNomes, 0, -1); $str .= "\r\n<img src='\r\nhttp://chart.apis.google.com/chart?\r\nchs=" . $lagura . "x" . $altura . "\r\n&chd=t:{$graficoValores}\r\n&chco={$cor}\r\n&cht={$tipo}\r\n&chl={$graficoNomes}\r\n' alt='Grafico' width='{$lagura}' height='{$altura}' class='{$cssClass}' />"; return $str; }