关于分页的问题
发布于:2022-01-17 09:50:54
#1 zhgzzy
<{pager pager=$pager myclass="yahoo2" c="网址控制器" a="网址动作" arg1="第一个参数" ...}>
这个如何改为在speedy引擎下的代码:
2010-08-20 13:51:31
#2 zhgzzy
= pager('main','mr',array('qid'=>$qid,'pager'=>$pager,'myclass'=>yahoo2)) ?> 这样为什么不行呀
2010-08-20 13:55:34
#3 jake
<{pager}>是Smarty用的函数。在speedy,或者说是PHP内使用,就可以用它的原来的函数,这个pager原来的函数是:__template_pager($params)
$params应该是
$params = array(
'pager' => $pager,
'myclass' => 'yahoo2',
'c' => 'main',
'a' => 'mr',
其他参数
);
2010-08-20 16:22:23
#4 zhgzzy
=__template_pager(array('page'=>$thepage,'myclass' => 'yahoo2','c'=>'main','a'=>'mr','qid'=>$qid))?> 这样也不行,输出空白
2010-08-23 15:00:41
#5 jake
首先确定你引入了这个函数的定义文件。
然后
2010-08-23 15:24:16
#6 zhgzzy
确定引入,还是空
这里是不是要改一下???
$this->pager = $guestbook->spPager()->getPager();
2010-08-23 15:30:17
#7 jake
$this->
pager = $guestbook->spPager()->getPager();
=__template_pager(array('page'=>
$thepage,'myclass' => 'yahoo2','c'=>'main','a'=>'mr','qid'=>$qid))?>
这里肯定得相同才行~~~
2010-08-23 20:37:04
#8 zhgzzy
$this->pager = $guestbook->spPager()->getPager();
=pagers(array('c'=>'main','a'=>'mr','qid'=>$qid,'pager'=>$pager))?> //样式去掉了,我有固定样式
function pagers($params){
if( !isset($params['pager']) || empty($params['pager']) )return '';
$args = array();
foreach( $params as $k => $v )if( !in_array($k, array('c','a','pager','mypage')) )$args[$k] = $v;
$pagerhandle = isset($params['pager']['mypage']) ? $params['pager']['mypage'] : 'p';
$html = "";
$offset = $params['offset'] ? $params['offset'] : 8; // 可以在<{pager}>内用offset=x来调整
foreach( $params['pager']['all_pages'] as $p ){
if( $p == $params['pager']['current_page'] ){
$html .= "
{$p}";
}else{
if( ($params['pager']['current_page'] < $offset && $p < $offset ) ||
($params['pager']['current_page'] > $params['pager']['last_page'] - $offset && $p > $params['pager']['last_page'] - $offset ) ||
( $p < $params['pager']['current_page'] + $offset && $p > $params['pager']['current_page'] - $offset )
){
$url = spUrl($params['c'], $params['a'], $args + array($pagerhandle => $p));
$html .= "
{$p}";
}
}
}
return $html;
}
还有一点问题,请帮我看一下???点上下页时内容没变
2010-08-24 09:51:46
#9 jake
点上下页时内容没变,你要看看页码生成后,下一页的链接中,p这个参数的数值是多少?
有没有加一减一了。
另外,确定程序接收到这个p的参数并进行了分页吗? spPager($this->spArgs(
'p'), 10)->
2010-08-24 15:51:23
#10 zhgzzy
分页是变了,但是内容没变
2010-08-25 15:28:53
#11 jake
内容没变,那就应该是spPager有没有接收到传入的P参数了,这是控制器端的检查。
2010-08-25 16:59:40
#12 azwl
前面分页中的下面这句是有错的,当get传递的格式不是‘&p=2’这样的形式时出错,得不到页数2
$pagerhandle = isset($params['pager']['mypage']) ? $params['pager']['mypage'] : 'p';
正确的应该是:
$pagerhandle = isset($params['mypage']) ? $params['mypage'] : 'p';
2010-08-25 19:53:10