发布时间:2014-09-05 10:43:09作者:知识屋
在入口文件调用
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 = "<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}>
控制器内使用:
[php]
//资讯列表
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样式
[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
}
如何对PHP文件进行加密方法 PHP实现加密的几种方式介绍
php生成圆角图片的方法 电脑中php怎么生成圆角图片教程
用PHP构建一个留言本方法步骤 php怎么实现留言板功能
php中三元运算符用法 php中的三元运算符使用说明
php文件如何怎么打开方式介绍 php文件用什么打开方法
PHP怎么插入数据库方法步骤 php编程怎么导入数据库教程
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
PHP 获取远程文件大小的3种解决方法 如何用PHP获取远程大文件的大小
20个实用PHP实例代码 php接口开发实例代码详细介绍
如何架设PHP服务器方法步骤 怎么搭建php服务器简单教程