Código PHP:
Ver original/*
* crea el boton anterior
*/
public function beforeButtons()
{
//resta 1 a la pagina actual
$pageBefore = ceil($this->page - 1);
//si el resultado anterior indica que no da un valor negativo
if($pageBefore >=0)
{
$this->beforeButton = array( 'page' =>$pageBefore,
'url' =>$this->createURL($this->url, $this->id, $pageBefore)
);
}
//sino asigna false para no mostrar boton anterior
else
{
$this->beforeButton = FALSE;
}
return $this->beforeButton;
}
/*
* crea el boton siguiente
*/
public function afterButtons()
{
//suma a la pagina actual 1
$afterButton = $this->page + 1;
//si el resultado anterior es menor o igual a las paginas totales posibles
if($afterButton < $this->totalPages)
{
$this->afterButton = array( 'page' =>$afterButton,
'url' =>$this->createURL($this->url, $this->id, $afterButton)
);
}
else
{
$this->afterButton = FALSE;
}
return $this->afterButton;
}
/*
* crea el array definitivo con todos los valores necesarios para todos los botones
*/
public function paginator()
{
//comprueba que la pagina que ha enviado el usuario no sea mayor que el total de resultados posibles
//tampoco que sea inferior a 0
if($this->page <= $this->totalPages AND $this->page>=0)
{
'page'=>$this->page,
'surround_before' =>$this->surroundPagesBefore(),
'surround_after' =>$this->surroundPagesAfter(),
'before_button' =>$this->beforeButtons(),
'after_button' =>$this->afterButtons(),
'total_pages' =>$this->totalPages,
'current_pages' =>$this->currentPages,
'limit_since' =>$this->currentPages,
'limit_result_set' =>$this->resultsPage
);
}
//si el usuario intentara romper el paginado poniendo páginas falsas entonces asigna FALSE
else
{
$this->result = FALSE;
}
return $this->result;
}
/*
* busca y sustituye un patron dentro de una URL para
* eliminar ese patron y sustituirlo para crear una nueva URL
* evitando repetir el patron en la URL
*
* por ejemplo evitar:: ?page=1&page=2&page=3
*/
public function createURL($url, $id, $page)
{
//si el identificador no se encuentra en la url
{
//agrega al final de la url el identificador y el valor que le corresponde
$url = $url."&".$id."=".$page;
}
//sino busca y reemplaza el identificador en la url por su nuevo valor
else
{
$url = preg_replace("/(".$id."=[[:digit:]])/i", $id."=".$page, $url); }
return $url;
}
}
?>