Home  >  Article  >  Backend Development  >  SP framework limits pagination number length_PHP tutorial

SP framework limits pagination number length_PHP tutorial

WBOY
WBOYOriginal
2016-07-14 10:07:26899browse

在入口文件调用
require(SP_PATH . "/SpeedPHP.php");
require(APP_PATH . '/include/functions.php');
spRun();

functions.php
[php] 
spAddViewFunction('pager', '__template_pager'); 
 
function __template_pager($params) { 
    if (!isset($params['pager']) || emptyempty($params['pager'])) 
        return ''; 
    $args = array(); 
    foreach ($params as $k => $v) 
        if (!in_array($k, array('c', 'a', 'pager', 'myclass', 'mypage', 'offset'))) 
            $args[$k] = $v; 
    $pagerhandle = isset($params['pager']['mypage']) ? $params['pager']['mypage'] : 'page'; 
    $html = "

"; 
    if ($params['pager']['current_page'] != $params['pager']['first_page']) { 
        $url = spUrl($params['c'], $params['a'], $args + array($pagerhandle => $params['pager']['prev_page'])); 
        $html .= "< Prev"; 
    } else { 
        $html .= "< Prev"; 
    } 
    $offset = $params['offset'] ? $params['offset'] : 200; // 可以在<{pager}>内用offset=x来调整 
 
    foreach ($params['pager']['all_pages'] as $page) { 
        if ($page == $params['pager']['current_page']) { 
            $html .= "{$page}"; 
        } else { 
            if (($params['pager']['current_page'] < $offset && $page < $offset ) ||
($params['pager']['current_page'] > $params['pager']['last_page'] - $offset && $page > $params['pager']['last_page'] - $offset ) || 
                    ( $page < $params['pager']['current_page'] + $offset && $page > $params['pager']['current_page'] - $offset ) 
            ) { 
                $url = spUrl($params['c'], $params['a'], $args + array($pagerhandle => $page)); 
                $html .= "{$page}"; 
            } 
        } 
    } 
    if ($params['pager']['current_page'] != $params['pager']['last_page']) { 
        $url = spUrl($params['c'], $params['a'], $args + array($pagerhandle => $params['pager']['next_page'])); 
        $html .= "Next >"; 
    } else { 
        $html .= "Next >"; 
    } 
    $html .= '
';
Return $html;
}

Template calling method
<{pager pager=$pager myclass="num" c="news" a="newslist" offset=5}>


For use within the controller:

[php]
//Information list
Function newslist() {
         $newsobj = spClass("lib_news");
// spPager is used here, and spArgs is used to receive the incoming page parameters
           $this->results = $newsobj->spPager($this->spArgs('page', 1), 12)->findAll(null, 'id DESC');
// Get the paging data here and send it to the smarty template
$this->pager = $newsobj->spPager()->getPager();
            $this->display("admin/news_list.html");
}  

CSS style
[css]
.num {
Clear:both; margin:0 auto; width:500px; padding:15px 0 0 0;
}
.num A {
BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; MARGIN: 2px; : #000; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px solid; TEXT-DECORATION: none
}
.num A:hover {
BORDER: #0080C0 1px solid; COLOR: #000;
}
.num A:active {
BORDER: #0080C0 1px solid; COLOR: #000;
}
.num SPAN.current {
BORDER-RIGHT: #0080C0 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #0080C0 1px solid; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; #0080C0 1px solid; COLOR: #fff; PADDING-TOP: 2px; BORDER-BOTTOM: #0080C0 1px solid; BACKGROUND-COLOR: #0080C0
}
.num SPAN.disabled {
BORDER-RIGHT: #eee 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #eee 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; MARGIN: 2px; : #ddd; PADDING-TOP: 2px; BORDER-BOTTOM: #eee 1px solid
}

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/477876.htmlTechArticleCall require(SP_PATH . /SpeedPHP.php); require(APP_PATH . /include/functions.php in the entry file ); spRun(); functions.php [php] spAddViewFunction(pager, __template_pager); functio...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn