ecshop自定义分类模板的方法
- 格式:doc
- 大小:36.50 KB
- 文档页数:2
Ecshop2.7.3自定义URL分类目录插件开发版优站网络提醒您:修改之前,请您先备份好自己的网站数据,然后在修改。
1、后台开启URL重写系统设置-》商店设置-》基本设置——》开启URL重写:选择简单重写或复杂重写都可以(推荐用简单重写)2.把伪静态规则.htaccess (linux用)或者httpd.ini(windows用) 放到网站的根目录下。
说明:本例演示的是linux系统用的,windows系统未测试,大家自行选用。
3.执行目录里面alter.sql语句:说明:执行之前,注意修改此处的ecs_数据库表前缀。
将alter.sql里的内容复制到后台sql查询,执行一下具体步骤如下:左边导航:数据库管理--》SQL查询复制如下sql语句:drop table if exists ecs_rewrite;CREATE TABLE `ecs_rewrite` (`rewrite_id` mediumint(8) unsigned NOT NULL auto_increment,`type` varchar(255) NOT NULL,`val` varchar(255) NOT NULL,`py` varchar(255) NOT NULL,`url_en` varchar(255) NOT NULL default '',PRIMARY KEY (`rewrite_id`),KEY `type` (`type`),KEY `val` (`val`),KEY `py` (`py`),KEY `url_en` (`url_en`))ENGINE=MyISAM default charset=utf8;drop table if exists ecs_seo_info;CREATE TABLE ecs_seo_info (rec_id mediumint(8) unsigned NOT NULL auto_increment,val_id mediumint(8) unsigned not null default '0',type varchar(255) not null default '',title varchar(255) not null default '',PRIMARY KEY (rec_id),key val_id(val_id))ENGINE=MyISAM default charset=utf8;insert into ecs_shop_config(code, type, parent_id, value) values('url_error_page', 'text', '1', '404.htm');点击提交查询看到上面的图片说明SQL执行成功了。
如何给ecshop添加可折叠和双排的分类列表/post/68.html对于ecshop二次开发----添加可折叠列表的功能其实大部分都是对模板做些调整,加上一些js脚本就可以了。
我们分两步来完成,一是调整模板生成方便我们js操作的html结构,二是书写js脚本,完成功能。
一、调整模板:我们这次要调整的还是category_tree.lbi文件,以前生成的分类是放到<dl>里面,部分div的概念,我们用js对<dl><dd>这些标签的操作没有用<div>来的方便,所以我们书写下面代码,把我们一级分类做成一个”id-header”的div,把分类下的二级分类放到一个”id-centent”下的div里面。
这样调整后我们就可以通过js动态的改变二级分类div的现实不显示来完成菜单的折叠功能了。
当然在改变之前我们要给分类前面加入一个img来显示折叠的+和-号,代码如下:<dt> <img id="{$cat.id}-images"onclick="changedisplaystate('{$cat.id}-content', '{$cat.id} -images');" src="images/green/minus.gif" alt="" /> <ahref="{$cat.url}"> <!--{if $cat.category_img}--> <imgsrc="{$cat.category_img}" alt="{$|escape:html}"/> <!-- {else } --> {$|escape:html} <!-- {/if} --> </a></dt>下面给出模板调整后的代码:<div id="category_tree"style="background-color:#ffffff;"> <!--{foreachfrom=$categories item=cat}--><dlstyle="background-color:#ffffff;"><div id="{$cat.id}-header" style="display:block;float:left;background-color:#ffffff;"><dtstyle="background-color:#ffffff;"> <imgid="{$cat.id}-images"onclick="changedisplaystate('{$cat.id}-content', '{$cat.i d}-images');" src="images/green/minus.gif" alt="" /> <a href="{$cat.url}"> <!--{if$cat.category_img}--> <imgsrc="{$cat.category_img}" alt="{$|escape:html}"/> <!-- {else }--> {$|escape:html} <!-- {/if}--> </a> </dt></div><div id="{$cat.id}-content" style="background-color:#ffffff;"><ddstyle="background-color:#fff;"> <!--{foreachfrom=$cat.cat_id item=child}--> <li style="float: left;line-height: 22px; overflow: hiddenhidden; padding: 0px 5px; width:44%;"> <ahref="{$child.url}">{$|escape:html}</a></li><!--{/fo reach}--> </dd></div></dl> <!--{/foreach}--></div>二、添加js脚本加入动态控制正如前面的代码所写,在每个折叠的img的onclick都调用”changedisplaystate(’{$cat.id}-content’,'{$cat.id}-images’);”,下面我们来实现这个函数,这个函数就是根据穿的id-content和id-images来调整他们的属性,比如展开的时候就是把id-content这个div的css style 里面的display改成block,这样div就可以显示,然后把id-images的src 改成minus的图片,完成整个折叠的过程,下面是代码:<script type="text/javascript">// 获取指定名字元素function$(d){ return document.getElementById(d);} //改变选择的状态,并且换图片functionchangedisplaystate(id,imgUrl){ if($(id).style.display=='none') { $(id).style.display = 'block'; $(imgUrl).src ='images/green/minus.gif'; } else{ $(id).style.display = 'none'; $(imgUrl).src ='images/green/plus.gif'; }}</script>三、完善全部打开和合并上面的代码完成之后我们可以完成大部分的功能,但是刚开始所有的分类都是展开的,如果客户想全部合上,让客户一个个点击合并是不是用户体验太差了,你可以再这个category里面加上一个按钮改成全部打开或者全部,然后在那个打开和合并的image的onclick里面调用changeAllDisplayState函数,下面给出这个函数的具体代码,他是便利categeory下面所有的div,如果是id—content就改变它的display属性,变成block后者none,然后改变里面所有id-images为minus或者plus图片,完成这些也就完成了整个category的打开和合并了,废话少说,上代码://改变所有的状态,并且换图片//parentID为分类的那个层,应该是category,后面的state是要改变成的状态,为none或者block function changeAllDisplayState(parentID,state){ l=$(parentID).getElemen tsByTagName('div'); c=[]; for(i=0;i<l.length;i++){ h=l.i d; if(h.substr(h.indexOf('-')+1,h.length)=='content') { l.style.display = state; categoryID =h.substr(0,h.indexOf('-')-1); imageID =categoryID+"-images"; if(state =='none') { $(imageID).src ='images/green/minus.gif'; } else { $(imgUrl).src ='images/green/plus.gif'; } } }}Tags: ecshop二次开发php项目外包php项目开发ecshop可折叠分类列表ecshop双排分类列表。
ecshop简单三步实现导航商品分类二级菜单1.在page_header.lbi对应的位置(你想显示导航的位置)插入(注意下面的themes/模板名称/util.php中的模板名称改成你模板文件夹的名称) ? php require_once(themes/模板名称/util.php); ? div class = h1.在page_header.lbi对应的位置(你想显示导航的位置)插入(注意下面的"themes/模板名称/util.php"中的"模板名称"改成你模板文件夹的名称)<?phprequire_once("themes/模板名称/util.php");><div class="header-menu"><p {if $navigator_list.config.index eq 1} class="cur" {/if}><a href="../index.php">{$lang.home}</a></p><ul><!-- {foreach name=nav_middle_list from=$navigator_list.middle item=nav} --><li onMouseOver="sw_nav(this,1);" onMouseOut="sw_nav(this,0);" {if $nav.active eq 1} class="curs"{/if}><a href="{$nav.url}" {if $nav.opennew eq 1}target="_blank" {/if}>{$}</a><?php$subcates = get_subcate_byurl($GLOBALS['smarty']->_var['nav']['url']);if($subcates!=false){if(count($subcates)>0){echo "<div class='sub_nav'>";if($subcates){foreach($subcates as $cate){echo "<a href='".$cate['url']."' class='level_1'>".$cate['name']."</a>";}}echo "</div><iframe frameborder='0' scrolling='no' class='nomask'></iframe>";}}></li><!-- {/foreach} --></ul><script type="text/javascript">//初始化主菜单function sw_nav(obj,tag){var subdivs = obj.getElementsByTagName_r("DIV"); var ifs = obj.getElementsByTagName_r("IFRAME");if(subdivs.length>0){if(tag==1){subdivs[0].style.display = "block";ifs[0].style.display = "block";}else{subdivs[0].style.display = "none";ifs[0].style.display = "none";}}}</script></div>2.在CSS文件中插入.header-menu p{ float:left;padding:1px 12px 1px 0;margin-top:-2px;}.header-menu ul li{float:left;padding:1px 12px 1px 12px;margin-top:-2px;}.header-menu ul li a,.header-menu p a{color: #333;display:block;}.header-menu ul li a:hover,.header-menu p a:hover{color:#888;}.header-menu ul li.curs{background:#999;}.header-menu ul li.curs a{color:#fff;}.sub_nav{ background:#999;width:110px; position:absolute; z-index:5003; display:none;margin-left:-12px;}.nomask{ background:#fff; width:110px; height:50px; position:absolute; z-index:5002;display:none;margin-left:-12px;}.sub_nav a.level_1{ display:block;color:#fff;padding:6px 6px 6px 13px;font:11px Tahoma,Verdana,PMingLiU,Arial;border-bottom:1px dotted #D1D1D1;*border-bottom:1px dotted #D1D1D1 !important;*border-bottom:1px solid #A8A8A8;}.sub_nava.level_1:hover{color:#fff;background:#55B46C;text-decoration:none;}3.把以下代码编辑成(util.php)解压出来拷贝到模板目录下<?phpfunction get_subcate_byurl($url){$rs = strpos($url,"category");if($rs!==false){preg_match("/\d+/i",$url,$matches);$cid = $matches[0];$cat_arr = array();$sql = "select * from ".$GLOBALS['ecs']->table('category')." where parent_id=".$cid." and is_show=1";$res = $GLOBALS['db']->getAll($sql);foreach($res as $idx => $row){$cat_arr[$idx]['id'] = $row['cat_id'];$cat_arr[$idx]['name'] = $row['cat_name'];$cat_arr[$idx]['url'] = build_uri('category', array('cid' => $row['cat_id']), $row['cat_name']);$cat_arr[$idx]['children'] = get_clild_list($row['cat_id']);}return $cat_arr;else{return false;}}function get_clild_list($pid){//开始获取子分类$sql_sub = "select * from ".$GLOBALS['ecs']->table('category')." where parent_id=".$pid." and is_show=1";$subres = $GLOBALS['db']->getAll($sql_sub);if($subres){foreach ($subres as $sidx => $subrow){$children[$sidx]['id']=$subrow['cat_id'];$children[$sidx]['name']=$subrow['cat_name'];$children[$sidx]['url']=build_uri('category', array('cid' => $subrow['cat_id']), $subrow['cat_name']);}}else{$children = null; }return $children; }。
Ecshop修改教程本教程来次ecshop不同级别客户看到不同的会员等级价格怎么样让不同等级的会员,只能查看自己会员帐号等级的会员价格呢。
后来在官网论坛泡了一下,发现果然是后台可以设置的。
具体操作方式:后台-> 会员管理-> 会员等级显示价格关闭就可以了--------------------------------------------------------------------------模板文件:goods.dwt找到如下代码:<!-- {foreach from=$rank_prices item=rank_price key=key} 会员等级对应的价格--><strong>{$rank_price.rank_name}:</strong><font class="shop"id="ECS_RANKPRICE_{$key}">{$rank_price.price}</font><br /><!--{/foreach}-->改成<!-- {foreach from=$rank_prices item=rank_price key=key} 会员等级对应的价格--><!-- {if $key eq $er_rank} --><strong>{$rank_price.rank_name}:</strong><font class="shop" id="ECS_RANKPRICE_{$key}">{$rank_price.price}</font><br /><!-- {/if} --><!--{/foreach}-->----------------------------------------------------------------------------------------------------------------------ECSHOP输出HTML压缩ECSHOP代码减肥该功能有两个好处:给HTML页面的减肥,加快页面的加载速度。
后台模板设置手册1,修改产品图片尺寸,在后台商店设置-显示设置里改按这样的标准2,参考首页的设置模板截图模板管理-设置模板3 头部内容修改,头部文件有三个模板管理-库项目管理page_header.lbi page_header_index.lbi page_header_flow.lbi 分别是首页其他页购物车会员页如果要删除logo后面的那个只为更好的生活的话只要删除这里的代码即可<img class="logo_r_a" src="../images/logo_r.gif" />如果是会员注册页面则没有以上代码顺便说句,logo在后台商店设置里上传连接还是头部文件修改图片连接是themes/yihaodian/images/shangcheng.gif和themes/yihaodian/images/shangcheng1.gif4 播放器修改打开库项目管理index_ad.lbi修改即可这里的#是连接,src后面的是图片路径,都是模板目录images里,也就是themes/yihaodian/images 里面的,直接ftp替换即可,这里要说一句,因为一号店是要判断分辨率所以一个轮播要准备两个不同尺寸的广告,大图分别是700*300与550*300像素,小图分别是256*144与182*144像素。
4,轮播右侧这里的内容在库项目管理index_right.lbi修改5 品类中心,直接在后台替换广告即可品牌旗舰,是直接调用的商品品牌6 公告和新闻与友情链接公告和新闻这里是在cat_articles.lbi里面调用的时尚资讯和3G资讯友情链接是在index.dwt文件中7.切换区域分别调用促销,新品,精品,热卖(商品编辑设置促销价),销售排行(按购买量自动)其中促销产品在商品编辑中设置促销价格如果出现下面画红框的这种情况,图片批量处理一下就行8,产品区域这部分左侧的几个,都是一样的原理这个是固定广告,在后台广告列表替换这个图片就行,下面几个是一样的原理9 切换产品区域在这里设置,会自动判断子分类,并实现切换,是怎么自动判断的原理?10 产品区域右侧同左侧一样是固定的广告图片其中r1代表第一张,r2代表第二张,r3代表第三张11 底部区域库项目管理page_footer.lbi去版本教程:/article-285.html/viewthread.php?tid=1122426&highlight=%C8%A5%B0%E6%C8%A812 顶级分类里的播放器广告这里需要看分类id 之后记住id数字广告列表里找cate_开头,数字结尾的广告,直接把这个数字改成分类id即可。
ECShop 模板库项目功能详解本文希望能给想了解ECShop库项目功能的人提供一些帮助。
ec的高手就可以忽略了,有不同意见的朋友欢迎提意见。
许多刚接触ECShop的程序员或者用户,只知道它的模板管理很强大也很方便。
却不知道它是如何实现这些的,也不知道如何修改。
比如我想修改首页的“精品推荐”,该去哪里找呢?又或者在首页添加一个别的什么商品展示模块,在后台可以编辑商品显示的数量,该去哪里添加呢?其实这些都是ECShop的库项目功能实现的。
带着这些问题,下面让我们一起认识一下ECShop的库项目功能。
一、认识ECShop模板管理。
1.进入EC的后台,进入“模板管理”–>“设置模板”,如图可以看到模板编辑页面,在此我可以编辑不用页面的区块(库项目)是否显示、显示位置、甚至是显示商品的数量,如图在此对模板进行的修改都会显示在页面。
(EC好强大呀~~^3^)二、认识库项目1.一个库项目就是个库文件。
打开ECShop的安装目录,进入themes/default/library文件夹。
你会看到许多以“.lbi”(扩展名)结尾的文件。
如图:ad_position?广告位吗?category_tree?分类树吗?recommend_new?新品推荐吗?对了,这里放的就是页面上一块一块可以编辑的库项目的文件了。
没错,如果你想加一个自己的显示库项目,就在此添加。
其实ECShop提供了编辑库文件编辑的地方,就在管理后台的“模板管理”–>“库文件管理”。
那么这些库项目是如何显示在页面上的呢?让我们以“新品推荐”为例。
往下看。
2.库项目的页面添加。
进入themes/default文件夹,用编辑器(文本打开也可以)打开index.dwt文件。
ctrl + f ,查找recommend_new会找到一行代码:<!–#BeginLibraryItem “/library/recommend_new.lbi” –>对,就是这个“东西”把recommend_new.lbi里的内容加载出来并成为页面的一部分的。
ecshop模板ECShop是一个流行的开源电子商务平台,能够帮助商家搭建在线商店。
为了让商家的店铺更具有个性化和美观性,ECShop在建立时提供了一些基础模板。
但是,这些模板通常具有相似的设计与布局,因此商家需要采用自定义模板,以使其在线商店与众不同。
本文将介绍ECShop模板的定义、类型和优秀的模板资源。
I. 模板的定义ECShop模板是一种用于控制网页版面结构、颜色、排版、图像等元素的文档。
它们是以HTML和CSS代码编写的,从而形成了ECShop网站中的商铺样式和设计属性。
换言之,ECShop模板决定了商家店铺可以呈现的外观。
II. 模板的类型在ECShop网站中可使用的模板类型有许多,其中一些类型是:1. 商城模板商城模板是设计用于展示和推销在线商店的商品和服务的模板。
它必须是高度用户友好的,具有良好的导航和顺畅的用户界面。
2. 目录模板目录模板是一个被用于ECShop商铺内的目录的模板。
它必须是具有方便的导航和清晰的分类方式。
3. 首页模板首页模板是ECShop网站入口,它应该是商家的店铺家门口,要让用户赏心悦目、舒适、快捷的进入它们的在线商店。
它应该包括市场战略、品牌信息和客户信息等。
III. 优秀的模板资源虽然ECShop有许多优质模板,但商家还可以从许多其他资源中找到其理想模板。
1. ECShop平台互助社区ECShop商家可以从官方网站社区寻找到一些好的资源。
社区是一个商家交流和互助的地方,商家可以从中获得许多目录和商铺模板。
2. 模板网站在许多模板网站上,可以下载到大量的免费或付费ECShop模板。
设计师们在这些模板上花费了大量的时间和努力,因此商家可以在网站上发现许多卓越的、高质量的模板。
3. 自定义开发无论是自己在本地开发还是通过设计师定制,商家可以从根本上改变ECShop模板。
这样的模板是独一无二的,因为它是专门为特定的品牌和目标市场而制作的。
总结ECShop模板是一种非常重要的设计元素,通过它可以将商家在线店铺变得更加美观和个性化。
修改ECSHOP的模板大全ECSHOP的广告链接地址形式为“affiche.php?ad_id=1&uri=http%3A%2F%”它中间用affiche.php 做了一个过渡,目的在于统计广告效果等。
有些站长觉得这种链接地址看上去很别扭,而且不利于SEO, 想改成直接的形式,也就是后台设置的是什么链接地址,就直接打开什么链接地址。
可以这样来修改:打开/includes/lib_insert.php 文件找到$ads[] = "<a href='affiche.php?ad_id=$row[ad_id]&uri=" .urlencode($row["ad_link"]). "'修改为$ads[] = "<a href='" .$row["ad_link"]. "'注意:一共有两处都要修改在ECSHOP首页的每个商品下显示商品货号ECSHOP首页有很多种商品,包括今日特价、精品推荐、新品上市、热卖商品、分类商品等,这里只讲解在“精品推荐、新品上市、热卖商品”三个栏目的商品下面显示商品货号的方法。
第一步:修改 includes/lib_goods.php文件找到下面代码第二步:找到$goods[$idx]['brand_name'] = isset($goods_data['brand'][$row['goods_id']]) ?$goods_data['brand'][$row['goods_id']] : '';在它上边增加一行代码$goods[$idx]['goods_sn'] = $row['goods_sn'];第三步:修改模板文件,这里以官方默认模板为例依次打开下面三个文件:/themes/default/library/recommend_best.lbi,/themes/default/library/recommend_new.lbi,/themes/default/library/recommend_hot.lbi在每一个文件的<p><a href="{$goods.url}" title="{$|escape:html}">{$goods.short_style_name}</a></p> 上边增加一行代码:<p>商品货号:{$goods.goods_sn}</p>在ECSHOP销售排行中显示会员价格的方法有的用户可能已经发现了,在ECSHOP的销售排行中,任何情况下只显示了一个“本店售价”。
Ecshop自定义分类模板的方法
ECSHOP开发中心()
ecshop是一个功能方面比较完善的商城的程序,但是毕竟不同于一般的cms类系统。
无法自定义每个分类的模板,这样就造成了分类模板一成不变的样式,对于美观以及个性方面可能要差点。
不过ec的开源给了php开发者一个很大的diy空间,ecshop的二次开发性也是蛮强大的。
下面是我实现的ecshop自定义分类模板的方法,子类可以继承最顶级的模板。
好处是不用修改数据库,可以在后台分类自定义模板。
功能比较简单,代码也很少,只是一个小技巧,用ecshop的朋友可以来尝试一下。
ecshop 自定义分类模板的方法实现步骤
打开根目录的category.php文件(不要问我根目录在哪里),找到大概401
行“$smarty->display('category.dwt', $cache_id);”,将此行注释掉或者删除。
在其下面添加下面代码
$cat_arr = get_parent_cats($cat_id);
foreach ($cat_arr AS $val)
{
$cats['style']=$val['style'];
}
if(empty($cat['style']))
{
if(!empty($cats['style']))
{
$smarty->display($cats['style'], $cache_id);
}
else
{
$smarty->display('category.dwt', $cache_id);
}
}
else
{
$smarty->display($cat['style'], $cache_id);
}
代码工作完成,然后进入后台,商品分类,找到你要添加自定义模板的那个分类。
在分类的样式表文件后面的输入框中,输入你想要应用的模板文件的名称,比如
“category_shoes.dwt”(前提是你的主题文件中要存在此模板文件,必须是完整的模板文件名称)
ok,工作完成,更新缓存去前台参观一下吧。
ecshop 自定义分类模板的方法注意要点
此方法应用的是ecshop自带的“可以自定义分类的样式表文件”的修改版本。
如果你原来用了后台分类的自定义分类的样式表文件,那么只能告诉你——鱼与熊掌不可兼得。
(其实这种方法要比原来程序自带的那种要强大)
使用了此方法就不要在模板中载入下面这段代码了
<!-- {if $cat_style} -->
<link href="{$cat_style}" rel="stylesheet" type="text/css" />
<!-- {/if} -->
顶级分类定义了的话,子类可以继承顶级分类的模板。
如果顶级分类没有定义,顶级分类和子类都会载入默认的模板样式“$smarty->display('category.dwt', $cache_id);”
子类同样可以自定义模板,如果想要子类模板不一样的话,同样需要单独定义。
ecshop 自定义分类模板的方法代码解说
前面5行代码实现调用当前类别的顶级分类的style,赋值到“ $cats['style'] ”
第6行判断当前自定义模板是否为空,接下来,如果不存在就判断顶级分类模板是否存在,存在就继承顶级模板,不存在就调用默认的category.dwt
最后两行是在当前自定义模板存在的情况下,就载入当前自定义的模板。
【转载请注明:ECSHOP开发中心】。