ecshop自定义分类模板的方法
Ecshop2.7.3自定义URL分类目录插件开发版

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添加可折叠和双排的分类列表

如何给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简单三步实现导航商品分类二级菜单

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商品分类页实现自定义Title

下面来修改前台程序文件/category.php
找到
return $GLOBALS['db']->getRow(’SELECT cat_name, keywords, cat_desc, style, grade, filter_attr, parent_id FROM ‘ . $GLOBALS['ecs']->table(’category’) .
</td>
</tr>
在它上面增加
<tr>
<td>自定义TITLE:</td>
<td” name=”cat_title” value=’{$cat_info.cat_title}’ size=”50″>
</td>
</tr>
第3步、
继续打开文件admin/category.php
Ecshop商品分类页实现自定义Title
第1步、
修改ecs_category数据表的结构,新加一个字段
进入后台》数据库管理》SQL查询,执行下面SQL语句
ALTER TABLE `ecs_category` ADD `cat_title` VARCHAR( 255 ) NOT NULL AFTER `cat_desc` ;
第2步、
打开后台模板文件admin/templates/category_info.htm(最好使用EDITPLUS打开)
找到下面代码
<tr>
<td>{$lang.keywords}:</td>
<td><input type=”text” name=”keywords” value=’{$cat_info.keywords}’ size=”50″>
ECshop修改文档(二)

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页面的减肥,加快页面的加载速度。
ECSHOP后台模板设置说明

后台模板设置手册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 模板库项目功能详解本文希望能给想了解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京东商城栏目分类的模板修改方法

<!--{/foreach}-->
<!--{/if}-->
<!--{/foreach}-->
好了 到此模板程序已经修改完毕,只需要通过简单的模板程序修改,三级分类立即展示到您的面前了。
稍微解释一下,我们在第一次循环中读取的是从php文件传送下来的一个$categories 数组内容,将之循环中,判断是否有子级信息,如果有,则在输出该级基本信息后,将子级的信息$cat.cat_id赋值传送到数组child 中,然后在循环输出子级数组,在这个子级循环中在判断子级信息是否有子级内容,即孙级信息,如果有,则继续将孙级的信息$child.cat_id 赋值传送到数组grandson 中,继续循环,以此类推。其实说白了就是三级循环,或者说的专业些,就是一个递归思想。如果到此还有些不明白,则请继续联系我们:振星网络科技。我们的QQ群是:170114203 (欢迎假如)。
打造ECSHOP京东商城栏目分类的模板修改方法来源:振星网络科技 编辑时间:8/29/2011 8:23:31 PM 责编:振星网络科技 阅读次数:1318京东360平台的栏目分类想必也让各位看着有些眼馋了吧?又要二次开发?又要花些小钱去找一些所谓的高手修改你的php文件?只要修改ecshpop模板就能达到效果,你信不信?反正我信了,因为我做到了。
<!--{foreach from=$cat.cat_id item=child name=childs级)栏目名称河链接地址-->
<a href="{$child.url}" title="{$|escape:html}">{$|escape:html}</a>
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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开发中心】。