%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/nailstv/public_html/de.nails.tv/include/
Upload File :
Create Path :
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);
    }
}        

?>

Zerion Mini Shell 1.0