示例#1
0
 /**
  * Renderiza a view
  *
  * @param string $path Indica qual o view deve ser carregado.
  */
 public function render($path = "", $includeType = '')
 {
     /**
      * VARIÁVEIS DE AMBIENTE
      */
     $this->environment["pageTitle"] = $this->pageTitle;
     $this->environment["siteTitle"] = $this->siteTitle;
     $this->environment["metaTags"] = $this->metaTags;
     /**
      * ENVIA DADOS PARA O VIEW
      */
     $this->set("siteTitle", $this->siteTitle);
     $this->set("pageTitle", $this->pageTitle);
     /*
      * ELEMENTS
      */
     //include_once(CORE_CLASS_DIR.'Elements.php');
     $elements = Elements::getInstance();
     $this->set('elements', $elements);
     /**
      *
      * DEFINE VARIÁVEIS PARA AS VIEWS
      *
      * Cria todas as variáveis para serem acessadas pela view diretamente.
      *
      * Ex.: $variavel estará disponível em vez de $this->variavel.
      */
     foreach ($this->globalVars as $chave => $valor) {
         ${$chave} = $valor;
         /**
          * Agora as variáveis são locais a este método, sendo acessadas
          * pelo view, pois o view é acessado via include a seguir ainda
          * neste método.
          */
     }
     /**
      * Há arquivos padrães que podem substituir funcionalidades de um módulo
      * quando estes estão ausentes.
      *
      * Inclui a view correspondente deste action
      */
     $content_for_layout = "";
     if ($path != false) {
         ob_start();
         include APP_VIEW_DIR . "" . $this->dispatcher->callController . "/" . $path . ".php";
         $content_for_layout = ob_get_contents();
         ob_end_clean();
         if (is_file(APP_LAYOUT_DIR . $this->layout . ".php")) {
             include APP_LAYOUT_DIR . $this->layout . ".php";
         } else {
             include CORE_LAYOUT_DIR . $this->layout . ".php";
         }
     }
     /**
      * Confirma que renderização foi feita para que não haja duplicação
      * da view
      */
     $this->isRendered = true;
     return true;
 }