ecshop 调用实例

合集下载

ecshop修改教程100例(全)

ecshop修改教程100例(全)
使用ecshop电子商务系统的100个小问题
自己从事B4C电子商务开发一段时间了,特别对ecshop深有体会,刚接触的时候不容易理解,下面将根据自己的经验,来总结100条关于操作ecshop电子商务系统的小问题。
1:如何修改网站"欢迎光临本店"
回答:languages\zh_cn\common.php文件中, $_LANG['welcome'] = '欢迎光临本店';将他修改成你需要的字样。
2:如何修改首页"热门搜索关键字"
回答:后台->系统设置->网店设置->显示设置->首页搜索关键字,修改他的内容,然后保存
3:如何修改首页标题 "Powered by ECShop"
回答:includes/lib_main.php,找到$page_title = $GLOBALS['_CFG']['shop_title'] . ' - ' . 'Powered by ECShop';修改成$page_title = $GLOBALS['_CFG']['shop_title']就可以了。
前台flash下空白处就被填充了.
2:如何显示商品品牌列表
商品管理 -> 商品品牌 -> 增加品牌X -> 保存
增加该品牌X下的产品
商品管理 -> 增加新产品 -> 选择商品品牌 -> 保存 -> 更新缓存
查看首页,你发现.首页flash下的两片空白处都被填充了。
模板管理 -> 设置模板 -> 精品推荐 (修改其显示数量)修改下面的10为你需要的数量,这就是精品推荐

ECshop修改文档(二)

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 教程

ECshop 教程

ecshop首页调用文章分类思路及方法最近群里朋友问ecshop首页调用分类文章怎么加的,写篇文章来说下。

在ecshop论坛上有朋友说的方法之前自己试过,没有成功。

现在介绍一种成功的方法,适用各种模板。

修改ecshop不要注重技巧,注重一个思路。

ecshop模板一般分为三栏或者两栏,两栏是left和right,三栏的left,center,right之类的。

现在以两栏的为例,现在一个思路就是在你想调用文章的地方加一个可编辑区域,可编辑区域在后台模板设置里是可以设置的,然后在后台把文章调用在这个可编辑区域里就是了。

明白了原理就可以动手了。

在模板index.dwt里找到右边模块结束的地方,也就是<!--right end-->,在<!-- TemplateEndEditable -->之后加上<!-- TemplateBeginEditable name="文章区域" --><!-- TemplateEndEditable -->,其中“文章区域”这个名字是可以修改的,和你在后台看到的名字是一致的。

然后修改模板里的库文件cat_articles.lbi,替换成下面的代码<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <div style="width:243px; float:left; margin-right:3px;"><div class="box"><div class="box_1"><h3><span><ahref="{$articles_cat.url}">{$articles_|escape:html}</a></span ><a href="{$articles_cat.url}"><img src="../images/more.gif"alt="more" /></a></h3><div class="boxCenterList RelaArticle"><!--{foreach from=$articles item=article}--><a href="{$article.url}"title="{$article.title|escape:html}">{$article.short_title}</a><br /><!--{/foreach}--></div></div></div></div>其中需要注意编码,用GBK的自行替换成GBK,其中的宽度自己控制,自己多试下就知道大小了。

ecshop网站手机访问调用专属手机模版(非自带mobile)

ecshop网站手机访问调用专属手机模版(非自带mobile)

Ecshop实现用手机访问调用专属模版1.因系统自带的手机模版过于简单,不满足我的网站要求,所以自己研究出来了这个功能!2.此功能可以实现使用手机访问网站,不需要解析域名,也不需要重新建一个手机站,可以自动加载指定的手机模版,实现pc端和手机端,程序共享,模版独立的效果!当然如果pc端网站和手机端网站功能差距太大就不适合使用这个方法了!第一步首先将系统中判断手机访问自动跳转mobile/相关代码删除打开indx.php 找到下图中的代码大概从26行开始到39行结束代码剪切到一个新的文档中,为什么不直接删除因为后面要用删除后就算后台开启手机商城也不会跳转了第二步修改模版机制对应的相关代码打开includes/cls_template.php 文件,基本上模版机制都在这个class 类里面了首先修改模版文件夹搜索function fetch 找到这个函数,模版的具体路径是在这个函数中写着的哦,在函数中加入等会要判断是否为手机访问相关的代码这里我为了方便这样写的具体代码如下,因为文档原因代码排版大家自己整理下$ua=strtolower($_SERVER['HTTP_USER_AGENT']);$uachar="/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alca tel|lenovo|cldc|midp|mobile)/i";$is_mobile=($ua==''||preg_match($uachar,$ua))&& !strpos(strtolower($_ SERVER['REQUEST_URI']),'wap');然后搜索if (!file_exists($filename)) 也是在这个函数中修改$filename = $this->template_dir . '/' . $filename;为以及下面的else条件中的$filename = $this->template_dir . '/' . $filename;为if($is_mobile){$filename=str_replace("default",'shouji',$this->template_dir).'/'.$filename ;}else{$filename = $this->template_dir . '/' . $filename;}如下图命名为shouji文件夹就可以了但是还没有完全成功哦,因为ecshop是有缓存的,在第一次加载页面的时候会在缓存文件夹下生成对应的缓存文件,如果你已经修改了手机模版中的代码的话,你就会发现,如果你此时先用手机打开展示的是正常的手机页面,但是随后用pc打开页面显示的也是手机页面内容,这个是因为他俩调用的是同一个缓存文件,所以谁先缓存打开调用的就是谁的内容哦接下来我们继续修改首先给手机站新建一个缓存目录打开网站根目录下的temp文件夹新建一个文件夹命名为compiled1这个是为手机新建的缓存文件夹哦如下然后继续在includes/cls_template.php文件中搜索function make_compiled 函数然后同样在函数在上边加上判断手机相关代码具体代码如下,因为文档原因代码排版大家自己整理下$ua=strtolower($_SERVER['HTTP_USER_AGENT']);$uachar="/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alca tel|lenovo|cldc|midp|mobile)/i";$is_mobile=($ua==' '|| preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap');然后继续修改此函数中$name = $this->compile_dir . '/' . basename($filename) . '.php';为if($is_mobile){$name = str_replace("compiled",'compiled1',$this->compile_dir) . '/' . basename($filename) . '.php';}else{$name = $this->compile_dir . '/' . basename($filename) . '.php';}修改之后手机访问后所生成的缓存就在我们刚才新建的缓存文件夹中了此外还有一个地方需要修改在此文件中找到if (file_put_contents($hash_dir . '/' . $cachename . '.php', '<?php exit;?>' . $data . $out, LOCK_EX) === false){trigger_error('can\'t write:' . $hash_dir . '/' . $cachename . '.php');}代码直接注视掉,这个是生成caches文件夹下的缓存文件,一般如果站点内容过多的话,这个文件夹大小很可怕的哦,所以直接去掉吧至此本功能全部修改完毕,这里我只是简单的说明了一下修改方法,希望对大家有所帮助,我也存到文库中,让我以后自己查看起来方便。

ecshop积分商城和分类下精品调用

ecshop积分商城和分类下精品调用

ecshop积分商城和分类下精品调用1.首先打开 index.php 文件在下面加上:function index_get_exchange($limit=3,$ishot=0){$sql_ishot=$ishot ? " AND eg.is_hot=1 " : "";$sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style,eg.exchange_integral, ' . ' g.goods_type,g.goods_brief, g.goods_thumb, g.goods_img, eg.is_hot ' . ' FROM ' . $GLOBALS['ecs']->table('exchange_goods') . ' AS eg LEFT JOIN ' . $GLOBALS['ecs']->table('goods') . ' AS g ON g.goods_id = eg.goods_id ' . ' WHEREeg.is_exchange = 1 AND g.is_delete = 0 '. $sql_ishot .' limit '.$limit; $res = $GLOBALS['db']->getAll($sql);$arr = array();foreach($res AS $idx => $row){$arr[$idx]['name'] = $row['goods_name'];$arr[$idx]['goods_brief'] = $row['goods_brief'];$arr[$idx]['goods_style_name'] =add_style($row['goods_name'],$row['goods_name_style']);$arr[$idx]['exchange_integral'] = $row['exchange_integral'];$arr[$idx]['type'] = $row['goods_type'];$arr[$idx]['goods_thumb'] = get_image_path($row['goods_id'],$row['goods_thumb'], true);$arr[$idx]['goods_img'] = get_image_path($row['goods_id'],$row['goods_img']); $arr[$idx]['url'] = build_uri('exchange_goods', array('gid'=>$row['goods_id']),$row['goods_name']);}return $arr;}2.然后在大概127行左右找到$smarty->assign('auction_list', index_get_auction()); // 拍卖活动$smarty->assign('shop_notice', $_CFG['shop_notice']); // 商店公告仿照上面在他下面加上:$smarty->assign('goods_exchange_list',index_get_exchange(10,0)); //积分商城注:10表示显示10条数据3.然后打开index.dwt文件,加上:<!--积分商城列表--><div class="box"><div class="box_1"><h3><span><a href="/exchange.php" class="f6">积分商城</a></span></h3><div class="centerPadd"><div class="clearfix goodsBox" style="border:none;"><!--{foreach name=goods_exchange_list from=$goods_exchange_list item=exchange_goods}--><div class="goodsItem"><a href="{$exchange_goods.url}" target="_blank"><imgsrc="{$exchange_goods.goods_thumb}" alt="{$exchange_goods.goods_name}" class="goodsimg" /></a><br /><p><a href="{$exchange_goods.url}" target="_blank"><!-- {if $exchange_goods.goods_style_name} --><font class="f3">{$exchange_goods.goods_style_name}</font><br /> <!-- {else} --><font class="f3">{$exchange_goods.goods_name}</font><br /><!-- {/if} --></a></p>{$lang.exchange_integral}<fontclass="price">{$exchange_goods.exchange_integral}</font> </div><!--{/foreach}--><div class="more"><a href="/exchange.php"><img src="images/more.gif" /></a></div></div></div></div></div><div class="blank5"></div>/*** 获得cat_id精品列表。

Ecshop模板之Smarty运用

Ecshop模板之Smarty运用

Ecshop模板之Smarty运用简介Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。

它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。

简单的讲,目的就是要使PHP程序员同美工分离,使程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

Smarty优点1. 速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。

2. 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)3. 缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。

4. 插件技术:Smarty可以自定义插件。

插件实际就是一些自定义的函数。

5. 模板中可以使用if/elseif/else/endif。

在模板文件使用判断语句可以非常方便的对模板进行格式重排。

Smarty简明教程一. 安装首先打开网页/download.php,下载最新版本的Smarty。

解压下载的文件(目录结构还蛮复杂的)。

接下来演示给大家一个安装实例,看过应该会举一反三的。

(1) 在根目录下建立了新的目录learn/,再在learn/里建立一个目录smarty/。

将刚才解压缩出来的目录的libs/拷贝到smarty/里,再在smarty/里新建templates目录,templates里新建cache/,templates/,templates_c/,config/.(2) 新建一个模板文件:index.tpl,将此文件放在learn/smarty/templates/templates目录下,代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type" content="text/html;charset=gb2312"><title>Smarty</title></head><body>{$hello}</body></html>新建index.php,将此文件放在learn/下:<?php//引用类文件require 'smarty/libs/Smarty.class.php';$smarty = new Smarty;//设置各个目录的路径,这里是安装的重点$smarty->template_dir ="smarty/templates/templates";$smarty->compile_dir ="smarty/templates/templates_c";$smarty->config_dir = "smarty/templates/config";$smarty->cache_dir ="smarty/templates/cache";//smarty模板有高速缓存的功能,如果这里是true的话即打开caching,但是会造成网页不立即更新的问题,当然也可以通过其他的办法解决$smarty->caching = false;$hello = "Hello World!";//赋值$smarty->assign("hello",$hello);//引用模板文件$smarty->display('index.tpl');?>(3) 执行index.php就能看到Hello World!了。

Ecshop滚动发货通知完美解决方案(三种方案已测试)

Ecshop滚动发货通知完美解决方案(三种方案已测试)

Ecshop滚动发货通知完美解决方案(三种方案已测试)之前在网上有一篇关于Ecshop滚动发货通知的教程,但是使用后调出的发货通知订单列表里有很多重复内容,经过研究后发现是那个教程里的SQL语句写的有问题,造成重复调出发货通知订单列表,笔者经过改进,完美地解决了这个问题,下面就来看下Ecshop滚动发货通知是如何实现的吧,一共有三个解决方案。

解决方案一,修改index.php、新建lib文件第一步:打开根目录的index.php文件,在注释/* meta information */的下面添加如下代码:$smarty->assign('post_list', index_get_post_query()); // 发货通知第二步:在index.php文件的注释//-- PRIV A TE FUNCTIONS下面的区域添加如下方法:function index_get_post_query(){$sql = 'SELECT o.order_sn, o.invoice_no, er_name FROM ' . $GLOBALS['ecs']->table('order_info') . ' AS o' .' LEFT JOIN ' . $GLOBALS['ecs']->table('users') . ' AS u ON er_id = er_id' ." WHERE invoice_no > '' AND shipping_status = " . SS_SHIPPED .' ORDER BY shipping_time DESC LIMIT 10';$postinfo = $GLOBALS['db']->getAll($sql);clearstatcache();return $postinfo;}第三步:在模板文件夹的library目录里,新建一个post_list.lbi的文件,添加如下代码:<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><DIV id=demo style="float:left;overflow:hidden;height:242px;width:210px;"><DIV id=demo1><!-- 发货公告{foreach from=$post_list item=post} --><font color=red>{$er_name}</font> 您好,您的订单已发货。

ecshop模板

ecshop模板

ecshop模板ecshop模板中的运算符(1)== 为"eq"(2)!= 为"neq"(3)< 为"lt"(4)<= 为"lte"(5)> 为"gt"(6)>= 为"gte"(7)&&为"and"(8)||为"or"(9)! 为"!"(10)% 为"%"ecshop模板之文件包含在ecshop的模板中,文件的包含也极其重要。

总共有以下几种。

1:{insert_scriptsfiles="文件名称"},主要是包含JS之类的。

比如{insert_scriptsfiles='common.js'}2:,这个主要是包含ecshop 模板中的库文件lbi.用来做公共模板。

3:{insertname='名称'type=参数id=参数},通过调用includes/lib_insert.php文件中的模板显示函数。

格式为insert_名称()函数中smaryt的display和assign方式来显示包含库,通常结合ajax来局部刷新或者是显示结果.ecshop模板之标量声明ecshop模板中,变量或者是模板语句,都是用{}括弧加$变量名称组成的。

比如$name.在ecshop模板中,我们该使用{$name}的写法。

如果是程序的语句段,那么要从{}开始,用{/}结束。

比如模板中的if判断。

{$if条件}执行条件{/if}如果是数组,在ecshop的模板里面,同样是如此写法{$/doc/9f5538311.html,}.你可以直接取得某个数组的值。

不管是多么复杂的数组,多唯数组也可以。

在ecshop模板中,你可以用ecshop 本身的语法,下标的方式来引用变量的值。

Ecshop二次开发-增加用户订单编辑功能

Ecshop二次开发-增加用户订单编辑功能

Ecshop⼆次开发-增加⽤户订单编辑功能Ecshop⼆次开发,增加⽤户订单编辑功能(上)Ecshop是⼀款开源免费的⽹上商店系统。

功能很强⼤,但是也有很多的不⾜,不过幸好该系统是开源的,可以⾃⼰修改扩展很不错。

呵呵,下⾯就介绍⼀下我怎么扩展⽤户的订单编辑功能。

第⼀步:准备模版⽂件。

修改模板⽂件中的user_transaction.dwt。

在⽂件中增加⼀段⽤户显⽰⽤户编辑订单的界⾯模版,其实该模版可以从该⽂件中的详细订单显⽰界⾯模板修改过来,只要截取商品列表和费⽤总计部分就好!1、搜索””,在该代码的前⾯加⼊:编辑订单2、搜索“”,在其之前加⼊:{insert_scripts files=?transport.js?}修改订单{$goods.market_price}–>{$lang.goods_name}{$lang.goods_attr}{$lang.goods_price}{$lang.gb_deposit}{$lang.number}{$lang.subtotal}操作target="_blank">{$goods.goods_name}0} –>({$lang.accessories})({$/doc/9e69fc293169a4517723a33c.html rgess}){$goods.goods_attr|nl2br}{$goods.goods_price}{$goods.subtotal}{$lang.drop}{$lang.shopping_money}{$lang.gb_deposit}: {$order.formated_goods_amount}Submit费⽤总计{/if}{$lang.goods_all_price}{$lang.gb_deposit}: {$order.formated_goods_amount}- {$lang.discount}: {$order.formated_discount}+ {$lang.tax}: {$order.formated_tax}0} –>+ {$lang.shipping_fee}: {$order.formated_shipping_fee}0} –>+ {$lang.insure_fee}: {$order.formated_insure_fee}0} –>+ {$lang.pay_fee}: {$order.formated_pay_fee}0} –>+ {$lang.pack_fee}: {$order.formated_pack_fee}0} –>+ {$lang.card_fee}: {$order.formated_card_fee}0} –>- {$lang.order_money_paid}: {$order.formated_money_paid}0} –>- {$/doc/9e69fc293169a4517723a33c.html e_surplus}: {$order.formated_surplus}0} –>- {$/doc/9e69fc293169a4517723a33c.html e_integral}: {$order.formated_integral_money}0} –>- {$/doc/9e69fc293169a4517723a33c.html e_bonus}: {$order.formated_bonus}{$lang.order_amount}: {$order.formated_order_amount}{$lang.notice_gb_order_amount}{$/doc/9e69fc293169a4517723a33c.html e_more_surplus}:第⼆步、编辑user.php⽂件1、在$ui_arr 中加⼊"modify“.* 显⽰页⾯的action列表*/$ui_arr = array(?register?, …login?, …profile?, …order_list?, …modify…,?order_detail?, …address_list?, …collection_list?,'message_list?, …tag_list?, …get_password?, …reset_password?, …booking_list?, …add_booking?, …account_raply?,'account_deposit?, …account_log?, …account_detail?, …act_account?, …pay?, …default?, …bonus?, …group_buy?, …group_buy_detail?, …affiliate?, …comment_list?,'validate_email?,'track_packages?, …transform_points?);2、在下⾯所⽰代码中,增加$smarty->assign(?allow_to_modify?,1);/* 未发货,未付款时允许更换⽀付⽅式和修改订单*/if ($order['order_amount'] > 0 && $order['pay_status'] == PS_UNPAYED && $order['shipping_status'] == SS_UNSHIPPED){$payment_list = available_payment_list(false, 0, true);$smarty->assign(?allow_to_modify?,1);3、在“//删除订单中的商品”的⽅⾯,加⼊下载代码:/*修改订单*/elseif($action==?modify?){function multiArraySearch($needle, $haystack){$value = false;$x = 0;foreach($haystack as $temp){// print_r($temp);$search = array_search($needle, $temp);if (strlen($search) > 0 && $search >= 0){$value[0] = $x;//$value[1] = $search;}$x++;}return $value;}include_once(ROOT_PATH . …includes/lib_transaction.php?);include_once(ROOT_PATH . …includes/lib_payment.php?);include_once(ROOT_PATH . …includes/lib_order.php?);include_once(ROOT_PATH . …includes/lib_clips.php?);if($_REQUEST['do']=="del"){$oid=$_REQUEST['oid'];$gid=$_REQUEST['bid'];$sql="select goods_price,goods_number from ".$ecs->table("order_goods")." where goods_id=$gid";$result=$db->getrow($sql);$order = get_order_detail($oid, $user_id);//取得订单$sql="delete from ".$ecs->table("order_goods")." where goods_id=$gid and order_id=$oid";//删除商品$db->query($sql);$sql="select configure from ".$ecs->table("shipping_area")." where shipping_id=".$order['shipping_id'];$shipping_fee=$db->getrow($sql);$tempa=unserialize($shipping_fee['configure']);$shipping=multiArraySearch("free_money",$tempa);$free_money=$tempa[$shipping[0]]['value'];//找出免运费的额度$market_price=$order['goods_amount']-$result['goods_price']*$result['goods_number'];$inv_id=array_search($order['inv_type'],$GLOBALS['_CFG']['invoice_type']['type']);$rate= floatval($GLOBALS['_CFG']['invoice_type']['rate'][$inv_id])/100;$tax=$order['tax']-($result['goods_price']*$result['goods_number'])*$rate;$addpay_fee=pay_fee($order['pay_id'],$result['goods_price']*$result['goods_number']);//删除的⽀付费⽤$pay_fee=$order['pay_fee']-$addpay_fee;$order_amount=$market_price-$discount+$tax+$pay_fee;$shipping_fee=$order['shipping_fee'];if($market_price>=$free_money){$order_amount=$order_amount-$shipping_fee;$shipping_fee="0.00";}else{if($shipping_fee<=0){$shipping=multiArraySearch("basic_fee",$tempa);$shipping_fee=$tempa[$shipping[0]]['value'];//找出基本运费的$order_amount=$order_amount+$shipping_fee;}}$sql="update".$ecs->table("order_info")."setgoods_amount=?".$market_price."?,discount=?".$discount."?,shipping_fee=?".$shipping_fee."?,tax=?".$tax."? ,pay_fee=?".$pay_fee."?,order_amount=?".$order_amount."? where order_id=$oid";$db->query($sql);$order = get_order_detail($oid, $user_id);//再⼀次查检订单参数if($order['goods_amount']<=0){$sql="delete from ".$ecs->table("order_info")." where order_id=$oid";$db->query($sql);ecs_header("Location: user.php?act=order_list");exit();}ecs_header("Location: user.php?act=modify&order_id=".$oid);exit();}if($_REQUEST['do']=="update"){//更新商品数量$oid=$_REQUEST['oid'];$gid=$_REQUEST['bid'];$nums=$_REQUEST['good_number'];foreach($nums as $gid=>$num){$sql="select goods_price,goods_number from ".$ecs->table("order_goods")." where goods_id=$gid";$result=$db->getrow($sql);$order = get_order_detail($oid, $user_id);//取得订单$sql_storage = "SELECT goods_name,goods_number FROM " .$ecs->table(?goods?). " WHERE goods_id = $gid";$storage_num = $db->getRow($sql_storage);//库存if($result['goods_number']==$num){continue;}elseif($num<=0){show_message("对不起,您修改的商品数量不能为0,或⼩于0!", "返回", …user.php?act=modify&order_id=?.$oid, …error?);exit();}elseif ($num>$storage_num['goods_number']){show_message("对不起,您修改的商品数量不能⼤于该商品:".$storage_num['goods_name'].",库存数:".$storage_num['goods_number']."!", "返回", …user.php? act=modify&order_id=?.$oid, …error?);exit();}$addnum=$num-$result['goods_number'];$sql="update ".$ecs->table("order_goods")." set goods_number=".$num." where goods_id=$gid and order_id=$oid";//添加商品$db->query($sql);$sql="select configure from ".$ecs->table("shipping_area")." where shipping_id=".$order['shipping_id'];$shipping_fee=$db->getrow($sql);$tempa=unserialize($shipping_fee['configure']);$shipping=multiArraySearch("free_money",$tempa);$free_money=$tempa[$shipping[0]]['value'];//找出免运费的额度$market_price=$order['goods_amount']+$result['goods_price']*$addnum; //修改后商品总价格$inv_id=array_search($order['inv_type'],$GLOBALS['_CFG']['invoice_type']['type']);$rate=floatval($GLOBALS['_CFG']['invoice_type']['rate'][$inv_id])/100;$tax=$order['tax']+($result['goods_price']*$addnum)*$rate;//修改后税额$addpay_fee=pay_fee($order['pay_id'],$result['goods_price']*$addnum- $school_dis);//⽀付费⽤$pay_fee=$order['pay_fee']+$addpay_fee;$order_amount=$order['order_amount']+($result['goods_price']*$addnum)-$school_dis+($result[' goods_price']*$addnum)*$rate+$addpay_fee;//修改后订单总额$shipping_fee=$order['shipping_fee'];if($market_price>=$free_money){$order_amount=$order_amount-$shipping_fee;$shipping_fee="0.00";}else{if($shipping_fee<=0){$shipping=multiArraySearch("basic_fee",$tempa);$shipping_fee=$tempa[$shipping[0]]['value'];//找出基本运费的$order_amount=$order_amount+$shipping_fee;}}//更新订单信息$sql="update ".$ecs->table("order_info")." set goods_amount=?".$market_price."?,discount=?".$discount."?,shipping_fee=?".$shipping_fee."?,tax=?".$tax."?,pay_fee=?".$pay_fee."? ,order_amount=?".$order_amount."? where order_id=$oid";$db->query($sql);}$order = get_order_detail($oid, $user_id);//再⼀次查检订单参数if($order['goods_amount']<=0){$sql="delete from ".$ecs->table("order_info")." where order_id=$oid";$db->query($sql);ecs_header("Location: user.php?act=order_list");exit();}ecs_header("Location: user.php?act=order_detail&order_id=".$oid);exit();}$order_id = isset($_GET['order_id']) ? intval($_GET['order_id']) : 0;$order = get_order_detail($order_id, $user_id);/* 订单商品*/$goods_list = order_goods($order_id);foreach ($goods_list AS $key => $value){$goods_list[$key]['market_price'] = price_format($value['market_price'], false);$goods_list[$key]['goods_price'] = price_format($value['goods_price'], false);$goods_list[$key]['subtotal'] = price_format($value['subtotal'], false);}$smarty->assign(?order?, $order);$smarty->assign(?goods_list?, $goods_list);$smarty->display(?user_transaction.dwt?);}Ecshop_order_detail----------------------------------------------------------------------------------------------------ecshop在设置商品促销功能时,精确到⼩时分钟2009-08-06 09:16⽬前我们在设置商品促销的时间,只能设置从某⼀天,其实完全可以精确到⼩时分钟。

ecshop标签调用大全(ecshop标签解析)

ecshop标签调用大全(ecshop标签解析)

先从index.php主页开始页面关键字{$keywords}页面标题{$page_title}产品分类父分类列表{foreach from=$categories item=cat}父分类超链接[url==”{$cat.url}”>{$|escape:html}</a>相对应子分类{foreach from=$cat.children item=child}子分类超链接[url==”{$child.url}”>{$|escape:html}</a>促销产品{if$promotion_info}检验是否存在促销产品,不存在就不显示相关信息促销产品列表{foreach from=$promotion_info item=item key=key}里面还有很多标签,没弄明白,以后在添加,修改订单查询{if empty($order_query)}同上看下就知道了订单用户ID{if$order_er_id}订单数量{$lang.order_number}订单编号{$order_query.order_sn}里面还有很多标签,没弄明白,以后在添加,修改发货查询{if$invoice_list}当有完成的订单测显示发货列表{foreach from=$invoice_list item=invoice}订单号名称{$lang.order_number}订单号{$invoice.order_sn}发货单名称{$lang.consignment}发货单号{$invoice.invoice_no}销售排行{if$top_goods}看看就知道销售列表{foreach name=top_goods from=$top_goods item=goods}产品短名称{$goods.short_name}看例子:<!–{foreach name=top_goods from=$top_goods item=goods}–><li class=”top10-li-{$smarty.foreach.top_goods.iteration}”>[url==”{$goods.url}”title=”{$|escape:html}”>{$goods.short_name} </a></li><!–{/foreach}–>精品推荐{if$best_goods}看看就知道精品推荐列表{foreach from=$best_goods item=goods}市场价名称{$lang.market_price}市场价价格{$goods.market_price}促销价名称{$lang.promote_price}促销价价格{$goods.promote_price}商店价名称{$lang.shop_price}商店价价格{$goods.shop_price}大家看到了吗??{$lang.xxxx_xxxx}以lang开头的为相对应的名称{$goods.xxxx_xxxx}以goods开头的为价格{$page_title}网站标题{$keywords}网站关键字标签{$description}网站描述标签{$shop_notice}商店公告$new_articles新文章{$article.short_title}调用文章标题{foreach from=$new_articles item=article}循环的开始,{/foreach}循环的结束item-->具体意义和用法?表格一行一行的循环<table>{foreach from=$new_articles item=article}<tr><td>{$article.short_title}</td></td>{/foreach}</table>from=$best_goods表示循环的内容来自$best_good $best_goods精品商品推荐的标签{$goods.short_style_name}表示goods这个对象的商品名称$new_goods新品上市$hot_goods热卖商品$categories分类的标签$goods_list商品标签商品图片:<img src={$goods.goods_img}/>商品名称:{$goods.goods_style_name}商品货号:{$goods.goods_sn}<br>商品品牌:{$goods.goods_brand}商品数量:{$goods.goods_number}单位:{$goods.measure_unit}添加时间:{$goods.add_time}市场价格:{$goods.market_price}本店价格:{$goods.shop_price_formated}注册用户价格:{$rank_price.price}注册用户价格:{$rank_price.price}注册用户价格:{$rank_price.price}商品id为1的商品http://localhost/ecshop/goods.php?id=1邮件模板管理商城在进行某些操作时可以向用户发送邮件提示。

Ecshop 使用文档

Ecshop 使用文档

Ecshop 使用流程文档第一步文件覆盖:找到安装目录下网站根目录找到ecshop/api.php这个文件,把编辑过的api文件与网站根目录底下原有api.php文件进行替换(先要备份原有的app.php文件)如:网站环境配置在D盘下文件夹为PHPnow-1.5.3找到网站根目录:如目录名称为ecshop在根目录中就可以找到api.php这个文件进行将其替换:第二步店铺设置;登陆E系统首先进行店铺设置【设置】—[店铺设置]设置店铺(商城)名选择属于自己的商用平台并进行填写app写入app时应该写入当前自己店铺访问地址加/api.php如;店铺访问地址是:http://localhost:8080/ecshop (地址换成网站访问地址)写入app中则应该是:http://localhost:8080/ecshop/api.php第三步设置参数店铺设置成功之后进入【网点工具】—[网店发货管理]—参数设置:进行参数设置所属店铺是上一步所添加的商城平台类型选择属于自己商城平台的类型接口类型选择专有接口类型保存自己的用户名密码进行下一次直接登陆如:店铺是上步添加的店铺:逃逸所用平台:ecshop 则参数设置为:第四步:订单获取进入【网点工具】—[网店发货管理]-定时同步订单:进行订单抓取同步订单第五步:预处理操作到【预处理】中进行[查询]一系列发货操作第六步:发货操作进入【网点工具】—[网店发货管理]-批量发货:进行发货在详细中输入条形码-联想单号-导入进销存第七步:发货进入【网点工具】—[网店发货管理]-批量发货:进行订单发货点击批量发货【快】发货成功附加:定时上下架(包括自动产品下载更新上架下架)进入【网点工具】—[网店发货管理]-扩展功能:点击定时上下架第一将会进行产品下载将产品-网店产品设置为启用更新或默认人更新定时上下架则为:产品同样根据软件图片库存自动更新后台网站数量。

Ecshop_ajax应用

Ecshop_ajax应用

ecshop ajax应用例:点击购物按钮后立即更新购物车数量方案1、比如我们category.dwt 里有1.<a href='flow.php'><SPAN id='cart_count_all'>{insertname='cart_info'}</SPAN></A>复制代码同时此页面有1.<a onclick="javascript:addToCart_xaphp({$goods.goods_id});"style="cursor: pointer;">添加购物车</a复制代码我们现在需要实现点击按钮后页面不刷新去更新上面购物车数量2、首先我们需要调入系统1.{insert_scripts files='transport.js,utils.js'}复制代码这俩个js文件是有关ajax实现效果的类问题我们大可不去管只需要调入下来我们打开系统的common.js文件进行添加我们自己的添加购物车函数1.function addToCart_xaphp(goodsId, parentId)2.{3.var goods = new Object();4.var spec_arr = new Array();5.var fittings_arr = new Array();6.var number = 1;7.var formBuy = document.forms['ECS_FORMBUY'];8.var quick = 0;9.10.// 检查是否有商品规格11.12.goods.quick = quick;13.goods.spec = spec_arr;14.goods.goods_id = goodsId;15.goods.number = number;16.//goods.guige = guige;17.goods.parent = (typeof(parentId) == "undefined") ? 0 :parseInt(parentId);18.19.Ajax.call('flow.php?step=add_to_cart', 'goods=' +goods.toJSONString(), addToCartResponse_xaphp, 'POST', 'JSON');20.}复制代码解释;a.点击按钮首先执行这个函数获取我们的数据b. Ajax.call('flow.php?step=add_to_cart', 'goods=' +goods.toJSONString(), addToCartResponse_xaphp, 'POST', 'JSON'); 这是局部执行也就是无刷新执行flow.php?step=add_to+cart 同时把数据通过POST提交,有关json具体原理想研究的朋友可以去网上找资料。

ecshop 函数列表大全

ecshop 函数列表大全

ecshop 函数列表大全所有函数功能说明:lib_time.phpgmtime()P: 获得当前格林威治时间的时间戳 /$0server_timezone()P: 获得服务器的时区 /$0local_mktime($hour = NULL , $minute= NULL, $second = NULL, $month = NULL, $day = NULL, $year = NULL)P: 生成一个用户自定义时区日期的GMT时间戳local_date($format, $time = NULL)P: 将GMT时间戳格式化为用户自定义时区日期gmstr2time($str)P: 转换字符串形式的时间表达式为GMT时间戳local_strtotime($str)P: 将一个用户自定义时区的日期转为GMT时间戳local_gettime($timestamp = NULL)P: 获得用户所在时区指定的时间戳local_getdate($timestamp = NULL)P: 获得用户所在时区指定的日期和时间信息lib_base.phpsub_str($str, $length = 0, $append = true)P: 截取UTF-8编码下字符串的函数real_ip()P: 获得用户的真实IP地址str_len($str)P: 计算字符串的长度(汉字按照两个字符计算)get_crlf()P: 获得用户操作系统的换行符send_mail($name, $email, $subject, $content, $type = 0, $notification=false) P: 邮件发送gd_version()P: 获得服务器上的 GD 版本file_get_contents($file)P: 如果系统不存在file_get_contents函数则声明该函数file_put_contents($file, $data, $flags = '')P: 如果系统不存在file_put_contents函数则声明该函数floatval($n)P: 如果系统不存在 floatval 函数则声明该函数file_mode_info($file_path)P: 文件或目录权限检查函数log_write($arg, $file = '', $line = '')P: 写入日志内容make_dir($folder)P: 检查目标文件夹是否存在,如果不存在则自动创建该目录gzip_enabled()P: 获得系统是否启用了 gzipaddslashes_deep($value)P: 递归方式的对变量中的特殊字符进行转义addslashes_deep_obj($obj)P: 将对象成员变量或者数组的特殊字符进行转义stripslashes_deep($value)P: 递归方式的对变量中的特殊字符去除转义make_semiangle($str)P: 将一个字串中含有全角的数字字符、字母、空格或'%+-()'字符转换为相应半角字符check_file_type($filename, $realname = '', $limit_ext_types = '')P: 检查文件类型 /文件名/真实文件名/允许的文件类型mysql_like_quote($str)P: 对 MYSQL LIKE 的内容进行转义过滤掉_ %等字符.real_server_ip()P: 获取服务器的ipecs_header($string, $replace = true, $http_response_code = 0)P: 自定义 header 函数,用于过滤可能出现的安全隐患ecs_iconv($source_lang, $target_lang, $source_string = '')P: 自定义的编码转换ecs_geoip($ip)P: 取得IP的地址,采用IP库trim_right($str)P: 去除字符串右侧可能出现的乱码move_upload_file($file_name, $target_name = '')P: 将上传文件转移到指定位置json_str_iconv($str)P: 将JSON传递的参数转码get_file_suffix($file_name, $allow_type = array())P: 获取文件后缀名,并判断是否合法read_static_cache($cache_name)P: 读结果缓存文件write_static_cache($cache_name, $caches)P: 写结果缓存文件lib_common.php (公用函数库)db_create_in($item_list, $field_name = '')P: 创建像这样的查询: "IN('a','b')" $item_list为数组is_email($user_email)P: 验证输入的邮件地址是否合法is_time($time)P: 检查是否为一个合法的时间格式assign_query_info()P: 获得查询时间和次数,并赋值给smartyregion_result($parent, $sel_name, $type)P: 创建地区的返回信息get_regions($type = 0, $parent = 0)P: 获得指定国家的所有省份, 函数需要数据库支持.get_shipping_config($area_id)P: 获得配送区域中指定的配送方式的配送费用的计算参数比如快捷公司不同.init_users()P: 初始化会员数据整合类cat_list($cat_id = 0, $selected = 0, $re_type = true, $level = 0, $is_show_all = true)P: 获得指定分类下的子分类的数组, $re_type控制返回类型cat_options($spec_cat_id, $arr)P: 过滤和排序所有分类,返回一个带有缩进级别的数组load_config()P: 载入配置信息get_brand_list()P: 取得品牌列表get_brands($cat = 0, $app = 'brand')P: 获得某个分类下的品牌列表get_promotion_info($goods_id = '')P: 所有的促销活动信息get_children($cat = 0)P: 获得指定分类下所有底层分类的IDget_article_children ($cat = 0)P: 获得指定文章分类下所有底层分类的IDget_mail_template($tpl_name)P: 获取邮件模板order_action($order_sn, $order_status, $shipping_status, $pay_status, $note = '', $username = null)P: 记录订单操作记录price_format($price, $change_price = true)P: 格式化商品价格get_virtual_goods($order_id, $shipping = false)P: 返回订单中的虚拟商品记录是否发货.virtual_goods_ship(&$virtual_goods, &$msg, $order_sn, $return_result = false, $process = 'other')P: 虚拟商品发货virtual_card_shipping ($goods, $order_sn, &$msg, $process = 'other')P: 虚拟卡发货virtual_card_result($order_sn, $goods)P: 返回虚拟卡信息get_snatch_result($id)P: 获取指定 id snatch 活动的结果clear_tpl_files($is_cache = true, $ext = '')P: 清除指定后缀的模板缓存或编译文件clear_compiled_files($ext = '')P: 清除模版编译文件clear_cache_files($ext = '')P: 清除缓存文件clear_all_files($ext = '')P: 清除模版编译和缓存文件smarty_insert_scripts($args)P: 页面上调用的js文件,组合功能.smarty_create_pages($params)P: 创建分页的列表build_uri($app, $params, $append = '', $page = 0, $size = 0)P: 重写 URL 地址formated_weight($weight)P: 格式化重量log_account_change($user_id, $user_money = 0, $frozen_money = 0, $rank_points = 0, $pay_points = 0, $change_desc = '', $change_type = ACT_OTHER)P: 记录帐户变动article_cat_list($cat_id = 0, $selected = 0, $re_type = true, $level = 0)P: 获得指定分类下的子分类的数组/ 向下取数组.article_cat_options($spec_cat_id, $arr)P: 过滤和排序所有文章分类,返回一个带有缩进级别的数组uc_call($func, $params=null)P: 调用UCenter的函数exception_handler($errno, $errstr, $errfile, $errline)P: error_handle回调函数未启用.get_image_path($goods_id, $image='', $thumb=false, $call='goods', $del=false) P: 重新获得商品图片与商品相册的地址user_uc_call($func, $params = null)P: 调用使用UCenter插件时的函数get_volume_price_list($goods_id, $price_type = '1')P: 取得商品优惠价格列表get_final_price($goods_id, $goods_num = '1', $is_spec_price = false, $spec = array())P: 取得商品最终使用价格get_package_info($id)P: 获取指定id package 的信息get_package_goods($package_id)P: 获得指定礼包的商品lib_main.php (前台公用函数库)update_user_info()P: 更新用户SESSION,COOKIE及登录时间、登录次数。

Ecshop二次开发之自定义库文件和模板数据调用实例-电脑资料

Ecshop二次开发之自定义库文件和模板数据调用实例-电脑资料

Ecshop二次开发之自定义库文件和模板数据调用实例-电脑资料这篇文章主要为大家介绍了Ecshop二次开发之自定义库文件和模板数据调用方法,是进行ecshop二次开发中非常实用的重要技巧,涉及底层库文件的修改与应用,需要的朋友可以参考下本文实例讲述了Ecshop二次开发之自定义库文件和模板数据调用方法,。

分享给大家供大家参考。

具体方法如下:Smarty的标签非常多,也比较繁琐,所以Ecshop使用了精简版的Smarty,其中用到的Smarty模板语法:{$keywords} 输出模板变量{$array.test.abc} 输出二维数组{$lang.remark_package} 语言包$lang[remark_package]{insert_scripts files=‘common.js‘} 引入js文件xxxx 循环xxxx 判断引入goods_tags.lbi库文件,相当于PHP的include{*内容*} html注释,只在模板上显示,页面上会被删除掉.Ecshop二次开发的数据调用,主要动用到以下两个目录下的文件dwt(模板文件)路径: themes\\defaultlbi(库文件)路径: themes\\default\\library举个例子就很清楚了,是我从网上找来的,由于转载得很严重,所以不知道真正出处。

我们在themes\\default\\library下新建一个名为newest_comments.lbi的库文件,写入以下内容:代码如下:if(!function_exists("get_new_comments")){function get_new_comments($num){$sql = ‘SELECT * FROM ‘.$GLOBALS[‘ecs‘]->table(‘comment‘) .‘ WHERE status = 1 AND parent_id = 0 and comment_type=0 ‘.‘ ORDER BY add_time DESC‘;if ($num > 0){$sql .= ‘ LIMIT ‘ . $num;}//echo $sql;$res = $GL OBALS[‘db‘]->getAll($sql);$comments = array();foreach ($res AS $idx => $row){$comments[$idx][‘add_time‘] = $comments[$idx][‘add_time‘] = local_date($GLOBALS[‘_CFG‘][‘time_format‘],$row[‘add_time‘]);$comments[$idx][‘user_name‘] = $row[‘user_name‘];$comments[$idx][‘content‘] = $row[‘content‘];$comments[$idx][‘id_value‘] = $row[‘id_value‘];}return $comments;}}$this->assign(‘new_comments‘,get_new_comments(10)); // 10条最新评论>{$comment.content|truncate:15:""}时间:{$comment.add_time}这样一个库文件就做好了,电脑资料《Ecshop二次开发之自定义库文件和模板数据调用实例》(https://www.)。

在ECSHOP后台左侧导航中增加新菜单的完美解决方案

在ECSHOP后台左侧导航中增加新菜单的完美解决方案

在ECSHOP后台左侧导航中增加新菜单的完美解决方案站长朋友们都知道Ecshop这款开源的程序后台开发的很完善,不过很多站长朋友选这款开源的程序做B2C商城还有一点就是在这个开源的程序上很好再次的二次开发,也就是很据自己商城的需要对其进行二次的修改,毕竟每个商城销售的商品不同,因此需要的功能也是不同的。

当我们进入Ecshop网站后台的时候可以看到左侧就是商品管理,促销管理,订单管理,系统设置等很多开发好的模块或者菜单,今天小编突发奇想,能不能根据自己网城的需要自己再开发一个新的菜单呢?小编通过查阅一些论坛,文档。

当然少不了的多次请教度终于找到了完美的解决方案,小编下面为站长伙伴们分享下吧例如我们要在后台左侧的菜单项添加一个“商品采集” 这个新的菜单(只是举个例子也可以根据自己需要添加别的菜单)。

总体而言我们是要修改三个文件的,小编先为各位言明下以下三个文件的详细路径和名称:(1)/admin/includes/inc_menu.php,(2)/admin/includes/inc_priv.php,(3)/languages/zh_cn/admin/common.php第一步:我们首先按照以上路径把第一个inc_menu.php文件,找到之后用一款编辑软件打开.在$mo dules[’02_cat_and_goods’][‘goods_auto’] = ‘goods_auto.php?act=list';下一行添加代码:$modules[’02_cat_and_goods’][‘goods_caiji’] = ‘goods_caiji.php';第二步:和第一步一样按照路径找到inc_priv.php文件打开找到$_LANG[‘navigator’] = ‘自定义导航栏';下一行添加代码:$_LANG[‘goods_caiji’]=’商品采集';第三步:打开 /admin/includes/inc_priv.php文件直接找到38行代码:$purview[‘goods_auto’]= ‘goods_auto';在下面添加一行代:$purview[‘goods_caiji’]= ‘goods_caiji';按照以上三个步骤分别添加后,我们用对应的编码格式保存好,然后传到对应的文件目录下覆盖以前的文件,登陆到网站的后台在右上角有个更新缓存。

Ecshop 使用文档

Ecshop 使用文档

Ecshop 使用流程文档第一步文件覆盖:找到安装目录下网站根目录找到ecshop/api.php这个文件,把编辑过的api文件与网站根目录底下原有api.php文件进行替换(先要备份原有的app.php文件)如:网站环境配置在D盘下文件夹为PHPnow-1.5.3找到网站根目录:如目录名称为ecshop在根目录中就可以找到api.php这个文件进行将其替换:第二步店铺设置;登陆E系统首先进行店铺设置【设置】—[店铺设置]设置店铺(商城)名选择属于自己的商用平台并进行填写app写入app时应该写入当前自己店铺访问地址加/api.php如;店铺访问地址是:http://localhost:8080/ecshop (地址换成网站访问地址)写入app中则应该是:http://localhost:8080/ecshop/api.php第三步设置参数店铺设置成功之后进入【网点工具】—[网店发货管理]—参数设置:进行参数设置所属店铺是上一步所添加的商城平台类型选择属于自己商城平台的类型接口类型选择专有接口类型保存自己的用户名密码进行下一次直接登陆如:店铺是上步添加的店铺:逃逸所用平台:ecshop 则参数设置为:第四步:订单获取进入【网点工具】—[网店发货管理]-定时同步订单:进行订单抓取同步订单第五步:预处理操作到【预处理】中进行[查询]一系列发货操作第六步:发货操作进入【网点工具】—[网店发货管理]-批量发货:进行发货在详细中输入条形码-联想单号-导入进销存第七步:发货进入【网点工具】—[网店发货管理]-批量发货:进行订单发货点击批量发货【快】发货成功附加:定时上下架(包括自动产品下载更新上架下架)进入【网点工具】—[网店发货管理]-扩展功能:点击定时上下架第一将会进行产品下载将产品-网店产品设置为启用更新或默认人更新定时上下架则为:产品同样根据软件图片库存自动更新后台网站数量。

ecshop首页调用指定分类的推荐热卖和新品

ecshop首页调用指定分类的推荐热卖和新品

大家都知道ecshop首页的推荐、热卖和新品三个板块的商品都是从所有商品里读取出来的。

如果我想“在ecshop首页调用指定分类的推荐、热卖和新品?”该怎么办呢,下面教你一种方法:找到ecshop的includes/lib_goods.php,把sql语句改一下,与category表关联即可将$sql = 'select g.goods_id,g.goods_name, g.goods_name_style,g.market_price, g.shop_price as org_price, g.promote_price, ' .修改为$sql = 'select g.goods_id,g.cat_id,c.parent_id,g.goods_name, g.goods_name_style, g.market_price, g.shop_price as org_price, g.promote_price, ' .继续找到'left join ' . $globals['ecs']-&gt;table('brand') . ' as b on b.brand_id = g.brand_id ' .在它下面加一句'left join ' . $globals['ecs']-&gt;table('category') . ' as c on c.cat_id = g.cat_id ' .然后将if (!empty($cats)){$sql .= and ( . $cats . or . get_extension_goods($cats) .);}改为if (!empty($cats)){$sql .= and (c.parent_id = . $cats. or . get_extension_goods($cats) .);}这个是和分类表建立关联,调出商品所在分类的上级分类然后在index.php中增加下面代码$smarty-&gt;assign('chot_goods_35', get_category_recommend_goods('hot','35')); //指定分类下的热销商品注意这个35是一级分类的id,然后在模板中调用即可&lt;!--{foreach from=$chot_goods_35 item=goods}--&gt;&lt;div style=padding-top: 8px; class=new-tr&gt;&lt;a target=_blank href={$goods.url}&gt;&lt;img width=116 height=130 border=0 alt={$|escape:html} src={$goods.thumb}&gt;&lt;/a&gt;&lt;div&gt;&lt;a target=_blank href={$goods.url}&gt;{$|escape:html}&lt;/a&gt;&lt;br&gt;&lt;span style=color: rgb(102, 102, 102); text-decoration: line-through;&gt;市场价:{$goods.market_price}&lt;/span&gt;&lt;br&gt;特卖价:&lt;span style=color: rgb(255, 0, 0);&gt;{$goods.shop_price}&lt;/span&gt;&lt;br&gt;&lt;span class=font-gmm&gt;&lt;a href=javascript:addtocart({$goods.id})&gt;立即抢购&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=new-line&gt;&lt;/span&gt;&lt;/div&gt;&lt;!--{/foreach}--&gt;同理,新品,推荐都可以调,只要把hot改为new 或者best就可以了。

ECSHOP循环中实现套用调取广告位的方法

ECSHOP循环中实现套用调取广告位的方法

ECSHOP循环中实现套用调取广告位的方法在做某客户ECSHOP模板活动列表页面时,添加活动列表的时候,需要添加广告,可是该怎么调用广告位呢?现在ECSHOP模板屋教程网来告诉你,怎样轻松循环中调用ecshop广告,而且方法简单,操作又便捷://第一步:定义index变量<?php$index=0;>//第二步:进入循环<!-- {foreach from=$list item=val name=name} -->//第三步:给循环里的index值赋值,依次加1<?php$index=$index+1;$GLOBALS['smarty']->assign('index',$index);><div class="list_biaoti" id="tg4"> <h3><i></i>活动 {$.iteration} ? {$val.act_name}</h3></div><div id="tj4" class="list_tuangou"><div class="list_tt">// 第四步:调用广告位循环,特别注意ID那里,这里直接调用活动ID是出现错误的,所以这里只能调用刚刚赋值的变量index的值<?php$GLOBALS['smarty']->assign('index_image',get_advlist('活动ID'.$index.'-左侧活动图片', 1));>{foreach from=$index_image item=ad name=index_image}{if $smarty.foreach.index_image.iteration < 2}<div class="left"><a href="{$ad.url}"><img src="{$ad.imag e}" height="263" width="770"></a></div>{/if}{/foreach}{/foreach}此ecshop调用广告位方法可以运用到多处模板循环套用的地方,活学活用,样式自己定义增加修改哦...文章转载:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ECSHOP首页调用某个分类下的商品调用某个分类下的商品,方法有很多种的,不过都需要先在后台设置模板那里设置显示和显示条数,然后在需要调用的模板里放上相应的代码即可:1、比如:<?php $this->assign(’cat_goods’,$this->_var['cat_goods_15']); ?><?php$this->assign(’goods_cat’,$this->_var['goods_cat_15']); ?><?php echo$this->fetch(’library/cat_goods.lbi’); ?>上面的15就是某个要调用的栏目ID值.把它改成其他你要调用的分类ID值即可.2、这是第二种:<!–{foreach from=$cat_goods_14 item=goods}–><div class=”xgoods”><div class=”img”><a href=”{$goods.url}” target=”_blank”><imgsrc=”{$goods.thumb}” alt=”{$|escape:html}” width=”67″height=”56″ border=”0″ class=”imgb”/></a></div><div class=”name”><a href=”{$goods.url}”target=”_blank”>{$goods.short_name|escape:html|truncate:10}</a><br /><span class=”fontr fontb fontbig”>{$goods.shop_price}</span></div> </div><!–{/foreach}–>说明:上面的$cat_goods_14 ,其中14就是你想要调用的栏目ID值,把它改成你要调用的栏目ID值即可。

3、第三种:先在要调用的模板里设置区域,比如:<!– TemplateBeginEditable name=”某分类区域”–><!– TemplateEndEditable –>然后在后台设置模板那里增加分类显示时选此区域即可。

ecshop首页调用指定分类商品首先、我们再在/includes/lib_goods.php下增加如下代码:这个代码我加在了最底部:function index_get_cat_id_goods_best_list($cat_id = '', $num = ''){$sql = 'Select g.goods_id, g.cat_id,c.parent_id, g.goods_name, g.goods_name_style, g.market_price, g.shop_price AS org_price, g.promote_price, ' ."IFNULL(er_price, g.shop_price * '$_SESSION[discount]') AS shop_price, ". "promote_start_date, promote_end_date, g.goods_brief, g.goods_thumb, goods_img, " . "g.is_best, g.is_new, g.is_hot, g.is_promote " .'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .'LEFT JOIN ' . $GLOBALS['ecs']->table('category') . ' AS c ON c.cat_id = g.cat_id ' . "LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp "."ON mp.goods_id = g.goods_id AND er_rank = '$_SESSION[user_rank]' ". "Where g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 ".$sql .= " AND (c.parent_id =" . $cat_id. " OR g.cat_id = " . $cat_id ." OR g.cat_id ".db_create_in(array_unique(array_merge(array($cat_id), array_keys(cat_list($cat_id, 0, false))))) .")";$sql .= " LIMIT $num";$res = $GLOBALS['db']->getAll($sql);$goods = array();foreach ($res AS $idx => $row){$goods[$idx]['id'] = $row['article_id'];$goods[$idx]['id'] = $row['goods_id'];$goods[$idx]['name'] = $row['goods_name'];$goods[$idx]['brief'] = $row['goods_brief'];$goods[$idx]['brand_name'] = $row['brand_name'];$goods[$idx]['goods_style_name'] =add_style($row['goods_name'],$row['goods_name_style']);$goods[$idx]['short_name'] = $GLOBALS['_CFG']['goods_name_length'] > 0 ?sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) :$row['goods_name'];$goods[$idx]['short_style_name'] =add_style($goods[$idx]['short_name'],$row['goods_name_style']);$goods[$idx]['market_price'] = price_format($row['market_price']);$goods[$idx]['shop_price'] = price_format($row['shop_price']);$goods[$idx]['thumb'] = empty($row['goods_thumb']) ? $GLOBALS['_CFG']['no_picture'] : $row['goods_thumb'];$goods[$idx]['goods_img'] = empty($row['goods_img']) ?$GLOBALS['_CFG']['no_picture'] : $row['goods_img'];$goods[$idx]['url'] = build_uri('goods', array('gid' => $row['goods_id']),$row['goods_name']);}return $goods;}第二、在index.php增加以下代码$smarty->assign('cat_id16_best_goods', index_get_cat_id_goods_best_list(16,8));其中16是你调用的分类的id,这个分类可以是一级,也可以是二级。

要注意有两个16,8是你要调用的条数第三、新增一个.lbi,添加如下代码:我建立的名字是shounvxing.lib<!--{foreach from=$cat_id16_best_goods item=goods}--><li><div ><img class="b1" src="{$goods.thumb}" width="148"height="148" /></div><div><A title={$|escape:html} href="{$goods.url}" target=_blank>{$goods.short_name|truncate:8:true}</A></div><div class="f_delline">市场价:{$goods.market_price}元</div><div class="f_red">无忧康价:{$goods.shop_price}元</div><div class="f_orange">售出:{$lang.order_number}件</div><div></div></li><!-- { /foreach }-->第四、在首页模板index.dwt中,在你想显示的位置加上以下代码:<!-- #BeginLibraryItem "/library/shounvxing.lbi" --><!-- #EndLibraryItem -->好了,这样就算完成了。

相关文档
最新文档