| Server IP : 89.46.109.6 / Your IP : 216.73.217.116 Web Server : Apache System : Linux hlpi1ws-c284s07.ad.aruba.it 5.15.0-186-generic #196-Ubuntu SMP Sat Jun 20 16:09:34 UTC 2026 x86_64 User : ID19067310 ( 19067310) PHP Version : 5.3.29 Disable Function : system,popen,dl,passthru,proc_open,shell_exec MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /web/htdocs/www.edizacco.it/home/include/ |
Upload File : |
<?php
/**
* Document: class.ycpager.php
* Created on: 17-apr-2012, 12:40
* Author : Nicola Mustone <mustone.nicola@gmail.com>
per Your Inspiration Web [http://www.yourinspirationweb.com]
* Description: Classe YCPager. Crea una paginazione tramite un database.
*/
class YCPager {
/**
* Pagina attuale.
*
* @var int
* @access private
* @since 1.0
*/
private $_currentPage = 0;
/**
* Il numero totale di righe.
*
* @var int
* @access private
* @since 1.0
*/
private $_totalRows = 0;
/**
* Il numero di pagine precedenti a quella attuale da stampare.
*
* @var int
* @access private
* @since 1.0
*/
private $_prevLink = 3;
/**
* Il numero di pagine successiva a quella attuale da stampare.
*
* @var int
* @access private
* @since 1.0
*/
private $_nextLink = 3;
/**
* Il valore di OFFSET nella query SQL.
*
* @var int
* @access private
* @since 1.0
*/
private $_queryLimit = 0;
/**
* Il numero di righe da stampare in ogni pagina.
*
* @var int
* @access private
* @since 1.0
*/
private $_numPerPage = 0;
/**
* I link delle pagine reindirizzeranno qui.
*
* @var string
* @access private
* @since 1.0
**/
private $_redirectTo = '';
/**
* YCPager::__construct(). Inizializza le variabili.
*
* @param int $currentPage
* @param int $totalRows
* @param int $numPerPage
* @since 1.0
*/
public function __construct($currentPage, $totalRows, $numPerPage, $redirectTo = 'index.php?') {
$this->_currentPage = (int) max($currentPage, 1);
$this->_totalRows = (int) max($totalRows, 1);
$this->_numPerPage = (int) $numPerPage;
$this->_redirectTo = $redirectTo;
}
/**
* YCPager::getOffset(). Restituisce il numero totale di pagine che verranno create.
*
* @return int
* @since 1.0
*/
public function getOffset() {
return ceil($this->_totalRows/$this->_numPerPage);
}
/**
* YCPager::getQueryOffset(). Restituisce l'offset da usare nella query SQL.
*
* @return int
* @since 1.0
*/
public function getQueryOffset() {
return ($this->_currentPage == 1) ? $this->_queryLimit : ($this->_currentPage - 1) * $this->_numPerPage;
}
/**
* YCPager::getPager(). Stampa la paginazione.
*
* @return void
* @since 1.0
*/
public function getPager() {
$currentPage = $this->_currentPage;
$prev = $this->_prevLink;
$next = $this->_nextLink;
$total = $this->getOffset();
echo '<div class="space"> </div>';
echo '<div class="pagination">';
echo '<ul class="pages">';
$this->getFirst();
$this->getPrev();
if($total < ($prev + $next + 1)) {
$prev = 0;
$next = 0;
for($i = $total; $i > 0; $i--) {
$return[$i] = $i;
}
} else {
if($currentPage == $total) {
if($currentPage - ($prev + $next + 1) >= 0) {
for($i = $total; $i > ($total - ($prev + $next + 1)); $i--) {
$return[$i] = $i;
}
}
} else if($currentPage < $total) {
if($currentPage - $prev > 0) {
for($i = $currentPage - $prev; $i < $currentPage + $next + 1; $i++) {
$return[$i] = $i;
}
} else if($currentPage - $prev <= 0) {
for($i = 1; $i <= ($prev + $next + 1); $i++) {
$return[$i] = $i;
}
}
}
}
if(!empty($return)) { sort($return); }
for($i = 0; $i < count($return); $i++) {
if($return[$i] != $this->_currentPage)
echo '<li class="number-page"><a href="' . $this->_redirectTo . 'p='. $return[$i] .'" title="">'. $return[$i] .'</a></li>';
else
echo '<li class="actual-page"><span>'. $return[$i] .'</span></li>';
}
$this->getNext();
$this->getLast();
echo '</ul>';
echo '</div>';
echo '<div class="space"> </div>';
}
/**
* YCPager::getFirst(). Stampa il link alla prima pagina.
*
* @return void
* @since 1.0
*/
public function getFirst() {
if($this->_currentPage != 1)
echo '<li class="first-page"><a href="' . $this->_redirectTo . 'p=1" title="Inizio">« Inizio</a></li>';
else
echo '<li class="first-page"><span>« Inizio</span></li>' ;
}
/**
* YCPager::getFirst(). Stampa il link all'ultima pagina.
*
* @return void
* @since 1.0
*/
public function getLast() {
if($this->_currentPage != $this->getOffset())
echo '<li class="last-page"><a href="' . $this->_redirectTo . 'p='. $this->getOffset() .'" title="Fine">Fine »</a></li>';
else
echo '<li class="last-page"><span>Fine »</span></li>';
}
/**
* YCPager::getFirst(). Stampa il link alla pagina precedente a quella attuale.
*
* @return string
* @since 1.0
*/
public function getPrev() {
if($this->_currentPage - 1 > 0)
echo '<li class="prev-page"><a href="' . $this->_redirectTo . 'p='. ($this->_currentPage - 1) .'" title="Precedente">< Precedente</a></li>';
else
echo '<li class="prev-page"><span>< Indietro</span></li>';
}
/**
* YCPager::getFirst(). Stampa il link alla pagina successiva a quella attuale.
*
* @return string
* @since 1.0
*/
public function getNext() {
if($this->_currentPage + 1 <= $this->getOffset())
echo '<li class="next-page"><a href="' . $this->_redirectTo . 'p='. ($this->_currentPage + 1) .'" title="Successiva">Successiva ></a></li>';
else
echo '<li class="next-page"><span>Avanti ></span></li>';
}
}
?>