您的位置:HBcms宏博内容管理系统 PHP技术 正文
 添加时间:2007-04-30 原文发表:2007-04-30 人气:449


Smarty+PEAR::Pager+PEAR::HTML_table列表页分页实例

文章标题:
              HBcms 的Smarty+PEAR::pager+PEAR::Html_table列表页分页实例

文章目的:

             下面的代码是从 HBcms 的分页程序里节选出来的,因为牵涉到太多的关联程序或类库,
             为了让大家能看明白,这里只贴关键的程序片段,给个思路,
             希望能对一些有需要,又有点迷惑的程序员起到引导作用。


应用演示:
             http://www.hbcms.com/cms/JianZhanJingYan/
             http://www.hbcms.com/cms/help/
             http://www.hbcms.com/hbcms/user/list_msg.php?mod=show_outbox


文章版权:
             本文章版权归宏博CMS www.hbcms.com 所有,转发请保留此版权说明


应用范围:
             所有需要 分页+个性化输出 的项目


注意事项:
            PEAR,SMARTY 初学者会觉得很麻烦,耐心一点,一旦越过了初学阶段,会事半功倍


关键代码:
首先,从数据库读取分页所需要的数据($data_ary),这里用到的关键类库为 PEAR:PAGER

PHP代码:

$pagerOptions = array(
     
'mode'    => 'Sliding'
,
     
'delta'   => 4
,
     
'perPage' => 20
,
  
'firstPageText' => $CFG['lang']['index_page'
],
  
'lastPageText' => $CFG['lang']['last_page'
],
  
'nextImg' => $CFG['lang']['next_page'
],
  
'prevImg' => $CFG['lang']['prev_page'
],
  
'spacesBeforeSeparator' => 1
,
  
'spacesAfterSeparator' => 1
,
  
'extraVars' => array('type_id'=>$type_id,'order_by'=>$order_by,'keyword'=>$keyword, 'title_key'=>$title_key, 'body_key'=>$body_key, 'editor_mark'=>$editor_mark
),
  
'httpMethod' => 'GET'
,
);


$data_ary getArticlePagerData($child_id_str$pagerOptions$search_key$order_by); 


其次,将读取到的数据,组合成希望要显示的表格形式,这里用到的关键类库为 PEAR:HTML_TABLE

PHP代码:

require_once 'HTML/Table.php';
$tableAttrs = array('width' => '590','align'=>'center'"cellpadding"=>5"cellspacing"=>0
);
$table = new HTML_Table($tableAttrs
);
$table->setAutoGrow(true
);
$table->setAutoFill(' '
);
for (
$i 0$i count($data_ary['data']); $i
++) {
$table->setHeaderContents($i+10, (string)($i+$data_ary['from'
]));
  .....
}
$DATA_ARY['body'] .= $form->toHtml
(); 

// 注意:此部分可以直接传递变量给smarty模板,这样灵活性更加强。 


最后,用Smarty模板进行输出

PHP代码:

require_once("mySmarty.class.php");
$tpl = new mySmarty($CFG$tpl_dir
);
// 设置模板变量
$tpl->assign
(
array(
"data_ary"   => $DATA_ARY
,
"web"  => $CFG['web'
],
)
);
echo 
$tpl->myFetch('user_index.tpl.html'
);

// 注意:此处也可以将smarty模板的输出直接生成静态页,HBCMS的前台列表页就是掉用smarty生成的静态页 


本页地址
相关文章

PHP ASP比较:PHP比ASP优秀的七个理由
php ajax实例: 开发高质量的RSS聚合器
PHP程序员易忽略的PHP精华和技巧
用php实现远程安装:自动下载,自动解压
可能是PEAR:config组件的bug
PHP官方网站,php官方论坛,中文函数手册下
PHP6下载,php6介绍和php6安装手册
PHP的PEAR::HTML_AJAX类库应用
最佳的PHP数据库MySQL市场主管采访
SMTP判断邮箱是否存在,检查email地址是否真
php程序员前途,mysql数据库和oracle的区别
PHP生成静态页面详解
用PHP实现验证码功能
在线操作系统----TOMOS的未来战略(作者:谢
[转]PHP突出开源优势要做Windows平台一等公
用PHP与XML进行网站编程

相关评论


本文章所属分类:首页 PHP技术