Jump to content


Photo

Framework De Paginacao


  • Faça o login para participar
6 replies to this topic

#1 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 22/05/2005, 21:37

<?php
class paginacao extends main{
	var $vinicio;
	var $vfim;

	function paginacao($num_blocos){
  $this->ini_fim($num_blocos);
	}

	function escreve($num_pag,$parametros){
  $saida	= '| ';
  $i	= 0;
  while($i<$num_pag)
  {
 	 $saida	.= '<a href="?area='.$_REQUEST["area"].'&subarea='.$_REQUEST["subarea"].$parametros.'&pagina='.$j=$i+1;
 	 $saida	.= '">P&aacute;gina '.$j=$i+1;
 	 $saida	.= '</a> | ';
 	 $i++;
  }
  return $saida;
	}
	
	function ini_fim($num_blocos){
  $pagina 	 = $_REQUEST["pagina"];
  if(!$pagina)$pagina=1;
  $this->vinicio  = $pagina*$num_blocos-$num_blocos;
  $this->vfim 	 = $pagina*$num_blocos;
	}
}
?>

pagine QUALQUER página a QUALQUER hora c esse codigo
PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 22/05/2005, 21:51

Ué.. Cadê a classe main ?

Você citou em:

class paginacao extends main{




Ninguem vai entender o sistema sem exemplo... :blink:
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 22/05/2005, 21:55

putz... esqueci de falar... eu sigo o padrao UML e, main, no caso é o proprio programa
PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual

#4 Guilherme Blanco

Guilherme Blanco

    Loading...

  • Conselheiros
  • 891 posts
  • Sexo:Masculino
  • Localidade:São Carlos - SP/Brasil
  • Interesses:Programação Web e minha namorada (Maria Camila).

Posted 22/05/2005, 21:57

Goiaba... só vou fazer uma rápida observação.

Uma framework é um conjunto de itens capaz de gerenciar tarefas.
Portanto, a sua classe de DB, a de Cores e esta fazem parete de uma UNICA framework.

Só isso...

[]s,
<script language="WebFórum">
// Dados:
Nome("Guilherme Blanco");
Localidade("São Carlos - SP/Brasil");
Cargo("Manutenção");
</script>

#5 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 22/05/2005, 22:31

tah...

No Framework encontra-se todas as classes necessárias à execução de uma aplicação .
O Framework tem também a função de ligação entre a plataforma e a aplicação, a idéia principal é a de que se você programa para Framework, em qualquer máquina de qualquer plataforma que tenha este Framework, você não precise fazer modificações no seu programa.

...

exemplo:
function mostra_thumbs($evento){
  $paginacao	= new paginacao(30);
  $foto  = new foto();

  $i	= 0;
  $j	= 0;
  $dir = opendir("./fotos/eventos/".$evento);
  
  $saida	= '<table width="100%" border="0" cellpadding="2" cellspacing="3"><tr>';
  while(($arquivos=readdir($dir)) !== false){
 	 if($arquivos=="." or $arquivos==".." or $arquivos=="_notes" or $arquivos=="Thumbs.db")continue;{
 	 //filtro de arquivos
    if($j>=$paginacao->vinicio and $j<$paginacao->vfim){
    //paginacao
   	 if($i<=5){
      $saida	.=  '<td align="center">';
   	 }
   	 else{
      $i=0;
      $saida	.=   '</tr><tr><td align="center">';
   	 }
   	 $saida	.=   '<a href="javascript:verfoto_eventos(\''.$evento.'\',\''.$arquivos.'\');">'.$foto->escreve("./fotos/eventos/$evento",$arquivos,"largura=90");
    }
    $i++;
    $j++;
 	 }
  }
  $saida	.=   '</tr></table>';
  return $saida;
	}
esse exemplo gera thumbnails
PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual

#6 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 08/08/2005, 15:22

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.

PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual

#7 guhsnet

guhsnet

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Não informado

Posted 08/01/2006, 16:59

usandu esse codigo q tu postou:

<?php
class paginacao extends main{
var $vinicio;
var $vfim;

function paginacao($num_blocos){
$this->ini_fim($num_blocos);
}

function escreve($num_pag,$parametros){
$saida = '| ';
$i = 0;
while($i<$num_pag)
{
$saida .= '<a href="?area='.$_REQUEST["area"].'&subarea='.$_REQUEST["subarea"].$parametros.'&pagina='.$j=$i+1;
$saida .= '">P&aacute;gina '.$j=$i+1;
$saida .= '</a> | ';
$i++;
}
return $saida;
}

function ini_fim($num_blocos){
$pagina = $_REQUEST["pagina"];
if(!$pagina)$pagina=1;
$this->vinicio = $pagina*$num_blocos-$num_blocos;
$this->vfim = $pagina*$num_blocos;
}
}
?>

como devo conectar ao banco de dados?




2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq