"; //cache global require_once (DIR_CLASSES_SITE."class.cache.php"); $cache = new cache(3600, "/tmp/gc.cache"); $cache->carregaCache(); //restantes dos defines e requires define (REFERENCIA_AO_TEMPLATE_GERAL, "gc_template_geral"); require_once DIR_PROJETOS.$_SERVER['HTTP_HOST']."/configuracoes/configuracoes.inc"; require_once DIR_PROJETOS.$_SERVER['HTTP_HOST']."/configuracoes/conexoes.inc"; require_once DIR_PROJETOS.$_SERVER['HTTP_HOST']."/configuracoes/extras.inc"; require_once DIR_PROJETOS.$_SERVER['HTTP_HOST']."/configuracoes/extrasSite.inc"; require_once DIR_PROJETOS."../versoes/versao".VERSAO."/classes/validacao/class.validacao.php"; require_once dirname(__FILE__)."/classes/banco/db.php"; require_once dirname(__FILE__)."/classes/class.FastTemplate.php"; if (MODO_DEBUG_SITE === true) { register_shutdown_function("terminananana"); } if (!defined("DIR_TEMPLATES_SITE")) { gcEstrutura::adicionaMsgDebug("ERRO", "Não foi possível encontrar a constante DIR_TEMPLATES_SITE de localização dos templates."); exit; } //definindo banco de dados if (!defined("BANCO_PADRAO_GC")) { gcEstrutura::adicionaMsgDebug("ERRO", "Não foi possível encontrar a constante BANCO_PADRAO_GC de conexão ao banco de dados."); exit; } $banco = new DBSite (BANCO_PADRAO_GC); $banco2 = new DBSite (BANCO_PADRAO_GC); //classe do gerenciador de conteudo if (file_exists(DIR_PROJETOS.$_SERVER['HTTP_HOST']."/classes/class.gc.php")) { require DIR_PROJETOS.$_SERVER['HTTP_HOST']."/classes/class.gc.php"; $_GC = new GCProjeto(); } else { require dirname(__FILE__)."/classes/class.gc.php"; $_GC = new GC(); } $_GC->inicializa(); //estrutura do GC require_once (DIR_CLASSES_SITE."class.estrutura.php"); $estrutura = new gcEstrutura(); //paginacao require_once (DIR_CLASSES_SITE."class.paginacao.php"); //ordenacao require_once (DIR_CLASSES_SITE."class.ordenacao.php"); //validacao $validacao = new Validacao(); //verifica se ha query de controle $temLink = false; $temTemplate = false; $variavelLink = 0; $nomeVariavelLink = ""; //verificando query do arquivo de configurações for ($i=0;$ivalidar($VAR_CONTROLES[$i]['tipo'], $_GET[$VAR_CONTROLES[$i]['variavel']]) != 1) header("location: index.php"); } //obtem o nome da variavel passada por GET usada como id do link if ($VAR_CONTROLES[$i]['variavel_link'] == 'S') $nomeVariavelLink = $VAR_CONTROLES[$i]['variavel']; //se a variavel foi passada por GET definir qual link ou template abrir if ($_GET[$VAR_CONTROLES[$i]['variavel']]) { if(!isset($VAR_CONTROLES[$i]['chave_tbl'])) $VAR_CONTROLES[$i]['chave_tbl'] = 'id'; if ($VAR_CONTROLES[$i]['variavel_link'] == 'S') { $query = " SELECT id AS links_id, redirecionamento, flagCache, protegido FROM gcLinks WHERE ".$VAR_CONTROLES[$i]['chave_tbl']." = '".$_GET[$VAR_CONTROLES[$i]['variavel']]."' and flagInativo = 'N'"; $temLink = true; $variavelLink = $_GET[$VAR_CONTROLES[$i]['variavel']]; $nomeVariavelLink = $VAR_CONTROLES[$i]['variavel']; break; } elseif ($VAR_CONTROLES[$i]['query_link']) { $query = $VAR_CONTROLES[$i]['query_link']; $temLink = true; break; } elseif($VAR_CONTROLES[$i]['nomeInterno_link']) { $query = " SELECT id AS links_id, redirecionamento, flagCache, protegido FROM gcLinks WHERE nomeInterno = '".$VAR_CONTROLES[$i]['nomeInterno_link']."' and flagInativo = 'N'"; $temLink = true; $variavelLink = $_GET[$VAR_CONTROLES[$i]['variavel']]; $nomeVariavelLink = $VAR_CONTROLES[$i]['variavel']; break; } elseif ($VAR_CONTROLES[$i]['query_template']) { $query = $VAR_CONTROLES[$i]['query_template']; $temTemplate = true; break; } elseif($VAR_CONTROLES[$i]['nomeInterno_template']) { $query = " SELECT id AS templates_id, caminho, flagCache FROM gcTemplates WHERE nomeInterno = '".$VAR_CONTROLES[$i]['nomeInterno_template']."'"; $temTemplate = true; break; } } }//fim do for //caso não tenha nenhum, carregar link ou template padrao if (!$query) { //buscando link do caderno base $query = " SELECT id as links_id, redirecionamento, flagCache, protegido FROM gcLinks WHERE nomeInterno = 'index' and flagInativo = 'N' "; $temLink = true; $banco->query($query); $banco->next_record(); if (!$banco->num_rows()) { //buscando template do caderno base $query = " SELECT id as templates_id, caminho, flagCache FROM gcTemplates WHERE nomeInterno ='index' "; $temTemplate = true; $temLink = false; $banco->query($query); $banco->next_record(); } } else { $banco->query($query); $banco->next_record(); } //verificando se a consulta foi feita correta if (!$banco->num_rows()) { $erro = ($temTemplate?"template":"link com nome interno index. SQL>>
$query

"); $estrutura->debug("ERRO: Não foi possível encontrar o $erro.
A consulta não retornou nenhum registro."); } //verifica se tem link informado if ($temLink) { //verifica se o link é protegido e o usuário não está autenticado if ($banco->Record['protegido'] == "S") { $problemaPermissao = false; $nomeIntLinkProblema = ""; // Se o usuário esta logado no site mas não tem permissão ao link if((!$_GC->permissao($banco->Record['links_id'])) && ($_GC->autenticado())) { $problemaPermissao = true; $nomeIntLinkProblema = "index_sem_permissao"; } // Se o usuário não esta logado no site elseif(!$_GC->autenticado()) { $problemaPermissao = true; $nomeIntLinkProblema = "index_nao_autenticado"; } if($problemaPermissao) { //carrega o link padrao de nome interno 'index_sem_permissao' ou 'index_nao_autenticado' $query = " SELECT id as links_id, redirecionamento, flagCache, protegido FROM gcLinks WHERE nomeInterno = '".$nomeIntLinkProblema."' and flagInativo = 'N' "; $temLink = true; $banco->query($query); if (!$banco->next_record()) $estrutura->debug("Não foi possível localizar o link '".$nomeIntLinkProblema."'"); } } $_GC->adicionaAcesso($banco->Record['links_id']); //cache do link if($banco->Record['flagCache'] == 'S') { require_once (DIR_CLASSES_SITE."class.cache.php"); $cache = new cache(3600, "/tmp/gc.cache/".$_SERVER['HTTP_HOST']."/"); $cache->defineLink($banco->Record['links_id']); $cache->carregaCache(); } if (!empty($banco->Record['redirecionamento'])) { header("location: ".$banco->Record['redirecionamento']); exit; } $query = " SELECT gcTemplates.id as templates_id, gcTemplates.caminho, gcTemplates.flagCache, gcLinksTemplates.ordem FROM gcLinksTemplates LEFT JOIN gcTemplates ON (gcTemplates.id = gcLinksTemplates.gcTemplates_id) WHERE gcLinksTemplates.gcLinks_id = '".$banco->Record['links_id']."' ORDER BY ordem asc"; $banco2->query($query); if (!$banco2->num_rows()){ if (MODO_DEBUG_SITE){ gcEstrutura::adicionaMsgDebug("ERRO", "O link não possui templates."); exit; } echo ""; die(); } $template_anterior = ""; while($banco2->next_record()){ $template = $estrutura->add_template($banco2->Record, $banco->Record['links_id'], $template_anterior); $template_anterior = $template; } echo $template; //salva cache do link if ($banco->Record['flagCache'] == 'S'){ $cache->salvaCache($template); $_GC->finaliza(); } } else if ($temTemplate) { //cache do template require_once (DIR_CLASSES_SITE."class.cache.php"); $cache = new cache(3600, "/tmp/gc.cache", $banco->Record['templates_id']); $cache->defineTemplate($banco->Record['templates_id']); $cache->carregaCache(); //carregando o template $html = new FastTemplate(DIR_TEMPLATES_SITE); $html->no_strict(); $html->define(array(REFERENCIA_AO_TEMPLATE_GERAL => $banco->Record['caminho'])); $html->assign2 ($ASSIGN_GLOBAL); $template = $estrutura->add_template($banco->Record, $banco->Record['links_id']); echo $template; //salva cache do template if ($banco->Record['flagCache'] == 'S') { $cache->salvaCache($html->fetch("_ULTIMO_PARSE_")); // echo $banco->Record["templates_id"]."
"; } } // $cache->salvaCache($template); // $_GC->finaliza(); unset($cache); unset($html); unset($_GC); unset($banco); unset($banco2); unset($estrutura); function getmicrotime(){ list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } function terminananana(){ global $time_start; $fp = fopen("/tmp/conexoes_".$_SERVER['HTTP_HOST'].".tmp","a+"); $aux = "Foram aberta " . $GLOBALS["______co"]. " conexões com o banco de dados para a montagem desta tela"; gcEstrutura::adicionaMsgDebug("Conexões com o banco de dados", $aux); $time_end = getmicrotime(); gcEstrutura::adicionaMsgDebug("Tempo de Execução", $time_end - $time_start . " segundos"); fwrite($fp, $aux ."\r\n"); fclose($fp); echo $GLOBALS['__CODIGO_DEBUG__']; unset($GLOBALS["______co"]); } ?>