varPagina = isset($_GET["pagina"]) ? $_GET["pagina"] : 1; $this -> varPaginaTimeExec = 0; $this -> varPaginaURL = ""; $this -> varPaginaTotal = 0; $this -> varStatusResultTotal = 0; $this -> varStatusResultIni = 0; $this -> varStatusResultFim = 0; $this -> varMontaTemaPaginacao = ""; $this -> varMontaTemplate["comLinkPrimeiro"] = "no"; $this -> varMontaTemplate["semLinkPrimeiro"] = "no"; $this -> varMontaTemplate["comLinkUltimo"] = "no"; $this -> varMontaTemplate["semLinkUltimo"] = "no"; $this -> varMontaTemplate["mostraAbaixo"] = "no"; $this -> varMontaTemplate["mostraAcima"] = "no"; $this -> varMontaTemplate["comLinkAnterior"] = "no"; $this -> varMontaTemplate["semLinkAnterior"] = "no"; $this -> varMontaTemplate["comLinkProximo"] = "no"; $this -> varMontaTemplate["semLinkProximo"] = "no"; $this -> varMontaTemplate["comLink"] = "no"; $this -> varMontaTemplate["semLink"] = "no"; $this -> varSqlCampo = ""; $this -> varSqlComplemento = ""; $this -> varSqlDbase = ""; $this -> varSqlHost = ""; $this -> varSqlPass = ""; $this -> varSqlTable = ""; $this -> varSqlUser = ""; $this -> varSqlWhere = ""; $this -> varResult = ""; $this -> varResultNenhum = "
Nenhum resultado foi encontrado.

"; $this -> varResultTotal = 0; $this -> varResultTotalPag = 0; $this -> varTemaComLink = ""; $this -> varTemaSemLink = ""; $this -> varTemaNumPaginas = 0; $this -> varTemaNumResult = 10; $this -> varTemaSeparacao = ""; $this -> varTemaLinkAnterior = ""; $this -> varTemaLinkProximo = ""; $this -> varTemaComLinkPrimeiro= ""; $this -> varTemaSemLinkPrimeiro= ""; $this -> varTemaComLinkUltimo = ""; $this -> varTemaSemLinkUltimo = ""; } //======================================================================================================================= function conecta($sql) { $conn = @pg_connect("host=".$this -> varSqlHost." user=".$this -> varSqlUser." port=5432 dbname=".$this -> varSqlDbase." password=".$this -> varSqlPass."") or die (pg_last_error($conn) ); echo $sql; $result = @pg_query($conn, $sql) or die (pg_last_error($conn)); pg_close($conn); return $result; unset($conn,$sql); } //======================================================================================================================= function conexao($varSqlHost,$varSqlUser,$varSqlPass,$varSqlDbase) { $this -> varSqlHost = $varSqlHost; $this -> varSqlUser = $varSqlUser; $this -> varSqlPass = $varSqlPass; $this -> varSqlDbase = $varSqlDbase; } //======================================================================================================================= function erroPag($mensagem) { echo "erro: " . $mensagem; exit; } //======================================================================================================================= function getMicroTime(){ list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } //======================================================================================================================= function temaMostraAcima() { $this -> varMontaTemplate["mostraAcima"] = "yes"; } //======================================================================================================================= function temaMostraAbaixo() { $this -> varMontaTemplate["mostraAbaixo"] = "yes"; } //======================================================================================================================= function resultNenhum($varResultNenhum) { $this -> varResultNenhum = $varResultNenhum; } //======================================================================================================================= function temaNumPaginas($varTemaNumPaginas) { $this -> varTemaNumPaginas = (int)$varTemaNumPaginas; } //======================================================================================================================= function temaNumResult($varTemaNumResult) { $this -> varTemaNumResult = (int)$varTemaNumResult; } //======================================================================================================================= function sqlTable($varSqlTable) { $this -> varSqlTable = $varSqlTable; } //======================================================================================================================= function sqlWhere($varSqlWhere) { $this -> varSqlWhere = $varSqlWhere; } //======================================================================================================================= function sqlComplemento($varSqlComplemento) { $this -> varSqlComplemento = $varSqlComplemento; } //======================================================================================================================= function sqlCampo($varSqlCampo) { $this -> varSqlCampo = $varSqlCampo; } //======================================================================================================================= function temaComLinkAnterior($varTemaComLinkAnterior) { $this -> varMontaTemplate["comLinkAnterior"] = "yes"; $this -> varTemaComLinkAnterior = $varTemaComLinkAnterior; } //======================================================================================================================= function temaSemLinkAnterior($varTemaSemLinkAnterior) { $this -> varMontaTemplate["semLinkAnterior"] = "yes"; $this -> varTemaSemLinkAnterior = $varTemaSemLinkAnterior; } //======================================================================================================================= function temaComLinkProximo($varTemaComLinkProximo) { $this -> varMontaTemplate["comLinkProximo"] = "yes"; $this -> varTemaComLinkProximo = $varTemaComLinkProximo; } //======================================================================================================================= function temaSemLinkProximo($varTemaSemLinkProximo) { $this -> varMontaTemplate["semLinkProximo"] = "yes"; $this -> varTemaSemLinkProximo = $varTemaSemLinkProximo; } //======================================================================================================================= function temaComLinkPrimeiro($varTemaComLinkPrimeiro) { $this -> varMontaTemplate["comLinkPrimeiro"] = "yes"; $this -> varTemaComLinkPrimeiro = $varTemaComLinkPrimeiro; } //======================================================================================================================= function temaSemLinkPrimeiro($varTemaSemLinkPrimeiro) { $this -> varMontaTemplate["semLinkPrimeiro"] = "yes"; $this -> varTemaSemLinkPrimeiro = $varTemaSemLinkPrimeiro; } //======================================================================================================================= function temaComLinkUltimo($varTemaComLinkUltimo) { $this -> varMontaTemplate["comLinkUltimo"] = "yes"; $this -> varTemaComLinkUltimo = $varTemaComLinkUltimo; } //======================================================================================================================= function temaSemLinkUltimo($varTemaSemLinkUltimo) { $this -> varMontaTemplate["semLinkUltimo"] = "yes"; $this -> varTemaSemLinkUltimo = $varTemaSemLinkUltimo; } //======================================================================================================================= function temaComLink($varTemaComLink) { $this -> varMontaTemplate["comLink"] = "yes"; $this -> varTemaComLink = $varTemaComLink; } //======================================================================================================================= function temaSemLink($varTemaSemLink) { $this -> varMontaTemplate["semLink"] = "yes"; $this -> varTemaSemLink = $varTemaSemLink; } //======================================================================================================================= function template($varMontaTemaPaginacao) { $this -> varMontaTemaPaginacao = $varMontaTemaPaginacao; } //======================================================================================================================= function paginaURL($varPaginaURL) { $this -> varPaginaURL = $varPaginaURL; } //======================================================================================================================= function temaSeparacao($varTemaSeparacao) { $varTemaSeparacao = str_replace(" "," ",$varTemaSeparacao); $this -> varTemaSeparacao = $varTemaSeparacao; } //======================================================================================================================= function executaSQL() { // Captura o tempo antes da execução do SQL. $micro_time_start = $this -> getMicroTime(); // SELECT que retornará o total de resultados da paginacao. $sql = "SELECT count(*) FROM " . $this -> varSqlTable; // Completa a clausula SQL com o WHERE caso seja passado. if (!empty($this -> varSqlWhere)) { $sql.= " WHERE " . $this -> varSqlWhere; } // Complemento da clausula SQL caso este seja passado. if (!empty($this -> varSqlComplemento)) { $sql.= " " . $this -> varSqlComplemento; } // Executa a clausula SQL na função conecta(). $result = $this -> conecta($sql); $totalArray = pg_fetch_row($result); pg_free_result($result); $total = $totalArray[0]; // Armazena o total de resultados optidos na consulta. $this -> varResultTotal = $total; $ini = $this -> varTemaNumResult * ($this -> varPagina - 1); // SELECT que retornará os resultados que serao mostrados na pagina. $sql = "SELECT " . $this -> varSqlCampo . " FROM " . $this -> varSqlTable; // Completa a clausula SQL com o WHERE caso seja passado. if (!empty($this -> varSqlWhere)) { $sql.= " WHERE " . $this -> varSqlWhere; } // Complemento da clausula SQL caso este seja passado. if (!empty($this -> varSqlComplemento)) { $sql.= " " . $this -> varSqlComplemento; } // LIMIT da clausula SQL que define quais valores serao recuperados. $sql.= " LIMIT " . $this -> varTemaNumResult. " OFFSET " .$ini ; // Executa a clausula SQL na função conecta(). $result = $this -> conecta($sql); // Armazena o total de resultados que foram obtidos e que serao mostrados na pagina atual. // Para informar de qual a qual resultado esta sendo mostrado. $this -> varResultTotalPag = pg_num_rows($result); // Armazena o resultado obtido na consulta SQL. $this -> varResult = $result; // Armazena o total de paginas obtidas com a paginacao. $this -> varPaginaTotal = ceil($this -> varResultTotal / $this -> varTemaNumResult); // Captura o tempo após a execução do SQL. $micro_time_end = $this -> getMicroTime(); // Armazena o tempo gasto na consulta SQL. $this -> varPaginaTimeExec = round($micro_time_end - $micro_time_start,2); unset($micro_time_start,$sql,$result,$totalArray,$total,$ini,$micro_time_end); } //======================================================================================================================= function monta() { // Executa a clausula SQL. $this -> executaSQL(); // Funcao que executa o template pegando os valores e montando o HTML. $this -> montaTemplateValores(); // Se for para mostrar Paginacao no Topo, a imprime if ($this -> varMontaTemplate["mostraAcima"] == "yes") { echo $this -> varMontaTemaPaginacao; } // Imprime os resultados na tela. Chama uma função criada fora da classe if (pg_num_rows($this -> varResult) <= 0) { // Se não encontrar nenhum resultado imprime uma mensagem. echo $this -> varResultNenhum; } else { if (function_exists("tema")){ tema($this -> varResult); } } // Se for para mostrar Paginacao abaixo, a imprime if ($this -> varMontaTemplate["mostraAbaixo"] == "yes") { echo $this -> varMontaTemaPaginacao; } } //======================================================================================================================= function montaTemplateValores() { $inicio = $this -> varTemaNumResult * ($this -> varPagina - 1); $final = $inicio + $this -> varResultTotalPag; // Mostra o total de resultados encontrados. $this -> varStatusResultTotal = number_format($this -> varResultTotal,0,'.','.'); // Mostra qual o primeiro resultado mostrado na pagina. $this -> varStatusResultIni = $inicio + 1; // Mostra qual o ultimo resultado mostrado na pagina. $this -> varStatusResultFim = $final; // Se não for informado o numero de paginas a ser mostrado, mostra todas if (empty($this -> varTemaNumPaginas)) { $this -> varTemaNumPaginas = $this -> varPaginaTotal; } // Calcula qual a primeira pagina e ultima que serao mostradas na tela $metade = ceil($this -> varTemaNumPaginas / 2); if ($this -> varTemaNumPaginas % 2 == 0) { $ant = $metade; $pos = $metade - 1; } else { $ant = $pos = ($metade - 1); } if ($this -> varPagina <= $ant) { $de = 1; } else { $de = $this -> varPagina - $ant; } // Armazena o valor da ultima pagina antes de ser verificada $ateTmp = $de + ($this -> varTemaNumPaginas - 1); // Verifica se o valor da ultima pagina esta certo. Se tiver ok, se não pega a diferença entre a que deu e a ultima pagina // correta e diminui esse valor do inicio. if ($ateTmp <= $this -> varPaginaTotal) { $ate = $ateTmp; } else { $tmp = $ateTmp - $this -> varPaginaTotal; $ate = $this -> varPaginaTotal; $de = $de - $tmp; if ($de < 1) { $de = 1; } } // Chama a funcao que monta o template $this -> montaTemplate($de,$ate); unset($inicio,$final,$metade,$ant,$de,$ateTmp,$ate); } //======================================================================================================================= function montaTemplate($de,$ate) { // Pagina Anterior $paginaAnterior = $this -> varPagina - 1; $paginaLink = $_SERVER['PHP_SELF'] . "?pagina=" . $paginaAnterior . $this -> varPaginaURL; if ($paginaAnterior > 0) { if ($this -> varMontaTemplate["comLinkAnterior"] == "yes") { $paginaLinkAnterior = $this -> varTemaComLinkAnterior; } else { $paginaLinkAnterior = "" . $this -> varTemaComLinkAnterior . ""; } } else { if ($this -> varMontaTemplate["semLinkAnterior"] == "yes") { $paginaLinkAnterior = $this -> varTemaSemLinkAnterior; } else { $paginaLinkAnterior = $this -> varTemaSemLinkAnterior; } } $paginaLinkAnterior = str_replace("___paginaLink___", $paginaLink, $paginaLinkAnterior); // Proxima Pagina $paginaProxima = $this -> varPagina + 1; $paginaLink = $_SERVER['PHP_SELF'] . "?pagina=" . ($this -> varPagina + 1) . $this -> varPaginaURL; if ($paginaProxima <= $this -> varPaginaTotal) { if ($this -> varMontaTemplate["comLinkProximo"] == "yes") { $paginaLinkProxima = $this -> varTemaComLinkProximo; } else { $paginaLinkProxima = "" . $this -> varTemaComLinkProximo . ""; } } else { if ($this -> varMontaTemplate["semLinkProximo"] == "yes") { $paginaLinkProxima = $this -> varTemaSemLinkProximo; } else { $paginaLinkProxima = $this -> varTemaSemLinkProximo; } } $paginaLinkProxima = str_replace("___paginaLink___", $paginaLink, $paginaLinkProxima); $paginacao = $this -> varTemaSeparacao; for ($i = $de; $i <= $ate; $i++) { $paginaLink = $_SERVER['PHP_SELF'] . "?pagina=$i" . $this -> varPaginaURL; if ($i == $this -> varPagina) { if ($this -> varMontaTemplate["semLink"] == "yes") { $paginacao .= $this -> varTemaSemLink; } else { $paginacao .= "$i"; } } else { if ($this -> varMontaTemplate["comLink"] == "yes") { $paginacao .= $this -> varTemaComLink; } else { $paginacao .= "$i"; } } $paginacao = str_replace("___paginaLink___", $paginaLink, $paginacao); $paginacao = str_replace("___paginaNum___", $i, $paginacao); $paginacao .= $this -> varTemaSeparacao; } if ($this -> varPagina == 1) { $paginaLinkPrimeiro = $this -> varTemaSemLinkPrimeiro; } else { $paginaLinkPrimeiro = " varPaginaURL . "'>" . $this -> varTemaComLinkPrimeiro . ""; } if ($this -> varPagina == $this -> varPaginaTotal) { $paginaLinkUltimo = $this -> varTemaSemLinkUltimo; } else { $paginaLinkUltimo = "" . $this -> varTemaComLinkUltimo . ""; } $tmp = $this -> varMontaTemaPaginacao; $tmp = str_replace("___paginaAtual___", $this -> varPagina, $tmp); $tmp = str_replace("___paginaLinkAnterior___", $paginaLinkAnterior, $tmp); $tmp = str_replace("___paginaLinkProxima___", $paginaLinkProxima, $tmp); $tmp = str_replace("___paginaAnterior___", $paginaAnterior, $tmp); $tmp = str_replace("___paginaProxima___", $paginaProxima, $tmp); $tmp = str_replace("___paginaTotal___", $this -> varPaginaTotal, $tmp); $tmp = str_replace("___tempoExecucao___", $this -> varPaginaTimeExec, $tmp); $tmp = str_replace("___resultadoTotal___", $this -> varStatusResultTotal, $tmp); $tmp = str_replace("___resultadoInicial___", $this -> varStatusResultIni, $tmp); $tmp = str_replace("___resultadoFinal___", $this -> varStatusResultFim, $tmp); $tmp = str_replace("___paginacao___", $paginacao, $tmp); $tmp = str_replace("___paginaLinkPrimeiro___" , $paginaLinkPrimeiro, $tmp); $tmp = str_replace("___paginaLinkUltimo___" , $paginaLinkUltimo, $tmp); $this -> varMontaTemaPaginacao = $tmp; unset($paginaAnterior,$paginaLink,$paginaLinkAnterior,$paginaProxima,$paginaLinkProxima,$paginacao,$i,$de,$ate,$paginaLinkPrimeiro,$paginaLinkUltimo,$tmp); } //======================================================================================================================= // Fim da classe "paginacao" } ?>