ECSHOP品牌列表页实现分页修改教程
ECSHOP品牌列表页brand.php默认是没有分页的,如果品牌太多了,就不方便了。所以民能加上一个分页功能。
第一步:
打开根目录 brand.php 文件
查找:
if
(
empty
(
$brand_id
))
{
/* 缓存编号 */
$cache_id
= sprintf(
'%X'
, crc32(
$_CFG
[
'lang'
]));
if
(!
$smarty
->is_cached(
'brand_list.dwt'
,
$cache_id
))
{
assign_template();
$position
= assign_ur_here(
''
,
$_LANG
[
'all_brand'
]);
$smarty
->assign(
'page_title'
,
$position
[
'title'
]);
// 页面标题
$smarty
->assign(
'ur_here'
,
$position
[
'ur_here'
]);
// 当前位置
$smarty
->assign(
'categories'
, get_categories_tree());
// 分类树
$smarty
->assign(
'helps'
, get_shop_help());
// 网店帮助
$smarty
->assign(
'top_goods'
, get_top10());
// 销售排行
$smarty
->assign(
'brand_list'
, get_brands());
}
$smarty
->display(
'brand_list.dwt'
,
$cache_id
);
exit
();
}
修改为:
if
(
empty
(
$brand_id
))
{
assign_template();
$position
= assign_ur_here(
''
,
$_LANG
[
'all_brand'
]);
$smarty
->assign(
'page_title'
,
$position
[
'title'
]);
// 页面标题
$smarty
->assign(
'ur_here'
,
$position
[
'ur_here'
]);
// 当前位置
$smarty
->assign(
'categories'
, get_categories_tree());
// 分类树
$smarty
->assign(
'helps'
, get_shop_help());
// 网店帮助
$smarty
->assign(
'top_goods'
, get_top10());
// 销售排行
$sql
=
"SELECT count(*) as brand_count from ( select b.brand_id "
.
"FROM "
.
$GLOBALS
[
'ecs'
]->table(
'brand'
) .
"AS b, "
.
$GLOBALS
[
'ecs'
]->table(
'goods'
) .
" AS g "
.
"WHERE g.brand_id = b.brand_id AND is_show = 1 "
.
" AND g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 "
.
"GROUP BY b.brand_id ) AS gb"
;
$brand_count
=
$GLOBALS
[
'db'
]->getOne(
$sql
);
//品牌(含有商品的)数量
$page
= !
empty
(
$_REQUEST
[
'page'
]) &&
intval
(
$_REQUEST
[
'page'
]) > 0 ?
intval
(
$_REQUEST
[
'page'
]) : 1;
$size
= 30;
$max_page
= (
$brand_count
> 0) ?
ceil
(
$brand_count
/
$size
) : 1;
if
(
$page
>
$max_page
) {
$page
=
$max_page
;}
$start
=(
$page
- 1) *
$size
;
$sql
=
"SELECT b.brand_id, b.brand_name, b.brand_logo, b.brand_desc, COUNT(*) AS goods_num, IF(b.brand_logo > '', '1', '0') AS tag "
.
"FROM "
.
$GLOBALS
[
'ecs'
]->table(
'brand'
) .
"AS b, "
.
$GLOBALS
[
'ecs'
]->table(
'goods'
) .
" AS g "
.
"WHERE g.brand_id = b.brand_id AND is_show = 1 "
.
" AND g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 "
.
"GROUP BY b.brand_id HAVING goods_num > 0 ORDER BY tag DESC, b.sort_order ASC limit $start,$size"
;
$row
=
$GLOBALS
[
'db'
]->getAll(
$sql
);
foreach
(
$row
AS
$key
=>
$val
)
{
$row
[
$key
][
'url'
] = build_uri(
'brand'
,
array
(
'cid'
=>
$cat
,
'bid'
=>
$val
[
'brand_id'
]),
$val
[
'brand_name'
]);
$row
[
$key
][
'brand_desc'
] = htmlspecialchars(
$val
[
'brand_desc'
],ENT_QUOTES);
}
$pager
[
'search'
] =
array
( );
$pager
= get_pager(
'brand.php'
,
$pager
[
'search'
],
$brand_count
,
$page
,
$size
);
$pager
[
'display'
] =
$display
;
$smarty
->assign(
'pager'
,
$pager
);
$smarty
->assign(
'brand_list'
,
$row
);
$smarty
->display(
'brand_list.dwt'
);
exit
();
}
其中,第10行的
$size = 30;
表示每页的数量
第二步:
打开模板文件 brand_list.dwt
在需要显示分页的地方加入以下代码:
大功告成