分类归档

网站开发

FWQ
网站开发
ecshop源码分析-ecshop二次开发
ecshop源码分析-ecshop二次开发 Ecshop包括的文件夹有admin、api、cert、data、images、includes、js、languages、plugins、temp、theme、wap、widget这些文件夹,和根目录下的所有.php文件。这些文件和文件夹组成了整个ecshop。如果从软件工程角度分析ecshop的话,ecshop的二级可以看成admin和前台两个部分。admin主要是面向服务端的,而前台是面向客户端的,这是这两个部分的最明显的差别。下面给出ecshop的二级流程图:   此二级流程图给出了admin模块、前台显示模块和数据库模块之间的一个关系。从上面的图示可以看出,admin模块要对数据库进行读和写,这里的读和写组成了整个的后台的管理,包括商品的增加和删减、留言的管理、订单的处理等等。前台模块也要对数据库进行读和写,它的读写主要是完成交易的过程,写的内容基本都是和商品数量、点击数量这些在商品交易中一定要改变的数字。在admin模块也可以对前台显示部分进行写,这个写的过程主要是完成前台显示方式的改变,比如admin模块可以选择模板;同样也可以改变每个小模块在某个页面中是否显示,以及显示的位置(如果显示)。   Images文件夹: 这个文件夹下有子文件夹,在这些子文件夹下面存放着当前网站商品的原始图片和缩略图。这些子文件夹命名有规律的,它们的文件名是它们目录下商品加入的年月份。也就是说在同一个月份加入的商品,它们的图片是在同一个文件夹下的,且这个文件夹的名字就是当前的年月份。后台每添加一个带图片的商品,这边都会在某个文件夹下出现提交图片的副本。 Data文件夹: 这个文件夹是包括一些固定的数据,比如固定的配置、图片等等。在data这个文件夹下的config.php记录了数据库的一些固定的信息,afficheimg文件夹下存放这首页最中间的flash的图片源。实现将afficheimg文件夹下的图片加载到首页的flash中是通过文件夹flashdata下面文件夹dynfocus中的javascript来实现的。文件夹brandlogo下存放这有品牌商品的公司的logo,另外文件夹captcha下存放这验证码的背景图片。 Theme文件夹: 页面的显示是有theme这个文件夹全权负责的。而这些准备的数据是怎么在theme下的.dwt中显示的呢?数据是通过smarty加载进去的。在根目录下每个.php文件中都会有类似$smarty->assign(’page_title’, $position[‘title’]);这样的句子,这样page_title在对应的dwt文件中就可以作为一个变量使用了。这样就将php文件很dwt文件很好的结合好了。 下面稍微说一下dwt这个文件。这个文件中大部分的信息是自动生成的。在dwt文件中都会看到这样的块,这个快就是用来确定每个模块显示的位置的,如果在后台将某个模块选择显示在“左边区域”,那么这个模块的代码会在上面的这个区域生成。当然在dwt文件中我们也会到处看到这里面的代码全都是自动生成的,要改也只能该.lbi文件。还有就是在出现之前,这两个标志之间不能直接编辑代码,要加入自己的代码必须要在和下一个BeginLibraryItem之前插入。 程序: 程序主要是包括(这里说的是关于前台的)根目录下的所有的php脚本、includes,js文件夹,这些所有的脚本完成了前台显示的数据准备。所以它们在整个ecshop的结构中占着相当重要的地位,对ecshop的修改也主要集中在这些脚本中,这些脚本的具体分析会在后期中一一给出。 在上一篇中给大家带来了ecshop的总体的框架。从总体上看ecshop,相信大家的思路应该很清楚。作为一个对开源项目修改者你来说,能对ecshop有个初步的了解就行了,下面我会给大家带来我在修改ecshop的过程中的一些体会。 记得在上一篇中我们聊到了Adobe的模板。下面我们来根据ecshop跟大家讨论一下模板。说到模板,这就是ecshop前台显示的主要文件,如果你能很好理解theme下模板文件和样式表文件,对于ecshop前台显示应该没有任何问题了。Ecshop中页面到底是怎么显示的呢?这个问题我们先放在一边,我们先研究一下ecshop是怎么将一系列从数据库中读取出来,然后传到显示页面中的。要解决这个问题我们要用根目录下的index.php和theme/default下的index.dwt来作为用例。之所以用对应的两个文件夹,是因为在index.dwt中要显示的数据是通过smarty从index.php中加载进来的。在index.php中有如下代码: $position = assign_ur_here();$smarty->assign('page_title', $position['title']); // 页面标题$smarty->assign('ur_here', $position['ur_here']); // 当前位置  首先它是调用函数assign_ur_here,这样得到了变量$position,在变量$position中有title和ur_here这两个变量。在index.dwt中会有如下代码:  …
2025-04-23 阅读全文 →
FWQ
网站开发
如何修改ECSHOP后台管理中心的Title信息
下图中红色圈定的部分就是本次修改要改的地方 修改方法其实很简单的: 打开语言包文件  /languages/zh_cn/admin/common.php   将 $_LANG[‘app_name’] = ‘ECSHOP’; $_LANG[‘cp_home’] = ‘ECSHOP 管理中心’; 修改为 $_LANG[‘app_name’] = ‘ECSHOP120.com’; $_LANG[‘cp_home’] = ‘ECSHOP120.com 管理中心’;
2025-04-23 阅读全文 →
FWQ
网站开发
ECshop数据库条数多庞大的简单优化
ECshop是个不错的系统,但是它有一定漏洞,若是访问量巨大的话,大量的访问统计代码会存入数据库的ecs_stats表中,甚至几天就可以达到几百兆,严重的网站直接就崩溃了。数据备份的时候也有很多不便,官方并没有给出很好的解决方案,用户可以在商店设置里关闭统计,或者设置统计时间为一个月,这样来达到一个控制该表数据的目的。ECSHOP统计还是有点用的,但是统计功能造成数据表过大也是个问题,推荐采用以下命令清空ecs_stats数据表。 操作方法是在ECshop后台数据库管理——SQL查询中输入如下代码提交即可,之后该表就会被清空。 TRUNCATE TABLE `ecs_stats`;
2025-04-23 阅读全文 →
FWQ
网站开发
将ecshop会员注册页的E-MAIL由必填项改为非必填项
将ecshop会员注册页的E-MAIL由必填项改为非必填项 以下修改是 ECSHOP2.7.1版 官方默认模板基础上做的修改,其他版本或其他模板,大同小异。 1、 打开 user_passport.dwt 文件 将 onblur=”checkEmail(this.value);” 删除 并将 <span id=”email_notice” style=”color:#FF0000″> *</span> 也删除 2、 打开 js/user.js 文件,找到 register() 函数部分 将(大概在466行左右,这里千万别找错地方) if (email.length == 0)…
2025-04-23 阅读全文 →
FWQ
网站开发
ecshop适应在PHP7的修改方法解决报错
ecshop这个系统,到目前也没见怎么推出新版本,如果是新项目,不太建议使用它。不过,因为我一直以来都在使用中,所以不得不更改让其适应PHP新版本。现在PHP 7已经出发行版了,所以更改来继续使用吧。具体的更改有以下方面: (1)将mysql扩展的使用替换掉,改为使用mysqli或pdo: 从php5.5开始,mysql扩展将废弃了。 具体更改的文件在于includes/cls_mysql.php。这是个不小的工程,文件代码太长…… if (!defined('DITAN_ECS')) { die('Hacking attempt'); } class cls_mysql { var $link_id = NULL; var $settings = array(); var $queryCount = 0; var $queryTime…
2025-04-23 阅读全文 →
FWQ
网站开发
ecshop的{$user_info.username}在首页显示登录用户的信息
在ecshop中,{$user_info.username}是一个动态获取用户登录信息的函数,而且{$user_info.username}还要配合着{if}判断语句来使用,因为{$user_info.username}只是一个获取登录用户的用户名,所以必须要来判断用户是否已经登录了。     下面请看一个例子: {if $user_info} <font style=”position:relative; top:10px;”> {$lang.hello},<font class=”f4_b”>{$user_info.username}</font>, {$lang.welcome_return}! <a href=”user.php”>{$lang.user_center}</a>|  <a href=”user.php?act=logout”>{$lang.user_logout}</a> </font> {else}  {$lang.welcome}&nbsp;&nbsp;&nbsp;&nbsp;  <a href=”user.php”><img src=”images/bnt_log.gif” /></a>  <a href=”user.php?act=register”><img src=”images/bnt_reg.gif” /></a> {/if}…
2025-04-23 阅读全文 →
FWQ
网站开发
在ECSHOP首页显示各等级会员价格的方法
在ECSHOP首页显示各等级会员价格 注意:以下操作尽量不要使用记事本来编辑,尤其是使用UTF-8编码的朋友们。 以下修改以官方默认模板为例: 1、 打开includes/lib_goods.php 搜索 $goods[$idx][‘url’]          = build_uri(‘goods’, array(‘gid’ => $row[‘goods_id’]), $row[‘goods_name’]); 一共能搜索到四处,在每一处的后面都加上下面代码(注意是每一处哦,这样写对新手朋友来说比较容易操作)   /* 会员等级价格 */    $sql = “SELECT rank_id, IFNULL(mp.user_price, r.discount…
2025-04-23 阅读全文 →
FWQ
网站开发
修改ecshop让vip会员才可以货到付款
  打开 /flows.php 文件 找到下面这行代码 $payment_list = available_payment_list(1, $cod_fee); 将它替换修改为 $flag_hdfk_wwwzuimobancom=0;  if ($_SESSION[‘user_id’] > 0 and $_SESSION[‘user_rank’] == 2)  {   $flag_hdfk_wwwzuimobancom=1;  }     $payment_list = available_payment_list($flag_hdfk_wwwzuimobancom, $cod_fee); 注意上面代码中的…
2025-04-23 阅读全文 →
FWQ
网站开发
如何在ECSHOP商品详情页显示同类别下的推荐商品
问题描述: 商品列表页顶部有一个“精品推荐”,但是在商品详情页默认是没有的, 我想在商品详情页也显示该商品所属类别下的“精品推荐”,该如何修改呢?? 修改方法: 注:以下修改方法是在ECSHOP 2.7.2 版 官方默认模板基础上实施的。 第一步:  修改 goods.php 程序文件 找到下面这行代码 $smarty->assign(‘goods_rank’,          get_goods_rank($goods_id));                       // 商品的销售排名 然后再这行代码下面增加两行 $children = get_children($goods[‘cat_id’]);   $smarty->assign(‘best_goods’,      get_category_recommend_goods(‘best’, $children)); 第2步: 修改模板文件 /themes/default/goods.dwt 找到…
2025-04-23 阅读全文 →
FWQ
网站开发
解决ecshop偶尔读不出来配置文件(shop_config.php)
问题:以前一个客户的网站 老是出现 $data 未定义。导致整站致命错误!后 经过分析,他IDC问题,导致文件shop_config.php写入失败。数据大小为0。从而影响整站不能访问!这种错误是很致命的! 解决办法: 打开lib_base.php 查找include_once($cache_file_path);在其后加入一行代码  $data = !empty($data)?$data:false;   动态 的意思是 在读取 配置缓存文件失败的情况下 程序会直接读取数据库记录 并 重新生成 配置缓存文件。 这样就解决了 配置缓存文件不稳定而引起的一系列致命错误
2025-04-23 阅读全文 →