SP 长分页数字控制

来源:互联网 发布:卡通制作软件 编辑:程序博客网 时间:2024/04/30 20:55
//放在入口文件,调用,include 'fy.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;}


模板里面调用:


<{foreach from=$results item=one}>


中间略


 <{/foreach}>


显示分页数字

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