ECShop新建页面并进行分页显示

来源:互联网 发布:淘宝15天退货 编辑:程序博客网 时间:2024/06/07 10:22

比如,我要在ecshop的导航栏上新添加一个“新品”按钮,用于展示最近上传的产品。方法如下:

1、分别在根目录下和 /themes/模板文件夹名/   下分别新建new_arrivals.php和new_arrivals.dwt两个文件。

2、在模板文件上加上分页功能的显示代码,即.dwt中引入lib库文件,在.dwt模板文件放分页页码显示的地方加入:

<!-- #BeginLibraryItem "/library/pages.lbi" --><!-- #EndLibraryItem -->

3在.php处理页中,加入如下代码:

具体示例代码如下

<?php
define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/init.php');
assign_template();
//分页处理,分页尺寸
$size = 20;
$page = isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 1;
$record_count = 60;
$pager = get_pager('abc.html', array('act' => 'new_arrivals'), $record_count, $page, $size);
$new_arrivals_list = new_arrivals_list($user_id, $size, $pager['start']);
//分页数据传给模板
$smarty->assign('pager',  $pager);
//向模板也传递数据
$smarty->assign('new_arrivals_list',$new_arrivals_list);
//加载模板页面
$smarty->display('abc.dwt');
function new_arrivals_list($user_id, $num = 20, $start = 0){
    $sql = "SELECT goods_id, goods_sn, goods_name, market_price, shop_price, goods_thumb FROM " .$GLOBALS['ecs']->table('goods') . ' ORDER BY add_time DESC';
    $arr = array();
    $res = $GLOBALS['db']->SelectLimit($sql, $num, $start);
    while ($row = $GLOBALS['db']->fetchRow($res))
  {
$arr[] = array('goods_id'=> $row['goods_id'],
  'goods_sn'=> $row['goods_sn'],
  'goods_name'=> $row['goods_name'],
  'shop_price'=> $row['shop_price'],
  'market_price'=> $row['market_price'],
  'goods_thumb'=> $row['goods_thumb']);
        }
$new_arrivals=array();
foreach($arr as $new){
//生成(取出)该产品的URL
$new['url']=build_uri('goods',array('gid'=>$new['goods_id']), $new['goods_name']);
//取出该产品的汇率价格
$new['shop_price']=price_format($new['shop_price']);
//限制商品名字的显示长度
$new['goods_name']=substr($new['goods_name'], 0, 93);
$new_arrivals[]=$new;
}
    return $new_arrivals;
}
?>

其中在25行array('act' => $action)我将其改成array('act' => 'new_arrivals') 这样就将原来的URL地址www.like.com/abc.html?act=&page=1变成www.like.com/abc.html?act=new_arrivals&page=1,另外,由于只显示最近上传的产品,所以我将第24行,改成$record_count = 60;由于查询出来的数据没有URL、和货币种类或有的产品标题较长,程序中49-58行,及时处理这类问题的。

0 0
原创粉丝点击