SP框架限制分页数字长度

在入口文件调用

require(SP_PATH . "/SpeedPHP.php");
require(APP_PATH . '/include/functions.php');
spRun();


functions.php

spAddViewFunction('pager', '__template_pager');

function __template_pager($params) {
    if (!isset($params['pager']) || empty($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 = "<div class=\"{$params['myclass']}\">";
    if ($params['pager']['current_page'] != $params['pager']['first_page']) {
        $url = spUrl($params['c'], $params['a'], $args + array($pagerhandle => $params['pager']['prev_page']));
        $html .= "<a href=\"{$url}\">< Prev</a>";
    } else {
        $html .= "<span class=\"disabled\">< Prev</span>";
    }
    $offset = $params['offset'] ? $params['offset'] : 200; // 可以在<{pager}>内用offset=x来调整

    foreach ($params['pager']['all_pages'] as $page) {
        if ($page == $params['pager']['current_page']) {
            $html .= "<span class=\"current\">{$page}</span>";
        } 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 .= "<a href=\"$url\">{$page}</a>";
            }
        }
    }
    if ($params['pager']['current_page'] != $params['pager']['last_page']) {
        $url = spUrl($params['c'], $params['a'], $args + array($pagerhandle => $params['pager']['next_page']));
        $html .= "<a href=\"$url\">Next ></a>";
    } else {
        $html .= "<span class=\"disabled\">Next ></span>";
    }
    $html .= '</div>';
    return $html;
}


模板调用方法

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



控制器内使用:


//资讯列表
    function newslist() {
        $newsobj = spClass("lib_news");
        // 这里使用了spPager,同时用spArgs接受到传入的page参数
        $this->results = $newsobj->spPager($this->spArgs('page', 1), 12)->findAll(null, 'id DESC');
        // 这里获取分页数据并发送到smarty模板内
        $this->pager = $newsobj->spPager()->getPager();
        $this->display("admin/news_list.html");
    }

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; BORDER-LEFT: #ccc 1px solid; COLOR: #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; MARGIN: 2px; BORDER-LEFT: #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; BORDER-LEFT: #eee 1px solid; COLOR: #ddd; PADDING-TOP: 2px; BORDER-BOTTOM: #eee 1px solid
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值