%PDF- %PDF-
Direktori : /home/nailstv/public_html/de.nails.tv/include/ |
Current File : /home/nailstv/public_html/de.nails.tv/include/Pager.class_.php |
<?php class Pager extends Content { var $current; var $numbers = array(); var $letters = array(); public function __construct($pager_id = '') { parent::__construct(); if(!empty($_REQUEST['page']) && !empty($pager_id)) { settype($_REQUEST['page'], 'integer'); $_SESSION[$pager_id]['curr_page'] = $_REQUEST['page']; } if(!empty($_SESSION[$pager_id]['curr_page'])) { $this->current = $_SESSION[$pager_id]['curr_page']; } elseif(!empty($_REQUEST['page'])) { $this->current = intval($_REQUEST['page']); } else { $this->current = 1; } } function setup($lastPageNumber, $recordCount, $limit = '', $qs = '', $fancyurl = false, $ajax = false, $ajaxTarget = '', $ajaxContent = '') { if($this->current < 1) $this->current = 1; if($this->current > $lastPageNumber) $this->current = $lastPageNumber; if(!isset($this->pageNumbers)) { $this->pageNumbers = Registry::get('page_numbers'); } $this->limit = empty($limit) ? Registry::get('limit') : $limit; $this->recordCount = $recordCount; $this->lastPageNumber = $lastPageNumber; $this->from = (($this->limit * $this->current) - $this->limit + 1); $this->to = $this->from + $this->recordCount - 1; $this->x = 1; $this->eleje = true; $this->vege = true; $this->ajaxTarget = $ajaxTarget; $this->ajaxContent = $ajaxContent; $this->generatePageNumbers($qs, $fancyurl, $ajax); $this->generateControls($qs, $fancyurl, $ajax); } function show($tpl) { if(!empty($this->rovat_url)){ $this->assign('rovat_url', $this->rovat_url); } $this->assign('current', $this->current); $this->assign('sum', $this->lastPageNumber); $this->assign('numbers', $this->numbers); $this->assign('first', $this->firstPageHref); $this->assign('prev', $this->prevPageHref); $this->assign('next', $this->nextPageHref); $this->assign('last', $this->lastPageHref); $this->assign('from', $this->from); $this->assign('to', $this->to); return $this->fetch($tpl); } function setPageNumbers($num) { $this->pageNumbers = $num; } function generatePageNumbers($qs, $fancyurl, $ajax) { if(!isset($this->lastPageNumber) || $this->lastPageNumber <= 1) { return; } $key = 0; for($i = 0; $i < $this->pageNumbers; $i++) { $d = $this->current - 2; if($d >= intval($this->pageNumbers/2) && $this->eleje) { $this->x += $d - intval($this->pageNumbers/2) + 1; $this->eleje = false; } $d = $this->lastPageNumber - $this->pageNumbers; if($this->x > $d && $this->vege) { $this->x = $d + 1; $this->vege = false; } if($this->x <= $this->lastPageNumber && $this->x > 0) { if($this->x == $this->current) { $this->numbers[$key]['num'] = $this->x; } else { $this->numbers[$key]['num'] = $this->x; if($ajax) { $this->numbers[$key]['href'] = "#\" onclick=\"$('" . $this->ajaxTarget . "').load('".$_SERVER['PHP_SELF']."?page=".$this->x." " . $this->ajaxContent . "'); return false;"; } elseif($fancyurl) { $this->numbers[$key]['href'] = $this->addPagerToUrl($_SERVER['REDIRECT_URL'], $this->x) . $qs; } else { $this->numbers[$key]['href'] = $_SERVER['REDIRECT_URL']."?page=" . $this->x . $qs; } } $key++; } $this->x++; } } function generateLetters($sql, $field) { global $db; $n = 1; $key = 0; $r = $db->Execute($sql); while(!$r->EOF) { $nevek[] = kisbetu($r->fields[$field]); $r->MoveNext(); } usort($nevek, "strcmp_hun"); $r->MoveFirst(); $cnt = count($nevek); for($i = 0; $i < $cnt; $i++) { $l = nagybetu($nevek[$i]{0}); $i += $this->limit -1; if($i > $cnt-1) $i = $cnt-1; $l .= "-".nagybetu($nevek[$i]{0}); $this->letters[] = $l; $n++; } foreach($this->numbers as $key => $val) { $k = $this->numbers[$key]['num'] -1; $this->numbers[$key]['letter'] = $this->letters[$k]; } } function generateControls($qs = '', $fancyurl = false, $ajax = false) { if($this->current > 1) { if($ajax) { $this->firstPageHref = "#\" onclick=\"$('" . $this->ajaxTarget . "').load('".$_SERVER['PHP_SELF']."?page=1 " . $this->ajaxContent . "'); return false;"; $this->prevPageHref = "#\" onclick=\"$('" . $this->ajaxTarget . "').load('".$_SERVER['PHP_SELF']."?page=".($this->current - 1)." " . $this->ajaxContent . "'); return false;"; } elseif($fancyurl) { $this->firstPageHref = $this->addPagerToUrl($_SERVER['REDIRECT_URL'], 1) . $qs; $this->prevPageHref = $this->addPagerToUrl($_SERVER['REDIRECT_URL'], $this->current - 1) . $qs; } else { $this->firstPageHref = $_SERVER['REDIRECT_URL']."?page=1" . $qs; $this->prevPageHref = $_SERVER['REDIRECT_URL']."?page=" . ($this->current - 1) . $qs; } } else { $this->firstPageHref = '#'; $this->prevPageHref = '#'; } if($this->current < $this->lastPageNumber) { if($ajax) { $this->nextPageHref = "#\" onclick=\"$('" . $this->ajaxTarget . "').load('".$_SERVER['PHP_SELF']."?page=".($this->current + 1)." " . $this->ajaxContent . "'); return false;"; $this->lastPageHref = "#\" onclick=\"$('" . $this->ajaxTarget . "').load('".$_SERVER['PHP_SELF']."?page=".$this->lastPageNumber." " . $this->ajaxContent . "'); return false;"; } elseif($fancyurl) { $this->nextPageHref = $this->addPagerToUrl($_SERVER['REDIRECT_URL'], $this->current + 1) . $qs; $this->lastPageHref = $this->addPagerToUrl($_SERVER['REDIRECT_URL'], $this->lastPageNumber) . $qs; } else { $this->nextPageHref = $_SERVER['REDIRECT_URL']."?page=" . ($this->current + 1) . $qs; $this->lastPageHref = $_SERVER['REDIRECT_URL']."?page=" . $this->lastPageNumber . $qs; } } else { $this->nextPageHref = '#'; $this->lastPageHref = '#'; } } function addPagerToUrl($url, $num) { $url = explode('/', $url); $end = array_pop($url); $tmp = explode('.', $end); $u = String::parseUrl($tmp[0]); $new_url = $u['url'] . '-' . $num; if(!empty($tmp[1])) { $new_url .= '.' . $tmp[1]; } array_push($url, $new_url); return implode('/', $url); } } ?>