/* * CLASSE DE PÁGINAÇÃO EM PHP + MYSQL * AUTOR : Édson Kuzniewski (Br0w) * E-MAIL: contato@edsonk.com * DATA : 18/12/2009 * VERSÃO: 1.2.2.2 */ /* * [ INFO DE ATUALIZAÇÃO ] * * 1 - Modo de retorno de paginação alterada para 'return' para poder utilizar o 'Smarty Template'; */ /** [MODO DE USAR] = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = \ // COM O SMARTY TEMPLATE // ADICIONE CONFORME O INDICADO ABAIXO NO CODIGO... // SEGUE AS PARTES DO CODIGO SUBSTITUA OU ADICIONE CONFORME NO EXEMPLO DO CODIGO ORIGINAL... // PARTE 01 ---------------------------\ //Adicione a classe na página no qual ira usar o Smarty Template se o usar caso contrario comente a linha... require_once("lib/Smarty/Smarty.class.php"); //Configurações iniciais do Smarty Template se o usar caso contrario comente as linhas... $smarty = new Smarty; $smarty->debugging = false; $smarty->caching = false; $smarty->cache_lifetime = 60; $smarty->template_dir = "templates/"; $smarty->compile_dir = "templates_c/"; $smarty->config_dir = "configs/"; $smarty->cache_dir = "cache/"; // FIM PARTE 01 -----------------------/ // PARTE 02 ---------------------------\ //Caso use o Smarty utilize deste modo, caso contrario comente estas linhas... while($row = mysql_fetch_array($paginacao->getResult())){ $listaDeItens[] = $row['item']; } // FIM PARTE 02 -----------------------/ // PARTE 03 ---------------------------\ $smarty->assign('header', $header); $smarty->assign('pgAnterior', $paginacao->getAnterior("paginacao_on","paginacao_off")); $smarty->assign('pgNumero', $paginacao->getPaginas("paginacao_paginas")); $smarty->assign('pgProximo', $paginacao->getProximo("paginacao_on","paginacao_off")); $smarty->assign('listaDeItens', $listaDeIntens); // FIM PARTE 03 -----------------------/ // PARTE 04 ---------------------------\ $smarty->display('meuTemplate.tpl'); // FIM PARTE 04 -----------------------/ //TEMPLATE DO SMARTY FICARA DESTE MODO -----------------\ {$pgAnterior}{$pgNumero}{$pgProximo} {section name=i loop=$listaDeItens} {/section}
{$listaDeItens[i]}
{$pgAnterior}{$pgNumero}{$pgProximo} //------------------------------------------------------/ // EXEMPLO DO CODIGO NORMAL ----------------------\ //Adicione a classe na página no qual ira usar require_once("class.Paginacao.php"); // PARTE 01 - ADICIONAR - SMARTY TEMPLATE //Criando uma conexão MySQL if (!($conexao = mysql_connect('localhost', 'usuario', 'senha'))) { echo "Não foi possível estabelecer uma conexão com o gerenciador MySQL. Favor Contactar o Administrador."; exit; } $banco = "meuBancoDeDados"; //Define o banco no qual está se referindo a consulta! //Crie um sql no qual queira que o resultado seja mostrado com paginação;*********************************** $sql = "SELECT * FROM tabela WHERE se tiver ORDER BY id ASC ou DESC"; $paginacao = new Paginacao(); //Cria a paginação; $paginacao->setMaximo("20"); //Define numéro de itens por página se não fica o padrão de 10; $paginacao->setEstilo("2"); //Define o estilo de paginação, mude se quizer 1 ou 2; $paginacao->setBtnPrimeiro("[Primeiro]"); //Define texto do botão de padrão já está definido mude se quizer; $paginacao->setBtnUltimo("[Último]"); //Define texto do botão de padrão já está definido mude se quizer; $paginacao->setBtnAnterior("[Anterior]"); //Define texto do botão de padrão já está definido mude se quizer; $paginacao->setBtnProximo("[Próximo]"); //Define texto do botão de padrão já está definido mude se quizer; $paginacao->setBtnPrimeiroOn(true); //Define texto do botão de padrão já está definido mude se quizer; $paginacao->setBtnUltimoOn(true); //Define texto do botão de padrão já está definido mude se quizer; $paginacao->setUrlAdicional("id=1&categoria=3&texto=asdfg"); //Define a url adicional passada por parâmetro via url opcional; $paginacao->setZero(true); //coloca zero aos números baixos de 10; 01 02... padrão ativado (true/false); $paginacao->getNporPg(); //RETORNA NÚMERO DE ITENS POR PÁGINA $paginacao->getNtotalPg(); //RETORNA O NÚMERO TOTAL DE PÁGINAS $paginacao->__start($banco, $sql, $conexao);//Inicia a páginação; $i=0; while($row = mysql_fetch_array($paginacao->getResult())){ echo"linha com item nº $i = ".$row['item']."
"; $i++; } // PARTE 02 - SUBSTITUIR PELO WHILE ACIMA - SMARTY TEMPLATE //Para mostrar a paginação coloque em sua página HTML ou PHP:*********************** echo $paginacao->getAnterior("estilo_on","estilo_off"); //Cria botão anterior, os estilos referidos são CSS echo $paginacao->getPaginas("estilo_paginas"); //Cria nº de pg., os estilos referidos são CSS echo $paginacao->getProximo("estilo_on","estilo_off"); //Cria botão próximo, os estilos referidos são CSS //Sendo assim junte todos que o resultado seria:***************************************** echo $paginacao->getAnterior("paginacao_on","paginacao_off") . $paginacao->getPaginas("paginacao_paginas") . $paginacao->getProximo("paginacao_on","paginacao_off"); // PARTE 03 - SUBSTITUIR PELO CODIGO ACIMA - SMARTY TEMPLATE // PARTE 04 - ADICIONAR - SMARTY TEMPLATE //RESULTADO DEPENDE DO ESTILO************************************************* [ESTILO 1] < Anterior 1 2 3 4 [5] 6 7 8 Próximo > < Anterior 1 2 3 4 5 [6] 7 8 Próximo > o número de páginas total é mostrado sendo no exemplo 8 páginas . . . [ESTILO 2] << Primeiro < Anterior 1 2 3 [4] 5 6 7 Próximo > Último >> se tiver mais que 7 ele começa a tira 1 no começo e adicionar 1 no fim . . . << Primeiro < Anterior 2 3 4 [5] 6 7 8 Próximo > Último >> [FIM DO MODO DE USAR] = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = / **/