+ -
当前位置:首页 → 问答吧 → HBcms的Smarty+PEAR::Pager+PEAR::HTML_table列表页分页实例

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

时间:2007-04-28

来源:互联网

文章标题:
              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内容到剪贴板
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内容到剪贴板
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+1, 0, (string)($i+$data_ary['from']));
  .....
}
$DATA_ARY['body'] .= $form->toHtml(); 

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

最后,用Smarty模板进行输出
复制PHP内容到剪贴板
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生成的静态页

.

[ 本帖最后由 hbcms 于 2007-4-28 10:08 编辑 ]

作者: hbcms   发布时间: 2007-04-28

;P 空间很少有支持pear的吧?

作者: edwardhey   发布时间: 2007-05-06

php空间都支持pear,设置一下即可

作者: hbcms   发布时间: 2007-05-11

pear可不可以直接和smarty一样下载下来include使用啊
呵呵,因为服务器不一定开通
能打包到程序里就ok了

作者: sanler   发布时间: 2007-05-29