原文地址:ECshop
转自:A5论坛 自己留下备用
在最新版本的EC2.7.2我只用到了几个还是能用的其它的没测试。
第一问答
问:怎样把ECSHOP商城系统中的相对地址变成带域名的绝对地址?
答:我们一般所说的绝对地址(也有朋友称其为:完整地址)是指我们在网页前台查看源文件时,在源文件中都所能看到的带域名的完整URL形式,比如:
“<a href="http://www./sitemap.xml ">xxxxx</a>”
修改说明:
这样修改的好处:
也许很多朋友都非常想把以www(www.)开头的URL和不带www()的URL同时指向同一个地方。
通过这个方法进行修改以后方便搜索引擎“第一时间”确定以 www 开头的域名 为首选域,也不需要再做301重定向了。
具体操作方法:
其实这个问题操作起来并不复杂
在ECSHOP商城系统里找到 /includes/lib_common.php这个文件
把return $uri;
修改为
return 'http:// www./'.$uri;
这样就OK了,是不是很简单,呵呵
第二问答
问:怎样在ECSHOP首页分别调用商品的品牌名称?
答:为了讲起来方便,为了照顾大部份人,在这里以ECSHOP 2.7.2默认官方模板为例子来分析。事实上“品牌字段”在ECSHOP程序里已经取出来了,没有显示出来的原因,仅仅是因为模板中没有去调用它而已。所以只需要在模板中把这个品牌标签加上就OK了。
具体操作方法:
A)、在ECSHOP商城系统里找/themes/default/library/recommend_best.lbi
找到
<font class="f1">
在它上边增加一行
{if $goods.brand_name}<p>品牌:{$goods.brand_name}</p>{/if}
B)、在ECSHOP商城系统里找/themes/default/library/recommend_new.lbi ,修改方法同上
C)、在ECSHOP商城系统里找/themes/default/library/recommend_hot.lbi ,修改方法也同上
D)、在ECSHOP商城系统中找到themes/default/library/recommend_promotion.lbi ,
找到下面代码
{$lang.promote_price}<font class="f1">{$goods.promote_price}</font>
在它上边添加如下代码
{if $goods.brand_name}<p>品牌:{$goods.brand_name}</p>{/if}
刷新看看,是不是多了一个品牌,如果刷新没有变化,请到后台清除缓存再试一下。
第三问答
问:为什么我的ECSHOP首页和商品列表页中的商品缩略图很模糊,我应该怎么做,图片才会清晰呢?
答:经常看到论坛里有人反映说首页或列表页的缩略图的质量不高,比较模糊......
原因是因为ECSHOP生成缩略图时,用到的函数 imagejpeg()
具体操作方法:
找到 /includes/cls_image.php,把 imagejpeg($img_thumb, $dir . $filename);修改为
imagejpeg($img_thumb, $dir . $filename, 100);
这样缩略图就会变清晰了。
注意:按照以上方法修改完后,还需要到后台执行一下“商品管理 》图片批量处理 ”才能看到效果。
第四问答
问:怎样修改Ecshop站内快讯标题的长度(字数)
答:这是一个ECSHOP使用中的小问题,但是群里和论坛里还是经常有人在问,下面共享一下。进入后台 》商店设置 》 显示设置,找到“ 文章标题的长度: ” ,修改输入框里的数字即可。
第五问答
问:将默认模板首页的best,hot,new三个水印删除掉
答:此方法仅对ECSHOP默认模板有效,其他模板也许根本就没这几个水印
A)、打开 /themes/default/library/recommend_best.lbi
将 <span class="best"></span>
删除即可
B)、打开 /themes/default/library/recommend_hot.lbi
将 <span class="hot"></span>
删除即可
C)、打开 /themes/default/library/recommend_new.lbi
将 <span class="new"></span>
删除即可
第六问答
问:在ECSHOP首页显示商品总数和本月更新数
答:经常在论坛里看到有人问到类似问题,今天就把方法共享一下。
1)、首先修改 /index.php
找到
assign_dynamic('index');
在它后边添加一些代码
$sql="select count(*) as goods_all from ". $ecs->table('goods'); //商品总数
$smarty->assign('goodsnum_all',$db->getOne($sql));
$time_month=mktime(0,0,0,date('m')-1,1,date('Y'));
$sql="select count(*) as goods_month from ". $ecs->table('goods') ." where last_update >= " . $time_month; //本月更新数
$smarty->assign('goodsnum_month',$db->getOne($sql));
2)、打开首页模板文件 index.dwt,在合适的地方调用,调用代码为
本商城共有商品 {$goodsnum_all} 件,本月更新 {$goodsnum_month} 件
第七问答
问:如何去掉首页的商店公告
答:不同的模板,具体的修改细节是不一样的,
A)、如果你使用的是官方默认模板,请看下面
打开 /themes/default/index.dwt 文件
将下面代码部分删除即可
<!--站内公告 start-->
B)、
如果你使用的是其他模板,打开 /themes/你的模板文件夹/index.dwt
搜索
{$shop_notice}
注意,搜索到该字符串以后,要观察它周围(前后都算)的一些DIV 标签,把对应的DIV部分都删掉就可以了。
如果你能看懂HTML代码,那应该很容易的。 第八问答
问:怎样给ECSHOP商城增加一个加入QQ群的快捷按钮
答:大家都知道,普通的加QQ群方法,一般是 先到QQ中查找群 --> 输入群号码 --> 发验证信息,等待群主或管理员通过,步骤比较繁琐。
现在简单了,我们可以直接在网页上放一个按钮,用户点击该按钮,便可以直接加入该QQ群,省略了一些繁杂的步骤。用户体验更友好一些。
以下教程讲解怎么给ECSHOP商城系统也加上如此功能。
以官方默认模板为例。
打开 themesdefaultlibrarypage
找到
<!-- QQ 号码 {foreach from=$qq item=im} -->
在它上边增加
ECSHOP QQ群: 1111111<a target="_blank" href="http://qun.qq.com/#jointhegroup/gid/31497022"><img border="0" src="http://cgi.qun.qq.com/gscgi/s1/gp.do?gid=31497022" alt="点击这里加入此群" title="点击这里加入此群"></a> 第九问答
问:轻松实现Ecshop商城多语言切换
答:很多人都想让自己的ECSHOP商城实现多语言支持(能够方便的在首页切换多语言)。其实实现起来也挺简单的。效果图如下:
下面就说一下修改方法。
A)、
首先打开 includds/init.php
找到
require(ROOT_PATH . 'languages/' . $_CFG['lang'] . '/common.php');
与
$smarty->assign('lang', $_LANG);
先将这两行代码删掉。
B)、找到
if ((DEBUG_MODE & 1) == 1)
在它上边增加
if(!empty($_REQUEST['lang'])){
$_SESSION['lang']=$_REQUEST['lang'];
}
if (!empty($_SESSION['lang']))
{
switch($_SESSION['lang']){
}
}
require(ROOT_PATH . 'languages/' . $_CFG['lang'] . '/common.php');
$smarty->assign('lang', $_LANG);
C)、修改 /themes/default/library/page_header.lbi 文件
在
<div class="topNavR"></div>
上边添加
| <a href="?lang=zh_cn">简体</a> |
<a href="?lang=zh_tw">繁体</a> |
<a href="?lang=en_us">英文</a> 第十问答
问:怎样在Ecshop首页上显示最新评论(评论内容&时间)?
答:以“ECSHOP2.7.2 + 官方默认模板” 为例,其他模板大同小异,效果图如下图所示:
第一步:
将下面代码复制,并保存为一个库文件,文件名和保存路径为: /themes/default/library/index_comments.lbi
<?php
if(!function_exists("get_comments")){
function get_comments($num)
{
($GLOBALS['_CFG']['time_format'], $row['add_time']);
}
}
$GLOBALS['smarty']->assign('my_comments',get_comments(10)); // 10条数据
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- 最新评论__Begin -->
<a href="goods.php?id={$comments.id_value}" target="_blank">
{$comments.content|truncate:21:""}</a><br />
{$comments.add_time}
</li>
</ul>
第二步:
在ECSHOP首页模板文件中,调用这个库文件
打开 themes/default/index.dwt 文件,
在
</div>
上面增加一行调用代码
<!-- #BeginLibraryItem "/library/index_comments.lbi" -->
清除一下缓存 第十一问答
问:请问Ecshop首页精品推荐(新品上市、热卖商品)的数量在哪设置
答:虽然只是一个很小的ECSHOP设置问题,但是QQ群里经常有人问到类似问题,所以将修改教程共享在这里。
方法:
进 后台 》模板管理 》设置模板,
找到 “精品推荐、新品上架、热卖商品”打头的三行,
修改每行对应“数量”的那个输入框里的数字即可。
第十二问答
问:将ECSHOP分类树修改成一行两个
答:经常看到有朋友问“怎么将ECSHOP分类树显示为一排(行)两个”,也就是如下面的效果图:
这个ECSHOP模板修改问题,主要就是靠修改CSS来实现。但是不同模板的具体CSS代码是不一样的,所以不同模板的具体修改方法也是不完全相同的,没有通用的修改方法。
下面教程是以 2.7.2版 官方默认模板为例进行讲解的,已经测试通过,完全兼容IE6,IE7,火狐。其他模板请参照举一反三。
-------------------------------------------------------------------------------------------------------------------
打开 /themes/default/style.css 文件
找到
#category_tree dd{padding:3px 0 3px 10px;}
将它修改为
#category_tree dd{padding:3px 0 3px 10px;width:40%;overflow:hidden;float:left;white-space:nowrap;word-break:keep-all;display: inline;}
然后再打开
在
</dl>
下面增加一行代码
<div style="clear:both;"></div>
第十三问答
问:请问ECSHOP首页站内快讯在哪里添加和修改?
答:“添加新闻后在首页站内快讯处显示不出来?”、“请问首页中站内快讯(最新文章)在后台哪个位置管理”、“如何让发布的文章进入首页站内快讯”等等诸如此类的问题,经常在论坛里看到一些朋友在询问。
本ECSHOP教程就来讲解一下上述问题的解决办法:
进入 ECSHOP后台 》文章管理 》文章列表
不过有以下几个注意点很重要:
1)、文章分类, 不能选择“系统分类及子分类”,要选择其他分类。如果不存在其他分类,请先建立
2)、文章重要性,要选择“置顶”。
发布完文章后,记得到后台“清除缓存”。
第十四问答
问:在ECSHOP首页增加一个浏览排行
答:最近有看到朋友在ECSHOP论坛里提问:如何在首页增加一个类似于“销售排行榜”的“浏览排行榜”,并且可以在后台的“模板设置”里进行控制。
由于系统默认是没有读取浏览排行的,所以这部分功能既得增加程序,又得增加模板。
本教程是以 ecshop2.7.2 官方默认模板为例进行讲解的。
效果图如下:
1)、将下面代码复制并保存到
一个新文件中,文件路径为: /themes/default/library/top10_click.lbi
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div class="box">
<div class="box_2">
<img src="../images/top_{$smarty.foreach.top_goods.iteration}.gif" class="iteration" />
<!-- {if $smarty.foreach.top_goods.iteration<4}-->
<!-- {/if} -->
</div>
</div>
<div class="blank5"></div>
2)、修改 /includes/lib_goods.php 文件
在最下面增加一个函数
function get_top10_click()
{
$sql="SELECT goods_id, goods_name, shop_price, goods_thumb " .
$arr = $GLOBALS['db']->getAll($sql);
return $arr;
}
3)、修改 /index.php 文件
在
$smarty->assign('top_goods',
下面另起一行增加
$smarty->assign('top_goods_click',
修改模板文件 /themes/default/index.dwt
找到
<!-- #BeginLibraryItem "/library/promotion_info.lbi" -->
在它的前面增加
<!-- #BeginLibraryItem "/library/top10_click.lbi" --><!-- #EndLibraryItem -->
4)、修改 /admin/includes/lib_template.php 文件
在
'/library/invoice_query.lbi' => 0,
上边增加一行代码
'/library/top10_click.lbi' => 0,
5)、继续修改语言包文件
在
$_LANG['template_libs']['top10'] = '销售排行';
下边增加一行代码
$_LANG['template_libs']['top10_click'] = '浏览排行';
6)、修改
找到
<lib>top10</lib>
并且在它下面另起一行,增加
<lib>top10_click</lib>
7)、最后进入 后台 》模板管理 》设置模板,是不是看到了期待已久的“浏览排行”,设置一下,并清除缓存,就OK了
第十五问答
问:在ECSHOP首页顶部增加通栏广告位的方法
答:ECSHOP系统默认预留的广告位很少,如何才能在首页或者其他页面增加自己想要的广告位呢??下面就讲一讲方法。
下面以“在ECSHOP首页顶部增加一个通栏广告”为例进行讲解。
另外:本例是在ECSHOP2.7.2 官方默认模板基础上进行讲解的,其他模板及其他页面原理相同。
第1步:
进入ECSHOP后台 》 广告管理 》广告位置,点击“增加广告位”按钮。
广告位名称输入“首页头部通栏广告位”,
广告位宽度输入“960”
广告位高度输入“100”。。。。。
点“确定”。
第2步:然后进入“广告列表”,点击“添加广告”按钮,
注意,广告位置下拉框 要选择 刚才第1步里添加的那个广告位,即“首页头部通栏广告位 [960x100]”。
上传一张广告图片,点确定。
第3步:打开首页模板文件
找到下面代码
<!-- #BeginLibraryItem "/library/page_header.lbi" --><!-- #EndLibraryItem -->
在它下面增加几行代码
<div style="width:960px;margin:5px auto;padding:0 auto;">
<!-- TemplateBeginEditable name="首页头部通栏广告位(宽:960px)" -->
<!-- TemplateEndEditable -->
</div>
第4步:进入后台 》模板管理 》设置模板,选择首页模板。
到最下面找到“广告位”,点击“+”展开,
在第一个下拉框里
选择 “首页头部通栏广告位(宽:960px)”
在第二个下拉框里 选择 “首页头部通栏广告位 [960x100]”
点击 “确定”,保存,然后到首页看看,是不是通栏广告已经显示出来了
第十六问答
问:怎样让首页“站内快讯”垂直滚动显示(无缝滚动)?
答:Ecshop首页“站内快讯”默认是静止不动的,很多人想让它垂直滚动显示,这里简要说一下方法
如果只是要简单的垂直滚动 用 html 标签中的 <maquee> 就能实现,但是不能实现无缝结合。
如果想要无缝垂直滚动,就需要一点JS代码的支持。
下面就讲一讲如何实现“站内快讯”垂直无缝滚动显示:
将 library/new_articles.lbi 文件内容完全替换为下面代码即可:
(经测试完全兼容IE6,IE7,FIREFOX)
注意:下面方法已经在官方默认模板基础上测试完全通过,其他模板没做测试。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div id="artup" style="overflow:hidden; height: 170px;">
<div id="artup1">
<ul style="padding:0;margin:0" id="artup1ul">
<!--{foreach name="new_articles" from=$new_articles item=article}-->
<li>
[<a href="{$article.cat_url}">{$article.cat_name}</a>] <a href="{$article.url}" title="{$article.title|escape:html}">{$article.short_title|truncate:10:"...":true}</a>
</li>
<!--{/foreach}-->
</ul>
</div>
<div id="artup2"> </div>
</div>
<script type="text/javascript">
var speed=30;
var ARTUP=document.getElementByIdx_x('artup');
var ARTUP1=document.getElementByIdx_x('artup1');
var ARTUP2=document.getElementByIdx_x('artup2');
var ARTUP1ul=document.getElementByIdx_x('artup1ul');
var result = "";
for(var i=0; i<25; i++) result += ARTUP1ul.innerHTML;
ARTUP1ul.innerHTML=result
ARTUP2.innerHTML=ARTUP1.innerHTML
function Marquee1(){
if(ARTUP2.offsetHeight-ARTUP.scrollTop<=0)
ARTUP.scrollTop-=ARTUP1.offsetHeight
else{
ARTUP.scrollTop++
}
}
var MyMar1=setInterval(Marquee1,speed)
ARTUP.onmouseover=function() {clearInterval(MyMar1)}
ARTUP.onmouseout=function() {MyMar1=setInterval(Marquee1,speed)}
</script> |
|