コード例 #1
0
 public function showConstants()
 {
     foreach ($this->getObject()->getDao()->loadArrayList() as $c) {
         echo "define('SL_" . str_replace(" ", "_", strtoupper(CleanString::clean($c->getNome()))) . "' , " . $c->getId() . ");<br />";
     }
 }
コード例 #2
0
 /**
  * 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);
                     }
                 }
             }
         }
     }
 }
コード例 #3
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;
 }