Ver Mensaje Individual
  #26 (permalink)  
Antiguo 12/12/2007, 14:11
Avatar de SCY-FOX
SCY-FOX
 
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 8 meses
Puntos: 5
Re: Paginador parecido a Google ¿Como?

Saludos.

Hice una pequeña variación a la forma en que se muestra abajo al pie de los resultados, el "navegador".

Código PHP:
<!-- INICIO Cantidad de Paginas-->
<table width="578" height="22"  border="0" align="center" cellpadding="0" cellspacing="0">
 <tr>
  <td width="578" align="center" valign="middle" class="cabecera">&nbsp;</td>
 </tr>
 <tr>
  <td align="center" valign="middle" class="cabecera">
  <? 
//--Estilo de Paginacion Sepsy
$intervalo ceil ((10/2)-1); // el ceil del numero de paginas a mostrar/2 - 1 
        // Calculamos desde qué número de página se mostrará 
    
$desde $page $intervalo
    
// Calculamos hasta qué número de página se mostrará 
    
$hasta $page $intervalo
        if(
$desde 1){ 
        
// Le sumamos la cantidad sobrante al final para mantener el número de enlaces que se quiere mostrar.  
        
$hasta -= ($desde 1); 
        
// Establecemos $_pagi_nav_desde como 1. 
        
$desde 1
    } 
   if(
$hasta $total_pages){ 
        
// Le restamos la cantidad excedida al comienzo para mantener el número de enlaces que se quiere mostrar. 
        
$desde -= ($hasta $total_pages); 
        
// Establecemos $_pagi_nav_hasta como el total de páginas. 
        
$hasta $total_pages
        
// Hacemos el último ajuste verificando que al cambiar $_pagi_nav_desde no haya quedado con un valor no válido. 
        
if($desde 1){ 
            
$desde 1
        }  

//FIN Estilo Paginado Sepsy 

//Primera Página (INICIO)
        
echo "&nbsp;<a class='label' href=".$_SERVER['PHP_SELF']."?page=1&max=0>Primera Página</a>&nbsp;";

// Build Previous Links
if($page 1)

    
$prev = ($page 1); 
    echo 
"<a href=".$_SERVER['PHP_SELF']."?page=$prev&max=$max><img src='icons/prev_icon.gif' border='0'></a>&nbsp;"
}
//for($i=1;$i<$total_pages+1;$i++)
for ($i=$desde$i<=$hasta$i++) { 
$max    =    $max_results * ($i-1);
    if (
$i%25 == 0) echo "<br>";
    if((
$page) == $i){
        echo 
"<span class='pages_sel'>&nbsp;<b> $i </b>&nbsp;</span>"
        }else{
            echo 
"&nbsp;<a class='label' href=".$_SERVER['PHP_SELF']."?page=$i&max=$max>$i</a>&nbsp;"
            }

// Build Next Link 
//Flechita para avanzar
if($page $total_pages){ 
    
$next = ($page 1); 
    echo 
"&nbsp;<a  href=".$_SERVER['PHP_SELF']."?page=$next&max=$max><img src='icons/next_icon.gif' border='0'></a>"
}  
//Ultima Página
$max_fin    =    $max_results * ($total_pages -1);
echo 
"&nbsp;<a class='label' href=".$_SERVER['PHP_SELF']."?page=$total_pages&max=$max_fin>Ultima Página</a>&nbsp;";
echo 
"<br> Cantidad Total de Páginas : $total_pages";


?></td>
                      </tr>
          </table>
<!-- FIN de Cantidad de Páginas-->
Básicamente, muestra un enlace Primera Pagina - 1 2 3 4 5 - Ultima Página

Esta incluido que te muestre la cantidad total de páginas que tienes y además, incluye por GET una variable llamada $max la cual se encarga de que el contador de Nº de filas, que aparece en el echo vaya aumentando a pesar de que te cambies de pagina hacia adelante o atrás... asi el enumerado siempre será de corrido.

se maneja de la siguiente manera:

INICIO DE PAGINA
Código PHP:
$cont 0
Dentro del while que genera los resultados ponemos esto al inicio:
Código PHP:
if ($page == '1'){ 
            
$cont 1;}
                else {
                    
$cont $cont $_GET['max'];
                    } 
En una celda hacemos el echo al contador.

Código PHP:
echo "<tr><td width='31' align='center'>".$cont."</td></tr>"
y al final, antes del MoveNext, colocamos lo siguiente.

Código PHP:
$cont $cont 1
Esop.

Les deje hasta los archivos de las flechitas XD

Cualquier duda pregunten aca o en mi blog
www.scyfox-site.com

Silla!

Última edición por SCY-FOX; 12/12/2007 a las 14:18 Razón: falto un tag de cerrado..