+ -
当前位置:首页 → 问答吧 → 超简单而又实在的 SMARTY 分页

超简单而又实在的 SMARTY 分页

时间:2006-11-29

来源:互联网

看到许多人在发SMARTY 的分页,但总觉得不够简单。下面,我将以例子来说明这分页的使用。绝对的简单好用,显示的样式也多呀~:lol
(源码文件一会打包)

补:效果图(图1)

以下是模版文件page.tpl.htm
复制内容到剪贴板
代码:
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link href="css/home.css" rel="stylesheet" type="text/css" />
<link href="read.css" rel="stylesheet" type="text/css" />
<title>推荐导读</title>
</head>
<body>
<div class="row">
  <div class="tab_label" style="background-color:#FEF4F5; float:left">
   <div style="float:left; width:420px; overflow:hidden">
    <ul>
     {foreach from=$list item=rs key=key}
     <li>
      <span class="li_dot">4</span>
      <a target="_blank" href="#{$rs.Title}">{$rs.Title}</a>
     </li>
    {/foreach}
    </ul>
   </div>
  </div>
</div>
<p>
{pager rowcount=$totalpage limit=1 shift=1 no_first=true separator="|" class_text="pager_text" txt_pos="side"}
</body>
</html>
好了,让我们看看这一段:
复制内容到剪贴板
代码:
{pager rowcount=$totalpage limit=1 shift=1 no_first=true separator="|" class_text="pager_text" txt_pos="side"}
这一段是主要的,也就是导航部分

separator="|"  就是页码之间的一个间隔

rowcount=$totalpage  总记录数

limit=1 页码间隔加1 假如设为2 可能会变成 1 3 5 7 .....

其它的也不重要吧,呵呵~,参数的具体设置可以查看function.pager.php (老外的。。。半懂半不懂)

那么我们的程序怎样写呢?
复制内容到剪贴板
代码:
<?php
require_once("./includes/init.php");
/* SMARTY 分页 */
//$smarty->caching = false;   
$lady_url ="http://lady.poco.cn/";
$content = array();
$pagesize = 5;
$sql.=  "SELECT Image,Title,Intro,CreationDate,ContentID ".
      "FROM cms_db.cms_content_4 ".
   "WHERE Zine_type_id IN(5,6,7,11,24) ".
   "ORDER BY ContentID DESC ";
    $res = $db->query($sql);
    //结果集
    $total = $res->RecordCount();
    //记录条数
    $totalpage = ceil($total/$pagesize);
    //总页数
    $page = ceil($_GET["pos"])+1;
    //当前页
    $sql.= "limit ".($pagesize * ($page-1)).", ".$pagesize;
    //语句
    $idx = 0;
    $res = $db->query($sql);
    while ($rs = $res->FetchRow())
    {  
     $content[$idx]['Image']    = $rs['Image'];
     $content[$idx]['Title']    = $rs['Title'];
     $content[$idx]['Intro']    = $rs['Intro'];
     $content[$idx]['html_url']      = date("Y-m-d",$rs['CreationDate'])."/".$rs['ContentID'].".html";
     $content[$idx]['ContentID']   = $rs['ContentID'];
     
     $idx++;   
    }
   
    $smarty->assign('totalpage',$totalpage);
    $smarty->assign('list',$content);
    $smarty->assign('lady_url',$lady_url);
    $smarty->display("page.tpl.htm",$page);
?>
我们只要传给模版 $smarty->assign('totalpage',$totalpage); 就可以了。重要的部分我都有注解,应该明白吧!
$smarty->display("page.tpl.htm",$page); 目的是为了让它每一个页都生成一个新的页。。不然,刷来刷去都是同一个页。
最后,只要把function.pager.php 放到smarty\plugins 目录下,你就可调用分页了。

怎样?够简单了吧~打包程序给你们

看了要回贴啊,动力所在~

[ 本帖最后由 sufing0x1 于 2006-11-29 10:41 编辑 ]
page.jpg (19.65 KB)

2006-11-29 10:38

图1

作者: sufing0x1   发布时间: 2006-11-28

呵呵,支持原创!!!!!!

作者: leehui1983   发布时间: 2006-11-28

谢谢,学习中,,,

作者: 王洋姜   发布时间: 2006-11-28

楼主高手,支持

作者: MySQL   发布时间: 2006-11-28

你们回贴,我很高兴~嘻嘻~

1楼补上效果图吧~呵呵~

作者: sufing0x1   发布时间: 2006-11-29

给予动力支持!!

作者: ScottZhang   发布时间: 2006-11-29

互相分享,互相进步,支持原创!!!

作者: leehui1983   发布时间: 2006-11-29

谢谢楼主!!又学到一招了!!

作者: hmly   发布时间: 2006-12-05

学习

作者: scorpion   发布时间: 2006-12-07

谢谢!学习中!

作者: 86800787   发布时间: 2006-12-08

嗯,呵呵~大家互相学习~有什么东西拿出来共享~

作者: sufing0x1   发布时间: 2006-12-08

谢谢了

作者: gewanhong   发布时间: 2006-12-25

想不到还这么久了,还未沉底~
有点开心,看来是有点用了,呵呵~:lol

作者: sufing0x1   发布时间: 2006-12-27

作者: leehui1983   发布时间: 2006-12-27

最近就是太忙了,在赶工程~

等赶完了,再把工程中用到和学习到的技巧总结出来~

作者: sufing0x1   发布时间: 2006-12-27

不能用,不知是什么原因

作者: jeromenie   发布时间: 2007-02-05

顶 明天来看

作者: remote_addr   发布时间: 2007-04-23

用不了,会报这个错:
Warning: Smarty error: plugin "pager": bad value for : "txt_pos" in E:\www\blog\code\libs\Smarty\Smarty.class.php

作者: willke   发布时间: 2007-08-15

学习了

作者: fangkejie   发布时间: 2007-08-28

作者: ssww   发布时间: 2007-08-30

:) :)

作者: GoodLuck   发布时间: 2007-08-31

支持楼主一个,smarty学习中

作者: design_dd   发布时间: 2008-04-11

谢谢楼主!学习了

作者: cqc1008   发布时间: 2008-07-05

支持,学习

作者: leftwater   发布时间: 2008-07-07

谢谢,很不错,用上了。

作者: huihot   发布时间: 2008-08-01

最近才开始看smarty...好慢啊...

作者: richardhc   发布时间: 2008-08-04

支持楼主,学习ing

作者: longkingcx   发布时间: 2008-08-12

支持了!!!!!!!

作者: superdebug   发布时间: 2008-08-12