Ir para conteúdo
Fórum Script Brasil

charlesschaefer

Membros
  • Total de itens

    38
  • Registro em

  • Última visita

Sobre charlesschaefer

charlesschaefer's Achievements

0

Reputação

  1. Essa classe eu fiz há pouco tempo, e queria disponibilizar pra galera, pois muitas pessoas entram em fóruns procurando classes e/ou scripts de paginação, mas quase sempre não encontram.... Essa classe gera menus com o seguinte formato: Primeiro anterior 1 2 3 4 5 6 7 8 ... próximo Último Prim.: Anterior 3 4 5 6 7 próximo Último Registros 1 a 5 de 22 Você pode customizar todas as saídas da classe... <?php /** SPagin is a free php class that generate a simple pagination and return a string with the links already formated. Copyright (C) 2006 Charles Schaefer This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /** * Classe que gera a paginação com limite de exibição de resutlados. * @copyright Charles Schaefer - 2006 * */ class SPagin{ var $regs,$exNum,$url,$totReg,$totPag,$pg; var $separador,$tag_pagin,$url_separator; /** * @desc Método construtor da classe * * @param string $regs numero de registro por página * @param string $url endereço da página onde contêm a paginação * @param integer $totReg total de registros contidos no Banco de Dados * @param integer $pg em qual páina estamos * @param integer $exNum nmero de páginas a ser exibida na paginação ex.: exNum =5 (<< < 1 2 3 4 5 > >>) * @param string $separador padrão de separação dos links * @param string $tag_pagin tag na qual será inserida a paginação * @return none */ function SPagin($regs,$url,$totReg,$pg,$exNum="",$separador=' | ',$tag_pagin=""){ $this->regs = $regs; $this->exNum = $exNum;//essa variável deve ser usada para criar uma forma de exibir apenas a quantidade de numeros pedida $this->url = $url; $this->totReg = $totReg; $totPag = $totReg<=$regs ? 1 : ceil($totReg/$regs); $this->totPag = $totPag; $this->pg = ($pg != "") ? $pg : 1; $this->separador = $separador != "" ? $separador : " | "; $this->tag_pagin = $tag_pagin; $this->url_separator = (strpos($url,"?") !== false) ? "&" : "?"; } /** * @desc mêtodo que irá definir os argumentos para serem repassados no "limit", quando se estiver utilizando um banco de dados * @return string limit formatado para usar como cláusula no sql */ function limit(){ $inicio = ($this->pg * $this->regs) - $this->regs;//o primeiro registro a ser puxado do BD $final = $this->regs;//o último a ser puxado do BD $limit = $inicio.",".$final; return $limit; } /** * @desc página que vai devolver o resultado da paginação * * @param string $primeiro o que usar na paginação com inicador de primeiro * @param string $ultimo o que usar na paginação com inicador de ultimo * @param string $prev o que usar na paginação com inicador de próximo * @param string $next o que usar na paginação com inicador de anterior * @return string menu formatado, pronto para ser exibido na tela */ function paginar($primeiro="<<",$ultimo=">>",$prev="<",$next=">"){ $pg = $this->pg; $totPag = $this->totPag; $url = $this->url; $tag_pagin = $this->tag_pagin; $url_separator = $this->url_separator; $primeiro = $primeiro == "" ? "<<" : $primeiro; $ultimo = $ultimo == "" ? ">>" : $ultimo; $prev = $prev == "" ? "<" : $prev; $next = $next == "" ? ">" : $next; if($totPag == $pg) { $pg = $this->pg - 1; $proximo = $next." "; $ultima = $ultimo; $anterior = "<a href=\"".$url.$url_separator."pg=$pg\"> ".$prev."</a> "; $primeira = "<a href=\"".$url.$url_separator."pg=1\">".$primeiro."</a>"; }elseif($pg == 1) { $pg = $this->pg + 1; $proximo = "<a href=\"".$url.$url_separator."pg=$pg\">".$next." </a>"; $anterior = " ".$prev." "; $primeira = $primeiro; $ultima = "<a href=\"".$url.$url_separator."pg=$totPag\">".$ultimo."</a>"; }else { $pg_p = $pg + 1; $pg_a = $pg - 1; $proximo = "<a href=\"".$url.$url_separator."pg=$pg_p\">".$next." </a>"; $anterior = "<a href=\"".$url.$url_separator."pg=$pg_a\"> ".$prev."</a> "; $primeira = "<a href=\"".$url.$url_separator."pg=1\">".$primeiro."<a/>"; $ultima = "<a href=\"".$url.$url_separator."pg=$totPag\">".$ultimo."</a>"; } $pagina = "<p>".$primeira.$anterior; if($this->exNum != "") { $exNum = $this->exNum; $pagina .= $this->paginar_limitado($exNum,$totPag); }else { for($i=1;$i<=$totPag;$i++) { if($i == $this->pg) { $pagina .= "<b>".$i."</b> | "; } else { $pagina .= "<a href=\"".$url.$url_separator."pg=".$i."\">".$i."</a> | "; } }//close for } $pagina .= $proximo.$ultima."</p>"; if($totPag == 1) { $result = "<span style=\"visibility: hidden\">".$pagina."</span>"; }elseif ($tag_pagin != "") { $result = str_replace("><",">".$pagina."<",$tag_pagin); }else { $result = $pagina; } return $result; }//close function /** * @desc Função que irá criar um menu de navegação de páginas com limite de itens (no menu) ex.: << < 1 2 3 4 5 > >> * * @param integer $exNum * @param integer $totalPg * @return string menu formatado */ function paginar_limitado($exNum,$totalPg) { $url = $this->url; $url_separator = $this->url_separator; $separador = $this->separador; $pg = $this->pg; $div = (is_int($exNum/2)) ? $exNum/2 : floor($exNum/2); $centro = (is_int($exNum/2)) ? $exNum/2 : ceil($exNum/2); if($pg == $totalPg) { if($totalPg >= $exNum) { $termina = $totalPg; $comeco = $termina - $exNum +1; $i =$comeco; while($i>=$comeco and $i<=$termina) { $menu .= ($i == $pg) ? "<b>".$i."</b>$separador" : "<a href=\"".$url.$url_separator."pg=".$i."\">".$i."</a>$separador"; $i++; } }else { $comeco = 1; $termina = $totalPg; $i = $comeco; while($i>=$comeco and $i<=$termina) { $menu .= ($i == $pg) ? "<b>".$i."</b>$separador" : "<a href=\"".$url.$url_separator."pg=".$i."\">".$i."</a>$separador"; $i++; } } }elseif ($pg == 1) { $comeco = 1; $termina = $totalPg >= $exNum ? ($comeco + $exNum) -1 : $totalPg; $i = $comeco; //echo $i." ".$termina." ".$exNum." ".$this->exNum; while($i <= $termina and $i >= $comeco) { $menu .= ($i == $pg) ? "<b>".$i."</b>$separador" : "<a href=\"".$url.$url_separator."pg=".$i."\">".$i."</a>$separador"; $i++; } }elseif ($pg < $totalPg - $exNum) { if($pg > $exNum) { $comeco = $pg - $div; $termina = $comeco + $exNum - 1; $i = $comeco; while ($i <= $termina and $i >= $comeco) { $menu .= ($i == $pg) ? "<b>".$i."</b>$separador" : "<a href=\"".$url.$url_separator."pg=".$i."\">".$i."</a>$separador"; $i++; } }elseif ($pg < $exNum) { if($pg > $centro) { $comeco = $pg - $div; $termina = $comeco + $exNum - 1; $i = $comeco; while($i <= $termina and $i >= $comeco) { $menu .= ($i == $pg) ? "<b>".$i."</b>$separador" : "<a href=\"".$url.$url_separator."pg=".$i."\">".$i."</a>$separador"; $i++; } }else { $comeco = 1; $termina = $comeco + $exNum - 1; $i = $comeco; while($i <= $termina and $i >= $comeco) { $menu .= ($i == $pg) ? "<b>".$i."</b>$separador" : "<a href=\"".$url.$url_separator."pg=".$i."\">".$i."</a>$separador"; $i++; } } }elseif ($pg == $exNum) { $comeco = $exNum - $div; $termina = $comeco + $exNum -1; $i = $comeco; while ($i >= $comeco and $i <= $termina) { $menu .= ($i == $pg) ? "<b>".$i."</b>$separador" : "<a href=\"".$url.$url_separator."pg=".$i."\">".$i."</a>$separador"; $i++; } } }elseif ($pg > $totalPg - $exNum){ if($totalPg > $exNum) { //$comeco = $totalPg - $exNum; //$termina = $comeco + $exNum - 1; if($pg <= $totalPg - ($exNum - $centro)) { $comeco = $pg - $div; $termina = $comeco + $exNum - 1; $i = $comeco; while ($i >= $comeco and $i <= $termina) { $menu .= ($i == $pg) ? "<b>".$i."</b>$separador" : "<a href=\"".$url.$url_separator."pg=".$i."\">".$i."</a>$separador"; $i++; } }else { $comeco = $totalPg - $exNum + 1; $termina = $comeco + $exNum - 1; $i = $comeco; while ($i >= $comeco and $i <= $termina) { $menu .= ($i == $pg) ? "<b>".$i."</b>$separador" : "<a href=\"".$url.$url_separator."pg=".$i."\">".$i."</a>$separador"; $i++; } } }elseif ($totalPg <= $exNum) { $comeco = 1; $termina = $totalPg; $i = $comeco; while ($i <= $termina and $i >= $comeco) { $menu .= ($i == $pg) ? "<b>".$i."</b>$separador" : "<a href=\"".$url.$url_separator."pg=".$i."\">".$i."</a>$separador"; $i++; } } }elseif ($pg == $totalPg - $exNum) { $div = floor($exNum / 2); $termina = $totalPg - ($exNum - $div); $comeco = $termina - $exNum + 1; $i = $comeco; while ($i <= $termina and $i >= $comeco) { $menu .= ($i == $pg) ? "<b>".$i."</b>$separador" : "<a href=\"".$url.$url_separator."pg=".$i."\">".$i."</a>$separador"; $i++; } } //die($menu); $menu = rtrim($menu,$separador)." "; return $menu; }//close function /** * @desc função que gera a paginação inteligente, no formato item y a x de n * * @param string $template deve estar no formato "blabla #1 blabla #2 blabla #3 blabalbalbal" sendo que #1,#2,#3 são inicio, final, total, respectivamente. Ex.: item #1 a #2 de #3 ficara "item 10 a 20 de 45" * @return string menu formatado */ function paginar_inteligente($template="") { $menu = ""; $de = $this->pg * $this->exNum - $this->exNum + 1; $a = $this->pg * $this->exNum; $total = $this->totReg; if(!empty($template)) { $tpl = substr_replace(substr_replace(substr_replace($template,$total,strpos($template,"#3"),2),$a,strpos($template,"#2"),2),$de,strpos($template,"#1"),2); $menu = $tpl; }else { $menu = "Itens ".$de." a ".$a." de ".$total; } return $menu; } } ?> quem quiser ver um exemplo dela funcionando, sem banco de dados, com dados estáticos, tem um exemplo em: http://schaefer.myfreewebs.net
  2. provavelmente, se você usar o bd MySQL, o script vai ter uns parâmetros seguindo a gunção mysql_connect(); você vai fazer o seguinte: onde você chamou a função mysql_connect() você faz assim: mysql_connect("o seu servidor", "o nome de usuário do servidor","a senha desse usuário") or die ("Erro na conexão com o servidor! <br><b>".mysql_error()."</b>") assim você também deverá fazer com o local onde está a função mysql_select_db(): mysql_select_db("nome do bd utilizado") or die ("Erro na seleção do bd!<br /><b>".mysql_error()."</b>"); assim vai te dar o erro mysql referente e ai agente pode te ajudar melhor!!!!!
  3. charlesschaefer

    Cadastro Em Php

    como seria esse cadastro cara? seja mais claro por favor!!!!
  4. charlesschaefer

    Split

    mas a função é spliti()??? não é split() não!!!!! acho que é esse o erro hein!!!
  5. charlesschaefer

    Duvida Sou Novo Em Php

    cara, no que puder te ajudar eu ajudo, mas tá meio confuso o que você falo! entra ai no meu MSN e se puder eu te ajudo sim!!! já passei por isso!! charlesdcs@hotmail.com
  6. velho o botão que você está usando não tem função alguma, assim nunca vai enviar o formulário!!!!! você deve usar o submit, como eu falei acima!!!!!
  7. charlesschaefer

    Livro De Visitas

    tenta uma função javascript e chama ela no button, a função deve abrir a page que você quer, só que não tenho a manha em js, tenta no forum js que você deve achar algo legal!!!! flows
  8. cara, você so deve usar o button se tiver uma função para chamar no modo onclick do mesmo, caso contrário você deve usar o submit para enviar o formulário para o link descrio no atb action do form: <form action="pagina.php" method="post" name="nome"> .... .... .... <input type="submit" value="OK!" /> flows...
  9. em todas as pages que você for usar essa sessão você deve colocar o session_start() no comecinho do cdg.... ( o que disse o amigo acima)
  10. or favor, seja um pouco mais claro no que você quer, qualquer coisa entra ai no MSN q se puder ajudar o farei: charlesdcs@hotmail.com flows
  11. sugestãozinha minha seria a seguinte: $ord = $_POST['list']; $sql = "SELECT * FROM tabela ORDER BY $ord"; Sacou? Daí você muda o nome dos option's no form para: <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> Ordenar <select name="list" class=news> <option VALUE="nome">por ordem alfabética <option VALUE="nome DESC">Por ordem decrescente de área . . . etc... te ajuda???
  12. $numero = 0000000002410; $num = (int)$numero; isso vai retornar "2410", agora como torná-lo inserir essa vírgula sem que se saiba o tamanho do número que vai receber eu não sei.... flow ai
  13. charlesschaefer

    Mensagem De Alerta

    não estás no lugar certo mas vamos lá: <script language="javascript"> function alerta(){ alert("Todos os campos devem ser preenchidos!"); return false; } </script> . . . <input type="text" name="nome" onblur="alerta()"> Não sei se é isso mesmo porque minha área é php saca, mas aposto que na área de javascript você vai achar algo melhor!!! flow
×
×
  • Criar Novo...