Ver Mensaje Individual
  #10 (permalink)  
Antiguo 04/01/2014, 09:17
Avatar de jonni09lo
jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 2 meses
Puntos: 397
Respuesta: PHP+HTML+URL con $_SERVER

Ahhh creo que me entendiste mal...

Los metodos que te devuelven las paginas (como beforeButtons()) te debería devolver la URL ya armada, para que simplemente haciendo algo como

Código PHP:
Ver original
  1. <a href="<?php echo $before_button; ?>"><?php echo $surround_before; ?></a>

Ya obtengas la url ya armada

Igual puedes hacer algo como esto dentro de la clase del paginador:

Código PHP:
Ver original
  1. protected function processUrl(){
  2.     $query = explode( '&', $_SERVER['QUERY_STRING'] );
  3.     $url = '';
  4.     foreach( $query as $k=>$part ){
  5.         list($key, $value) = explode('=', $part);
  6.         if( $key != 'page' ){
  7.             $url .= "{$key}={$value}&";
  8.         }
  9.     }
  10.     $url = trim($url, '&');
  11.     return "?$url";
  12. }
o con expresiones regulares:

Código PHP:
Ver original
  1. protected function processUrl(){
  2.     $url = preg_replace('/\&?page\=(\d)/', '', $_SERVER['QUERY_STRING']);
  3.     $url = trim($url, '&');
  4.     return "?$url";
  5. }

Y lo llamas desde el metodo (por ejemplo este)

Código PHP:
Ver original
  1. function    beforeButtons()
  2.     {
  3.         //resta 1 a la pagina actual
  4.         $pageBefore  =   ceil($this->page  -   1);
  5.        
  6.         //si el resultado anterior indica que no da un valor negativo
  7.         if($pageBefore >=0)
  8.         {
  9.             $this->beforeButton  =   $pageBefore;
  10.         }
  11.        
  12.         //sino asigna false para no mostrar boton anterior
  13.         else
  14.       {
  15.             $this->beforeButton  =   FALSE;
  16.         }
  17.         $url = $this->processUrl();
  18.         return $url . "&page=" . $this->beforeButton;
  19.     }

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.

Última edición por jonni09lo; 04/01/2014 a las 09:26 Razón: Corregir la función processUrl de las expresiones regulares...