<? class paginacao{ // CONSTRUCTOR function paginacao($pagina, $numLimite, $numRegistros, $numLinks, $separador){ // CONFIG $this-> pagina = (empty($pagina))? $pagina =1 : $pagina=$pagina; $this-> inicio = ceil($pagina*$numLimite); $this-> numLimite = $numLimite; $this-> numRegistros = $numRegistros; $this-> numPaginas = ceil($numRegistros/$numLimite); $this-> numLinks = $numLinks; $this-> numLinks2 = floor($numLinks/2); $this-> separador = $separador; } // LINK ANTERIOR function linkAnterior($formato, $inativo="0"){ if(($this->pagina) > 1) echo "<a href=\"?pag=". ceil($this->pagina-1) ."\">". $formato ."</a>"; elseif(($this->pagina == 0) && $inativo == "1") echo $formato; } // LINK PRÓXIMO function linkProximo($formato, $inativo="0"){ if(($this->pagina) < $this->numPaginas) echo "<a href=\"?pag=". ceil($this->pagina+1) ."\">". $formato ."</a>"; elseif(($this->pagina == 0) && $inativo == "1") echo $formato; } // LINKS PAGINAS function links(){ // NÚMERO DE LINKS PRONTOS $numLinksEsquerda = 0; $numLinksDireita = 0; // LINKS DIMINUINDO for($i=$this->pagina-$this->numLinks2; $i<$this->pagina; $i++){ if($i >=1 && $numLinksEsquerda <= $this->numLinks2){ echo "<a href=\"?pag=$i\">$i</a> "; $numLinksEsquerda++; } } // LINK ATUAL echo "<b>".$this->pagina."</b>"; // LINKS AUMENTANDO for($i=$this->pagina+1; $i<=$this->numPaginas; $i++){ if($numLinksDireita <= ($this->numLinks-$numLinksEsquerda)-2){ echo " <a href=\"{$_SERVER['PHP_SELF']}?pag=$i\">$i</a>"; $numLinksDireita++; } } } }
Acho que quem quiser tentar entender vai entender, mas qualquer dúvida, o fórum é pra isso
[]'s