atualizando...
a classe:
<?php
/*
Fornece o inicio e o fim para serem utilizados nas querys
*/
class Paginacao{
var $vinicio;
var $vfim;
var $paginaAtual;
var $posicoes;
/*
construtura
*/
function Paginacao($num_blocos){
$this->posicoes = $_REQUEST["posicoes"];
$pagina = $_REQUEST["pagina"];
if(!$pagina)$pagina=1;
$this->paginaAtual = $pagina;
$this->vinicio = $pagina*$num_blocos-$num_blocos;
$this->vfim = $pagina*$num_blocos;
}
/*
escreve as páginas
*/
function Escreve($num_pag,$parametros){
$paginaAtual = $this->paginaAtual;
$num_pag = (int)$num_pag;
$num_pag = $num_pag+1;
$saida = 'Páginas | ';
$linkSN = array();
if($num_pag>=7){
if($paginaAtual>=4){
$saida .= '<a href="?posicoes='.$posicoes.$parametros.'&pagina=1"> 1 </a>| ... | ';
}
for($i=-2; $i<=2; $i++){
$mostra = $paginaAtual+$i;
$linkSN = $this->Compara($mostra,$parametros);
if($mostra>0&&$mostra<=$num_pag){
$saida .= $linkSN["pre"].$mostra.$linkSN["suf"]." | ";
}
}
if($paginaAtual<($num_pag-2)){
$saida .= ' ... | <a href="?posicoes='.$posicoes.$parametros.'&pagina='.$num_pag.'">'.$num_pag.'</a> |';
}
}
else{
for($i=1; $i<=$num_pag; $i++){
$linkSN = $this->Compara($i,$parametros);
$saida .= $linkSN["pre"].$i.$linkSN["suf"]." | ";
}
}
return $saida;
}
/*
Testa se a pagina escolhida é a pagina atual
*/
function Compara($paginaLaco,$parametros){
$saida = array();
$paginaAtual = $this->paginaAtual;
$posicoes = $this->posicoes;
if($paginaLaco==$paginaAtual){
$saida["pre"] = "<b>";
$saida["suf"] = "</b>";
}
else{
$saida["pre"] = '<a href="?posicoes='.$posicoes.$parametros.'&pagina='.$paginaLaco.'">';
$saida["suf"] = "</a>";
}
return $saida;
}
}
?>
ECEMPLO:
<?php
global $ConfigOtr;
$Main = new Main("Noticias");
$Area = new Area();
$DataBase = new DataBase();
$DateTime = new DateTime();
$Paginacao = new Paginacao($ConfigOtr["numItemsPag"]);
$query = $DataBase->Query("SELECT * FROM base_Noticias ORDER BY NoticiasData DESC LIMIT 0,8");
$numRows = $DataBase->NumRows($query);
$numPag = $numRows/$ConfigOtr["numItemsPag"];
?>
isso no cabeçalho... pra utilzar a paginacao fica assim:
<?php
$j = 0;
while($linha=$DataBase->FetchAll($query)){
if($j>=$Paginacao->vinicio && $j<$Paginacao->vfim){
$linha["NoticiasData"] = $DateTime->DateTimetoData($linha["NoticiasData"],"dia/mes/ano");
?>
<tr height="18">
<td width="65"><span class="Peq"><?=$linha["NoticiasData"];?> |</span></td>
<td class="Cont"><a href="?posicoes=Noticias,Mostra&LocalID=<?=$linha["NoticiasID"];?>"><?=$linha["NoticiasTitulo"];?></a></td>
</tr>
<?php
}
$j++;
}
?>
deu pra entender??
toda vez que for usar paginaçao é so chamar new Paginacao();
da pra adaptar à qualquer estilo...
Edição feita por: goiaba2000, 08/08/2005, 15:31.