/** * 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; }