Classe para paginacao de resultados. ################################################################################ # 23/11/2005 - Autor:Bruno Gross - Paginação de resultados em PHP e Postgre Sql# # E-Mail de Contato: mail@brunogross.com # # PS: Classe adaptada de várias outras versões para chegar ao resultado final # ################################################################################ PS: arquivo teste.php contém os exemplos da class ############################################################################## 1) Inclua o arquivo paginacao.php na pagina. Ex.: include("paginacao.php"); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Palavras reservadas ___paginaLinkPrimeiro___ >> Indica o ponto onde deverá aparecer o link para a primeira página. >> Caso a pagina atual esteja na 9, por exemplo, terá o link direto para a 1ª pagina se usar essa palavra reservada * Requer chamada a função temaComLinkPrimeiro(). ___paginaLinkUltimo___ >> Indica o ponto onde deverá aparecer o link para a última página >> Caso a pagina atual esteja na 1, por exemplo, terá o link direto para a última pagina se usar essa palavra reservada * Requer chamada a função temaComLinkUltimo(). ___paginaAtual___ >> Mostra qual é a página atual. >> Exemplo de uso: "Você está na página ___paginaAtual___". ___paginaLinkAnterior___ >> Indica o ponto onde deverá aparecer o link para a página anterior. * Requer chamada a função temaComLinkAnterior(). ___paginaLinkProxima___ >> Indica o ponto onde deverá aparecer o link para a próxima página. * Requer chamada a função temaComLinkProximo(). ___paginaAnterior___ >> Mostra qual é o número da página anterior. >> Exemplo de uso: "página anterior (___paginaAnterior___)" ___paginaProxima___ >> Mostra qual é o número da próxima página. >> Exemplo de uso: "próxima página (___paginaProxima___)" ___tempoExecucao___ >> Mostra o tempo gasto na consulta sql em segundos. >> Exemplo de uso: "foram gasto ___tempoExecucao___ segundos na consulta". ___paginaTotal___ >> Mostra o número total de páginas obtidas na consulta. >> se o paginacao resultou em 20 paginas, ___paginaTotal___ mostrará "20". ___resultadoTotal___ >> Mostra o total de resultados da consulta sql. >> se a consulta retornou 500 resultados, ___resultadoTotal___ mostrará "500". ___resultadoInicial___ >> Mostra qual o número do primeiro resultado mostrado na pagina. >> se a consulta retornou 50 resultados, e cada pagina mostra 10 resultados, e está na página 4, ___resultadoInicial___ mostrará "31". >> Exemplo de uso: "Mostrando resultados ___resultadoInicial___ até ___resultadoFinal___". ___resultadoFinal___ >> Mostra qual o número do último resultado mostrado na pagina. >> se a consulta retornou 50 resultados, e cada pagina mostra 10 resultados, e está na página 4, ___resultadoFinal___ mostrará "40". >> Exemplo de uso: "Mostrando resultados ___resultadoInicial___ até ___resultadoFinal___". ___paginacao___ >> Indica o ponto onde deverá aparecer as paginas resultantes da paginacao. ___paginaNum___ >> Indica o ponto onde deverá aparecer o número da página. ___paginaLink___ >> Indica o ponto onde deverá aparecer o link da página. >> Exemplo de uso: "___paginaNum___". ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 4) iniciar uma instância da classe paginacao. $variavel = new paginacao(); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Funções que podem ser usadas temaComLinkPrimeiro() >> Função que recebe o formato do link Primeiro quando este não for o primeiro. >> Mostra este formato caso a pagina atual seja a 2 ou superior. >> Exemplo de uso: temaComLinkPrimeiro("Primeira Página"); >> No exemplo acima, aparecerá o texto Primeira Página com link para a primeira página temaSemLinkPrimeiro() >> Função que recebe o formato do link Primeiro quando este for o primeiro. >> Mostra este formato caso a pagina atual seja a primeira. >> Exemplo de uso: temaSemLinkPrimeiro(""); >> No exemplo acima não será mostrado o link para a primeira página. >> Exemplo de uso: temaSemLinkPrimeiro("Primeira Página"); >> No exemplo acima, só aparecerá o texto Primeira Página sem link. temaComLinkUltimo() >> Função que recebe o formato do link Ultimo quando este não for o ultimo. >> Mostra este formato caso a pagina atual seja a penultima ou inferior. >> Exemplo de uso: temaComLinkPrimeiro("Última Página"); >> No exemplo acima, aparecerá o texto Última Página com link para a ultima página temaSemLinkUltimo() >> Função que recebe o formato do link Ultimo quando este for o ultimo. >> Mostra este formato caso a pagina atual seja a ultima. >> Exemplo de uso: temaSemLinkUltimo(""); >> No exemplo acima não será mostrado o link para a ultima página. >> Exemplo de uso: temaSemLinkUltimo("Última Página"); >> No exemplo acima, só aparecerá o texto Última Página sem link. conexao() >> Função que recebe os dados para conexão no bando de dados >> Deverá ser passado todos os parametros. >> Parametros: conexao("nome_do_host","usuario_do_banco","senha_do_usuario","nome_do_banco_de_dados"); >> Exemplo de uso: conexao("localhost","teste","teste","Usuarios"); temaMostraAcima() >> Função que mostra a paginacao acima dos resultados. >> Não tem parametros. temaMostraAbaixo() >> Função que mostra a paginacao abaixo dos resultados. >> Não tem parametros. resultNenhum() >> Função que recebe a mensagem caso não seja encontrado nenhum resultado. >> Caso não seja encontrado nenhum resultado, mostrará esta mensagem. >> * Já existe uma mensagem como default. >> Exemplo de uso: resultNenhum("
Nenhum resultado foi encontrado.
"); temaNumPaginas() >> Função que recebe o numero de paginas mostradas por vez na paginacao. >> Se a paginacao resultou em 50 paginas, por exemplo, para não mostrar esse tanto de paginas de uma vez, pode-se escolher quantas paginas serao mostradas por vez. >> Exemplo de uso: temaNumPaginas(10); >> Exemplo de como ficaria os resultados usando os dados acima. (50 paginas, 10 paginas por vez) Pagina atual esta entre () (1) 2 3 4 5 6 7 8 9 10 1 2 3 4 5 (6) 7 8 9 10 2 3 4 5 6 (7) 8 9 10 11 11 12 13 14 15 (16) 17 18 19 20 41 42 43 44 45 (46) 47 48 49 50 41 42 43 44 45 46 47 48 49 (50) >> A pagina atual ficará no meio da paginacao, a não ser que esteja no inicio ou final e não exista mais paginas antes ou depois para que fique no meio. temaNumResult() >> Função que recebe o numero de resultados mostrado por pagina. >> Quantos resultados serao mostrados em cada pagina. >> Exemplo de uso: temaNumResult(10); sqlTable() >> Função que recebe a tabela da consulta sql >> Exemplo do SQL de consulta: "SELECT id,nome,idade FROM TUsuario WHERE idade > 18" >> Exemplo de uso para o SQL acima: sqlTable("TUsuario"); sqlCampo() >> Função que recebe o campo da consulta sql. >> Deve-se separar os campos com "," como numa consulta normal. >> Exemplo do SQL de consulta: "SELECT id,nome,idade FROM TUsuario WHERE idade > 18" >> Exemplo de uso para o SQL acima: sqlCampo("id,nome,idade"); sqlWhere() >> Função que recebe a condicao da consulta sql. >> Exemplo do SQL de consulta: "SELECT id,nome,idade FROM TUsuario WHERE idade > 18" >> Exemplo de uso para o SQL acima: sqlWhere("idade > 18"); sqlComplemento() >> Função que recebe os argumentos de complemento da consulta sql >> Exemplo do SQL de consulta: "SELECT id,nome,idade FROM TUsuario WHERE idade > 18 ORDER BY idade ASC" >> Exemplo de uso para o SQL acima: sqlComplemento("ORDER BY idade ASC"); temaComLinkAnterior() >> Função que recebe o formato do link Anterior quando houver uma pagina anterior. >> Se quiser colocar um link de "pagina anterior" na pagina, coloque o formato do link na função. >> Exemplo de uso: temaComLinkAnterior("Anterior"); >> Para ter o link é necessário colocar a tag . temaSemLinkAnterior() >> Função que recebe o formato do link Anterior quando não houver uma pagina anterior. >> Se vc colocou um link de "pagina anterior" na pagina, quando não houver o link (quando for a 1ª pagina), coloque o formato nesta função. >> Se não for colocado, não aparecerá nada. >> Exemplo de uso: temaSemLinkAnterior("Anterior"); temaComLinkProximo() >> Função que recebe o formato do link Proximo quando houver uma proxima pagina. >> Se quiser colocar um link de "proxima pagina" na pagina, coloque o formato do link na função. >> Exemplo de uso: temaComLinkProximo("Proximo"); >> Para ter o link é necessário colocar a tag . temaSemLinkProximo() >> Função que recebe o formato do link Proximo quando nao houver uma proxima pagina. >> Se vc colocou um link de "proxima pagina" na pagina, quando não houver o link (quando for a ultima pagina), coloque o formato nesta função. >> Se não for colocado, não aparecerá nada. >> Exemplo de uso: temaSemLinkProximo("Proximo"); temaComLink() >> Função que recebe o formato do link da pagina quando esta não for a atual. >> Exemplo de uso: temaComLink("___paginaNum___"); >> "___paginaNum___" é o default caso não use a função. temaSemLink() >> Função que recebe o formato do link da pagina quando esta for a atual. >> Exemplo de uso: temaSemLink("___paginaNum___"); >> "___paginaNum___" é o default caso não use a função. template() >> Função que recebe a variavel contento o template. >> Esta função receberá a variavel que contem o template que foi especificado. >> Exemplo de uso pegando a variavel usada no topico 3) dessa documentacao. template($layout); paginaURL() >> Função que recebe o complemento da url caso exista algum. >> Se na paginacao vc usar variaveis que sao passadas pela URL, como por exemplo &id=, &codigo=, &query=... etc, use essa função para montar os links. >> Devem ser escritas exatamente como aparecem na URL. Para montá-las deve-se seguir os passos abaixo: - Coloque o &; - Coloque o nome da variável sem o $; - Coloque o sinal de =; - Coloque o nome da variável com o $. >> repita esses passos para todas as variaveis que necessite. >> Exemplo de uso: paginaURL("&id=$id&codigo=$codigo&query=$query"); >> Caso o php esteja com "register_globals = off" vc deve recuperar as variaveis antes com $variavel = $_GET["variavel"]. temaSeparacao() >> Função que recebe a string de separacao entre as paginas. >> Exemplo de uso: temaSeparacao(" | "); >> Exemplo de como ficaria. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | >> Os espaços são impressos como informados. Se colocar 3 espaços antes da barra, apareceram 3 espaços na paginacao. >> O default é sem separação. monta() >> Função que imprime na tela a paginacao. >> Esta função deverá ser a ultima a ser chamada, pois é ela que imprime a paginacao. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////