最近有看到朋友在ECSHOP论坛里提问: 如何在首页增加一个类似于“销售排行榜”的“浏览排行榜”,并且可以在后台的“模板设置”里进行控制。
1 t. R [0 i( x) H. R( b; v( k- b
; d! C( q0 J$ E1 Y8 q: s8 m由于系统默认是没有读取浏览排行的,所以这部分功能既得增加程序,又得增加模板。& c( o. K6 Z2 t ~8 T8 X$ u* f
本教程是以 ecshop2.7.2 官方默认模板 为例进行讲解的。$ t7 h! z, o8 J
# t% ]" M: ]4 f" D- K
效果图如下:
! H& a- J$ Z( a: G) A d o* I: `1 {
# r: ]8 c: J8 o0 y) J" i; G9 S' a$ J0 n$ U$ {. j" S
1)、将下面代码复制并保存到 一个新文件中,文件路径为: /themes/default/library/top10_click.lbi <meta http-equiv="Content-Type" content="text/html; charset=utf-8">, V* b2 G0 j0 V& F' L3 T9 E: e
<div class="box">0 A. M& M# W! _4 n
<div class="box_2">2 c; p0 }/ D2 w0 H* {1 h# r% N
<h3><span>浏览排行</span></h3>' t$ W$ H6 p) ~1 K# T2 x. O/ ^
<div class="top10List clearfix">
3 W t( T5 n( w* j <!-- {foreach name=top_goods from=$top_goods_click item=goods}-->7 J2 |3 b/ T1 [
<ul class="clearfix">$ U7 i+ m8 Z" `% r5 _6 H
<img src="../images/top_{$smarty.foreach.top_goods.iteration}.gif" class="iteration" />
k( ~' V+ Q' s5 N5 m9 ?# ^9 E <!-- {if $smarty.foreach.top_goods.iteration<4}-->
5 i! }4 @' ]/ v( A% g <li class="topimg">: l: O' H% s' T- }
<a href="{$goods.url}"><img src="{$goods.thumb}" alt="{$goods.name|escape:html}" class="samllimg" /></a>
& V% B$ R3 E# U/ X! @; A9 g </li>
" K1 Y' p5 u6 L0 |7 h <!-- {/if} -->
2 r E( O2 M2 h* t; F <li {if $smarty.foreach.top_goods.iteration<4}class="iteration1"{/if}>/ j; [( j; @+ z- D w6 \5 e1 A& d
<a href="{$goods.url}" title="{$goods.name|escape:html}">{$goods.short_name}</a><br /> N+ A) v$ T8 t4 h/ |; Y2 ^: A3 r* m8 p
{$lang.shop_price}<font class="f1">{$goods.price}</font><br />
9 z3 e( [, ?: { D7 B! n7 Z </li>7 \0 }5 X" {) |. W- K
</ul>: Z$ R, X8 c3 `1 \, \, U
<!-- {/foreach} -->+ X- s3 e8 z! e$ G* o
</div># e/ V$ m. R6 e8 l3 }
</div>: {( s! r3 m& c1 W
</div>/ J+ m. h9 Y( O+ j
<div class="blank5"></div> | - i( t, \* C: x7 d+ _4 M$ v/ ?% x2 x, R
2)、修改 /includes/lib_goods.php 文件; m7 j, I8 L% K9 I- I
在最下面增加一个函数4 h6 H! i8 A0 |' C# Q+ g
/**
m0 P: D$ h+ O* N. y1 h; s * 调用浏览排行榜
3 Q& @7 W6 p3 `9 l *
0 B8 k0 F4 w O$ r8 P7 i * @access public0 Q4 T! p; k: d
* @return array
; ]# s1 z+ H0 t9 e0 W! E% ?& ] */
4 X) I0 ]/ j! \* u. Cfunction get_top10_click()
^( p0 l o3 x5 Z& i{
. A1 R5 R; e$ y" }5 l $sql="SELECT goods_id, goods_name, shop_price, goods_thumb " .
0 P% G; r8 ~& `& F 'FROM ' . $GLOBALS['ecs']->table('goods')." where is_on_sale = 1 AND is_alone_sale = 1 AND is_delete = 0 order by click_count desc limit 10";
0 `' m6 I, K3 {1 N P $arr = $GLOBALS['db']->getAll($sql);
Y% b9 E. b! L0 z& N1 v for ($i = 0, $count = count($arr); $i < $count; $i++)
# B/ S' y! T* b/ ?6 _ {
+ n0 \% O5 B. D! ?5 P $arr[$i]['short_name'] = $GLOBALS['_CFG']['goods_name_length'] > 0 ?* Q, A2 b. }# K4 o# l
sub_str($arr[$i]['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $arr[$i]['goods_name'];
1 ?5 ]3 Y7 `% B. ?. X! o $arr[$i]['url'] = build_uri('goods', array('gid' => $arr[$i]['goods_id']), $arr[$i]['goods_name']);
8 L6 o# L7 V/ k8 x2 R- k: X $arr[$i]['thumb'] = get_image_path($arr[$i]['goods_id'], $arr[$i]['goods_thumb'],true);- }) A) w! [, D7 {
$arr[$i]['price'] = price_format($arr[$i]['shop_price']);
6 i- D0 a9 y7 ]- c6 w }
1 |9 a1 s" J4 A9 [ return $arr;
0 n2 ~7 E6 h- f" g5 }} |
+ X# Q% E F) |' W/ |( C3)、修改 /index.php 文件
; y' J5 U6 w& @: w0 f在$smarty->assign('top_goods', get_top10()); // 销售排行 | & R# y- F, x8 Q/ k# p' J
下面另起一行增加$smarty->assign('top_goods_click', get_top10_click()); // 浏览排行 |
, ]- y% N0 k7 F; L修改模板文件 /themes/default/index.dwt
7 H6 Z2 s1 Y1 R* z( R, w找到$ _& X" f) S9 W
<!-- #BeginLibraryItem "/library/promotion_info.lbi" --> | 在它的前面增加
7 t( a9 \* y: e1 @<!-- #BeginLibraryItem "/library/top10_click.lbi" --><!-- #EndLibraryItem --> |
" n, f# S" ^& r; D5 O# g1 h, B0 u/ Y4 y3 |! C( _
4)、修改 /admin/includes/lib_template.php 文件- O R1 i3 v/ U
5 v% B: C* \7 `- v V3 x6 M+ F
在'/library/invoice_query.lbi' => 0, | $ _# n: J5 j) ]0 ?
上边增加一行代码6 q6 {+ t% C# u6 w
'/library/top10_click.lbi' => 0, |
7 \1 p: \$ U8 a5 @" T9 |% r5)、继续修改语言包文件 /languages/zh_cn/admin/template.php
6 C) w( g1 \% b在$_LANG['template_libs']['top10'] = '销售排行'; | - G' i' q8 D, k! _( i2 O8 G- p
下边增加一行代码5 f3 w: z3 w- {* C1 E) G
$_LANG['template_libs']['top10_click'] = '浏览排行'; | # n5 l, k* ?9 v$ |- ^0 X
6)、修改 /themes/default/lib.xml 文件$ y3 C$ C* E; t7 @0 U
1 x5 |9 h$ P3 {) I% b
找到
7 Z4 Q5 w5 W+ L; Q并且在它下面另起一行,增加
7 a, b, b+ X* B# l 7)、最后进入 后台 》模板管理 》设置模板, 是不是看到了期待已久的“浏览排行”,设置一下,并清除缓存,就OK了% }! q5 v( V3 i! \$ s, p
|