作者文章

fwq

FWQ
网站开发
分享ecshop猜你喜欢的开发原理
最近在实现ecshop中的一个猜你喜欢的原理,一直不明白这个是如何猜的,难道是根据最近浏览记录来得到?百思不得其解,就放下了这个问题,一天在百度搜索东西的时候,突然发现这个右边有个猜你喜欢的功能,其实以前也知道,这里有这个版块,只不过没加注意,这次经过仔细观察发现,原来猜你喜欢的时候,就根据你搜索的相关结果,关联出一些同类产品。 举个例子,比如好模板搜索notepad2的时候,notepad++,editplus等软件就被列入了猜你喜欢的类别中,因此,在ecshop中如果好模板们记录了用户的浏览记录,通过浏览记录找出记录中的同类产品,其实就是猜你喜欢的结果了。 当好模板们一直研究某个问题,可能一时间得不到个最终结果,但是偶然的某个时候好模板们就会发现,答案自然出来了。其实不是答案自然出来了,其实是好模板们一直都在搜索答案,只不过是在后台静默的搜索,以至于好模板们都没察觉,但是,当结果出来的时候,他就会弹窗告知好模板们,好模板们要的答案出现了。 首先查看 调用浏览历史的函数insert_history(),从中找出得到历史记录的方法:   $where = db_create_in($_COOKIE[‘ECS’][‘history’], ‘goods_id’); $sql   = ‘SELECT goods_id, cat_id FROM ‘ . $GLOBALS[‘ecs’]>table(‘goods’) .//www.ldhost.cn ” WHERE $where AND is_on_sale = 1 AND…
2025-04-23 阅读全文 →
FWQ
网站开发
解决ecshop分类与商品标题突然变乱码问题
在使用ecshop网站时,突然分类的类目和产品的标题都变成乱码了,排除网站是utf8还是gb2312,还有可能是缓存问题。 首先进入ecshop数据库,找到ecshop的内存表:ecs_sessions,进行了清空。 然后在ecshop根目录下的index.php文件中做了以下修改: 把$smarty->caching=true; 其中的true改成false 这里就是关闭caching告诉缓存,关闭网页不立即更新。 如下图所示:
2025-04-23 阅读全文 →
FWQ
网站开发
实现ecshop不同的分类调用不同的模版
目的:ecshop不同的分类调用不同的模版,如果没有就调用默认的模版  好模板方法:模仿分类样式,COPY一个分类模版 注意:红色部分是新增加的,黑色部分,是让你找到位置,知道在哪里增加 1,在分类表ecs_category里增加一个字段,style_moban,属性就与style相同吧, 或者执行以下SQL语句 alter table  `ecs_category` add style_moban varchar(255) NOT NULL DEFAULT ”; 2,修改admin\templates\category_info.htm       <tr>         <td class=”label”><a href=”javascript:showNotice(‘noticeGoodsSN’);” title=”{$lang.form_notice}”><img src=”images/notice.gif” width=”16″ height=”16″ border=”0″…
2025-04-23 阅读全文 →
FWQ
网站开发
ecshop商品详细页调用商品相册
在ecshop商品详情页简单调用商品相可以直接用默认的商品相册库文件goods_gallery.lbi。 不过这里毕竟是ecshop默认模板的商品相册,可能与我们想要的效果不太一致。想达到自己想要的效果,就需要我自己设计一个商品相册的文件了。 在设计的库文件中,首先必须要有的是<!– {if $pictures}–>判断商品相册的函数,当然有判断开始,就一定有判断结束,在文件的最后加上<!– {/if}–>结束判断。 在if语句里边加上调用商品相册图片的语句: <!– {foreach from=$pictures item=picture}–> <li> <a href=”gallery.php?id={$id}&amp;img={$picture.img_id}” target=”_blank”> <img src=”{if $picture.thumb_url}{$picture.thumb_url}{else}{$picture.img_url}{/if}” alt=”{$goods.goods_name}” class=”B_blue” /> </a> </li> <!–{/foreach}–> 这里的超链接标签中的链接地址可以不需要,如果非要加上链接地址的话,也可以加上自己想要的地址。
2025-04-23 阅读全文 →
FWQ
网站开发
ECshop前台和后台提示信息调用
前台提示 1. 显示一个提示信息,调用以下函数: show_message($content, $links = ”, $hrefs = ”, $type = ‘info’, $auto_redirect = true) $content:提示内容 $links:跳转链接名称 $hrefs:跳转链接地址 $type:提示信息类型warning, error, info $auto_redirect:是否自动跳转,默认为是 2. 显示错误信息,调用: show($link = ”,…
2025-04-23 阅读全文 →
FWQ
网站开发
ecshop订单提交页面详细地址显示省市区
默认的ecshop订单提交页面,收货人信息中只记录了用户的详细地址,没有显示省份、城市和区域。 下面我们就来调取已经填写的省份、城市和区域。   1、找到includes/lib_main.php,添加一个函数     function get_region_name($rid){     return $GLOBALS[‘db’]->GetOne(“SELECT region_name FROM “.$GLOBALS[‘ecs’]->table(‘region’).” WHERE region_id=’$rid'”); } 2.找到flow.php,定位到     elseif ($_REQUEST[‘step’] == ‘checkout’) 在此区块下找到    …
2025-04-23 阅读全文 →
FWQ
网站开发
ecshop退出网页后不能保留上一次已添加到购物车中的商品
经常有不同用户留言,ecshop偶很猥琐悄然无声的将浏览器窗口关闭了,俺多年积累到到购物车的商品瞬间灰飞烟灭,此刻你叫我怎么淡定,比火球还火的怒火就在这一刻爆发了,亲爱的管理员,客户悄然流失,订单一天比一天少,你还如此淡定吗?想挽回这一切损失吗?赶紧跟着我来一步一步往下做吧,客户不断,掌声响起,闲来蛋疼,先闭嘴,废话少说,进入主题,开始修改了喽 找到includes/cls_session.php大约在268行查找下面代码: 复制内容到剪贴板 折叠 PHP 代码 if (!emptyempty($GLOBALS[‘ecs’]))   {       $this->db->query(‘DELETE FROM ‘ . $GLOBALS[‘ecs’]->table(‘cart’) . ” WHERE session_id = ‘$this->session_id'”);   }   替换为: 复制内容到剪贴板 折叠 XML/HTML 代码 if (!empty($GLOBALS[‘ecs’]))   {       $this->db->query(‘DELETE FROM ‘ . $GLOBALS[‘ecs’]->table(‘cart’) . ” WHERE session_id = ‘$this->session_id’ and user_id =”“);   }   接下来,在同目录下找到lib_main.php定位到页面的最后,新增加一段代码以完成购物车不再被清空的烦恼。 复制内容到剪贴板 折叠 PHP 代码 /* 更新用户购物车退出不清空购物车*/    $sql = “update “.$GLOBALS[‘ecs’]->table(‘cart’).” set user_id =”.$_SESSION[‘user_id’].” where session_id = ‘”.SESS_ID.“‘”;    $GLOBALS[‘db’] -> query($sql);   l1 = “update “.$GLOBALS[‘ecs’]->table(‘cart’).” set session_id ='”.SESS_ID.“‘ where user_id = ‘”.$_SESSION[‘user_id‘].”‘“;  …
2025-04-23 阅读全文 →
FWQ
网站开发
ecshop中红包编码生成规则分析和改进
 我们知道在ecshop后台的促销管理里面,有红包的功能。ecshop红包的功能无非就是可以直接抵消现金的作用,ecshop红包有两类型,一种是直接发送到个人帐户上去的。就是存储在ecs_user_bonus表中的,这个一旦发送到客户的帐户上去。那么意味着别人拿到了这个编码,也不能使用这个编码进行抵扣。另外一种ecshop红包就是线下发送的。当你得到这个编码,在红包的有效期内,可以使用该红包。      我们必须知道,ecshop的红包编码是有问题的。我们看flow.php      if (((!empty($bonus) && $bonus[‘user_id’] == $_SESSION[‘user_id’]) || ($bonus[‘type_money’] > 0 && empty($bonus[‘user_id’]))) && $bonus[‘order_id’] <= 0)        这一句表示,就算是该编码没被使用。只要是发到个人帐户去之后。即使你登陆了,也不能通过这个编码来进行使用,所以这就是一大问题。       其次,我们看ecshop红包的编码生成机制。       $num = $db->getOne(“SELECT MAX(bonus_sn)…
2025-04-23 阅读全文 →
FWQ
网站开发
ecshop后台通过ajax搜索原理
ecshop的搜索其实是功能十分强大的,但是ecshop搜索功能前台和后台还不大一样,前台主要是通过get方式,提交的url进行分页,而在ecshop的后台,则是接受表单的搜索条件,然后通过js发布到ajax.最后又通过ecshop的ajax将结果返回.然后在显示最后的搜索结果.    我们来举个例子,具体分析下ecshop后台通过ajax方式来进行搜索.    比如我们通过ecshop后台的ajax方式来搜索退换货订单    1:必须在htm中增增加以下搜索框,订单号 <input type=”text” name=”order_sn” size=”15″ />    2:html中的ajax可以写成以下格式        listTable.filter[‘order_sn’] = Utils.trim(document.forms[‘searchForm’].elements[‘order_sn’].value);        listTable.filter[‘page’] = 1;         listTable.loadList();      我们可以看到以下,就是通过listTable.loadList();来触发ajax的。    3:我们再看php调用。   $result…
2025-04-23 阅读全文 →
FWQ
网站开发
让ecshop用户名和email都可以登陆!
让ecshop用户名和email都可以登陆! 在最近的几次开发案例中, 客户经常提到使自己的网站能够用email登陆. 确实,自2005年,web2.0兴起以来,越来越多的网站,尤其是新兴网站,大多是用email登陆的. 用email登陆,好处很明显. 1:可以促使用户填写真实的email. 2:不易忘记. 下面的改动,可以使ecshop用email,用户名都可以完成登陆. —————————分割线—————————– 改动版本: ecshop 2.7.0 改动程序: /includes/modules/integrates/integrate.php 改动代码:145—162行的用户登陆函数.如下       function login($username, $password)     {         if ($this->check_user($username, $password) > 0)…
2025-04-23 阅读全文 →