ecshop解决方案

合集下载

ECShop功能介绍

ECShop功能介绍

指导老师:黄华毕业学校:清远职业技术学院ECShop简介是Comsenz公司推出的一款B2C独立网店系统,现已出售给ShopEX的开发商上海商派网络科技有限公司。

适合企业及个人快速构建个性化网上商店。

系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。

ECShop悉心听取每一位商家的需求与建议,不仅设计了人性化的网店管理系统帮助商家快速上手,还根据中国人的购物习惯改进了购物流程,实现更好的用户购物体验。

经过近两年的发展,ECShop网店系统无论在产品功能、稳定性、执行效率、负载能力、安全性和SEO支持(搜索引擎优化)等方面都居国内同类产品领先地位,成为国内最流行的购物系统之一。

ECShop功能介绍1. 灵活的模版机制ECShop开发了独有的高效模板引擎(2.15以前版本使用smarty模板引擎),并结合了Dreamweaver的模板和库功能,使得编辑制作模板变得更简单。

2. 开放的插件机制支付、配送,会员整合都是以插件形式实现。

商家可以随时增加或变更的支付方式和配送体系。

ecshop支持大部分php开发的论坛系统,包括discuz,phpwind 等,只需在后台做简单参数配置,即可完成会员整合。

3. 功能 AJAX 化ECSHOP 使用目前流行的 AJAX 技术,批量数据编辑变得更迅速,方便。

4. 促销功能ECSHOP提供了积分、红包、赠品,夺宝奇兵等多种促销方法。

5. 高效率的代码和执行性能通过优化代码与数据库结构,配合ecshop独家设计的缓存机制,在不考虑网速的情况下,网店动态页面与纯静态页面访问速度相当。

6. 常规功能的更完善实现针对常规功能尤其是后台管理和购物流程,ECShop进行了更简洁的设计,实现更好的用户体验。

7. 搜索引擎优化在 SEO (搜索引擎优化)上,ECShop独家支持两种 URL 重写方式,并且是同类软件中第一家支持 google/ yahoo / microsoft 三家共同发布的 sitemaps 0.9 网站索引规范,能够为站点被搜索引擎收录做到最大限度的支持和帮助。

网上商城解决方案

网上商城解决方案

网上商城解决方案一、概述网上商城解决方案是一种基于互联网平台的电子商务解决方案,旨在帮助企业建立和运营在线商城,实现商品的线上销售和交易。

本文将详细介绍网上商城解决方案的功能模块、技术架构、用户体验等方面的内容。

二、功能模块1. 用户管理模块用户管理模块用于管理商城的注册用户信息,包括用户的基本信息、登录账号、密码等。

用户可以通过该模块进行注册、登录、修改个人信息等操作。

2. 商品管理模块商品管理模块用于管理商城中的商品信息,包括商品的分类、品牌、属性、价格等。

商家可以通过该模块进行商品的发布、编辑、删除等操作,用户可以通过该模块进行商品的搜索、浏览、购买等操作。

3. 订单管理模块订单管理模块用于管理用户的订单信息,包括订单的生成、支付、发货、退款等。

商家可以通过该模块查看订单状态、处理退款申请等,用户可以通过该模块查看订单详情、申请退款等。

4. 购物车模块购物车模块用于管理用户的购物车信息,用户可以将感兴趣的商品添加到购物车中,随时查看购物车中的商品、修改商品数量等。

5. 支付模块支付模块用于处理用户的支付请求,支持多种支付方式,如支付宝、微信支付等。

用户可以通过该模块选择支付方式、输入支付信息完成支付操作。

6. 物流模块物流模块用于处理订单的物流信息,包括订单的配送、跟踪、签收等。

用户可以通过该模块查询订单的物流状态、预计到达时间等。

7. 评价模块评价模块用于用户对购买的商品进行评价,用户可以对商品的质量、服务等方面进行评价,并分享自己的购物体验。

三、技术架构网上商城解决方案的技术架构主要包括前端开发、后端开发和数据库三个部分。

1. 前端开发前端开发主要使用HTML、CSS、JavaScript等技术,负责实现网页的布局、样式和交互效果。

通过前端开发,用户可以直观地浏览商品、下单购买等。

2. 后端开发后端开发主要使用Java、Python等编程语言,负责处理用户的请求、数据的存储和业务逻辑的处理。

解决ECshop实现URL重写伪静态和全静态

解决ECshop实现URL重写伪静态和全静态

ECshop 2.7.2实现简单URL重写-伪静态及全静态* 一、找到Apache 服务器1、首先您需要找到Apache 安装目录,之后找到conf 目录下的httpd.conf 文件。

2、将下面的代码复制到httpd.conf 文件中,注意将/ecshop 替换为您的商店的实际安装目录。

<Directory /ecshop>Options FollowSymLinksAllowOverride All</Directory>3、在httpd.conf 中搜索LoadModule rewrite_module,将该行前面的# 号删除。

如果您的Apache 是1.3.x版本还需要查找AddModule mod_rewrite.c,请将前面的#删除。

4、保存httpd.conf。

5、将ecshop 目录下的htaccess.txt 重命名为.htaccess。

(windows下用记事本打开然后另存为为.htaccess 。

)6、重新启动Apache。

7、进入ecshop 管理中心->商店设置,将URL 简单重写设置为启用。

如果您想通过httpd.conf 来设置重写规则,请按照下面的步骤操作:1、执行上面第1-3步操作。

2、找到您的商店所在的虚拟主机段,如:DocumentRoot "D:/php/xampp/htdocs"## Each directory to which Apache has access can be configured with respect# to which services and features are allowed and/or disabled in that# directory (and its subdirectories).## First, we configure the "default" to be a very restrictive set of# features.3、将下面的内容加入在此段代码后面。

ecshop优化之Robots设置技巧

ecshop优化之Robots设置技巧

ecshop优化之Robots设置技巧使用过ecshop的朋友都会知道ECSHOP有严重的重复收录过多的问题,很多朋友的网站实际产品加文章数量仅仅1000来个,查询链接居然有3,4千,google甚至会有上万。

重复链接因为Title一样,所以常常会被搜索引擎惩罚导致收录差,对于这个问题,SEOer们是必须要解决的,以下发表ecshop模板堂ecshop模板堂的解决经验,欢迎点评。

分析会有哪些重复链接产生1.就ecshop模板堂使用的情况,首先是产品页和文章页会有很多的页面以 ?from=rss 结束如 /goods-1.html?from=rss这个的解决方法有二,一是通过删除rss信息订阅功能,二是Robots设置ecshop模板堂ecshop模板堂选择的是第二种所以ecshop模板堂在Robots里加了一条禁止搜索引擎索引的语句:Disallow: /*rss*这句的意思是只要根目录下的链接带“rss”就不索引,除非你的网站会有带页面地址里正好出现rss这连续三个子母,这个语句都可以解决这个问题。

2.分类页里的动态链接分类页里充斥了大量的动态链接包括属性筛选的链接排序的链接显示方式的链接接下来ecshop模板堂们逐一击破首先是属性筛选的链接如/category-1-min80-max90-attr0.html这个是筛选里面的价格的筛选包括其他属性的链接,ecshop模板堂们发现规律就是都会出现“min” “max” “attr”三个词,分别是最小,最大,属性值和上面的,ecshop模板堂们在Robots加了一跳禁止抓取包括这三个词的语句:Disallow: /*min*Disallow: /*max*Disallow: /*attr*然后,排序的链接和显示方式的链接ecshop模板堂们点击后同样会出现类似一长串,其中仍然包括“min” “max” “attr”三个词因而上面Robots的设置已经可以解决这样就完了吗?没有,虽然ecshop模板堂们设置了Robots的抓取,但为了让蜘蛛爬行更方面直接,ecshop模板堂们需要做另外一个工作,就是限制爬行找到模板文件里对应的属性筛选和产品列表的模板文件(ecshop 模板堂自己的是cat_filter.lbi和goods_list.lbi)找到属性筛选、排序、显示方式的链接代码,在其里增加一句rel=”nofollow”,意思就是限制爬行robots的作用在于禁止抓取,而nofollow则在于禁止爬行,双管齐下很好的引导了蜘蛛和搜索引擎3.其它的一些重复动态链接ecshop模板堂ecshop模板堂发现的其它重复链接还包括品牌商品里的显示方式如ecshop模板堂在Robots同样加了三句Disallow: /*min*Disallow: /*max*Disallow: /*attr*就解决了不同显示方式还有不同链接的重复收录问题以上ecshop模板堂所提到的并未包含所有的动态链接,但给大家做了一个不错的参考,因为万变不离其宗,朋友们可以依据ecshop模板堂提到的方法和思路慢慢的把自己的Robots写完整,同时适当的使用nofollow在模板里限制蜘蛛的爬行注意的是对于已经收录了大量的重复链接,您进行以上提到的修改,搜索引擎并不能快速做出反应,对待新的页面会限制收录重复页面,但对于已经收录的重复链接,搜索引擎需要花了一段时间取消收录而重新收录主页面,ecshop模板堂的经验是至少需要2个月。

ECshop 功能实现方案

ECshop 功能实现方案

ECSHOP功能实现方案源码用途阐述:创建一个淘宝代购平台向俄罗斯人提供淘宝浏览和代购服务主要功能实现:邮件注册邮件登陆,汇率查询和换算功能,一键填单(快捷购物)插件,google翻译浏览。

支付方式。

城市设定,费用计算公式。

google翻译浏览:用户输入俄语关键词搜索,出现相应的搜索结果并同时体现俄文,案例如下:中文:裤子俄语:брюки出现如下结果:/search-poisk-na-russkom?word=%D0%B1%D1%80%D1%8E%D0%BA %D0%B8点击商品链接:全部是通过谷歌自动翻译的。

邮件注册邮件登陆:用户只能注册邮件格式的用户名,并以邮件为用户名登陆网站(网上有类似的插件)。

/goods.php?id=46汇率查询和换算功能:这个功能需要在后台修改卢布和人民币的汇率,前台显示当天的汇率并提供一个类似换算计算器功能,用户填写人民币自动转换成卢布。

演示:支付方式:支付方式只能选择预存款支付。

一键填单(快捷购物)(方案一):用户自行填写要购买商品的链接、数量、颜色、规格、型号、备注信息。

递交给后台一键填单(方案二)通过一键填单插件,用户输入谷歌翻译过的商品链接,由插件自动采集到商品图片信息,价格信息,名称信息。

/translate_c?act=url&hl=en&ie=UTF8&prev=_t&rurl=tran &sl=zh-CN&tl=ru&u=/item.htm%3Fid%3D14217694831% 26ad_id%3D%26am_id%3D%26cm_id%3D%26pm_id%3D%26tbpm%3D2&usg=ALkJrhiAPjzMbGQ o9Rv6ylvZ_LrxN3fGkQ一键填单(方案三)如果能保证用户无论用哪款浏览器浏览到的结果都是这种形式能够体现出真是的淘宝连接地址:则可以使用现有的一键填单插件,演示如下:来实现下单功能。

ecshop适应在PHP7的修改方法解决报错的实现

ecshop适应在PHP7的修改方法解决报错的实现

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 = '';var $queryLog = array();var $max_cache_time = 300; // 最⼤的缓存时间,以秒为单位var $cache_data_dir = 'temp/query_caches/';var $root_path = '';var $error_message = array();var $platform = '';var $version = '';var $dbhash = '';var $starttime = 0;var $timeline = 0;var $timezone = 0;// 事务指令数protected $transTimes = 0;var $mysql_config_cache_file_time = 0;var $mysql_disable_cache_tables = array(); // 不允许被缓存的表,遇到将不会进⾏缓存function __construct($dbhost, $dbuser, $dbpw, $dbname = '', $charset = 'gbk', $pconnect = 0, $quiet = 0){$this->cls_mysql($dbhost, $dbuser, $dbpw, $dbname, $charset, $pconnect, $quiet);}function cls_mysql($dbhost, $dbuser, $dbpw, $dbname = '', $charset = 'gbk', $pconnect = 0, $quiet = 0){if (defined('EC_CHARSET')){$charset = strtolower(str_replace('-', '', EC_CHARSET));}if (defined('ROOT_PATH') && !$this->root_path){$this->root_path = ROOT_PATH;}if ($quiet){$this->connect($dbhost, $dbuser, $dbpw, $dbname, $charset, $pconnect, $quiet);}else{$this->settings = array('dbhost' => $dbhost,'dbuser' => $dbuser,'dbpw' => $dbpw,'dbname' => $dbname,'charset' => $charset,'pconnect' => $pconnect);}}function connect($dbhost, $dbuser, $dbpw, $dbname = '', $charset = 'utf8', $pconnect = 0, $quiet = 0){if ($pconnect){$this->link_id = new mysqli('p:'.$dbhost, $dbuser, $dbpw);if ($this->link_id->connect_error){if (!$quiet){$this->ErrorMsg("Can't pConnect MySQL Server($dbhost)!");}return false;}}else{$this->link_id = new mysqli($dbhost, $dbuser, $dbpw);if ($this->link_id->connect_error){if (!$quiet){$this->ErrorMsg("Can't Connect MySQL Server($dbhost)!");}return false;}}$this->dbhash = md5($this->root_path . $dbhost . $dbuser . $dbpw . $dbname);$this->version = $this->link_id->server_version;/* 对字符集进⾏初始化 */$this->link_id->set_charset($charset);$this->link_id->query("SET sql_mode=''");$sqlcache_config_file = $this->root_path . $this->cache_data_dir . 'sqlcache_config_file_' . $this->dbhash . '.php';@include($sqlcache_config_file);$this->starttime = time();if ($this->max_cache_time && $this->starttime > $this->mysql_config_cache_file_time + $this->max_cache_time){if ($dbhost != '.'){$result = $this->link_id->query("SHOW VARIABLES LIKE 'basedir'");$row = $result->fetch_array(MYSQLI_ASSOC);$result->free();if (!empty($row['Value']{1}) && $row['Value']{1} == ':' && !empty($row['Value']{2}) && $row['Value']{2} == "/"){$this->platform = 'WINDOWS';}else{$this->platform = 'OTHER';}}else{$this->platform = 'WINDOWS';}if ($this->platform == 'OTHER' &&($dbhost != '.' && strtolower($dbhost) != 'localhost:3306' && $dbhost != '127.0.0.1:3306') ||date_default_timezone_get() == 'UTC'){$result = $this->link_id->query("SELECT UNIX_TIMESTAMP() AS timeline, UNIX_TIMESTAMP('" . date('Y-m-d H:i:s', $this->starttime) . "') AS timezone");$row = $result->fetch_array(MYSQLI_ASSOC);$result->free();if ($dbhost != '.' && strtolower($dbhost) != 'localhost:3306' && $dbhost != '127.0.0.1:3306'){$this->timeline = $this->starttime - $row['timeline'];}if (date_default_timezone_get() == 'UTC'){$this->timezone = $this->starttime - $row['timezone'];}}$content = '<' . "?php\r\n" .'$this->mysql_config_cache_file_time = ' . $this->starttime . ";\r\n" .'$this->timeline = ' . $this->timeline . ";\r\n" .'$this->timezone = ' . $this->timezone . ";\r\n" .'$this->platform = ' . "'" . $this->platform . "';\r\n?" . '>';@file_put_contents($sqlcache_config_file, $content);}/* 选择数据库 */if ($dbname){if ($this->link_id->select_db($dbname) === false ){if (!$quiet){$this->ErrorMsg("Can't select MySQL database($dbname)!");}return false;}else{return true;}}else{return true;}}function select_database($dbname){return $this->link_id->select_db($dbname);}function set_mysql_charset($charset){if (in_array(strtolower($charset), array('gbk', 'big5', 'utf-8', 'utf8'))){$charset = str_replace('-', '', $charset);}$this->link_id->set_charset($charset);}function fetch_array($query, $result_type = MYSQLI_ASSOC){$row = $query->fetch_array($result_type);$query->free();return $row;}function query($sql, $type = ''){if ($this->link_id === NULL){$this->connect($this->settings['dbhost'], $this->settings['dbuser'], $this->settings['dbpw'], $this->settings['dbname'], $this->settings['charset'], $this->settings['pconnect']); $this->settings = array();}if ($this->queryCount++ <= 99){$this->queryLog[] = $sql;}if ($this->queryTime == ''){if (PHP_VERSION >= '5.0.0'){$this->queryTime = microtime(true);}else{$this->queryTime = microtime();}}/* 当当前的时间⼤于类初始化时间的时候,⾃动执⾏ ping 这个⾃动重新连接操作 */if (time() > $this->starttime + 1){$this->link_id->ping();}if (!($query = $this->link_id->query($sql)) && $type != 'SILENT'){$this->error_message[]['message'] = 'MySQL Query Error';$this->error_message[]['sql'] = $sql;$this->error_message[]['error'] = $this->link_id->error;$this->error_message[]['errno'] = $this->link_id->errno;$this->ErrorMsg();return false;}if (defined('DEBUG_MODE') && (DEBUG_MODE & 8) == 8){$logfilename = $this->root_path . DATA_DIR . '/mysql_query_' . $this->dbhash . '_' . date('Y_m_d') . '.log'; $str = $sql . "\n\n";if (PHP_VERSION >= '5.0'){file_put_contents($logfilename, $str, FILE_APPEND);}else{$fp = @fopen($logfilename, 'ab+');if ($fp){fwrite($fp, $str);fclose($fp);}}}return $query;}function affected_rows(){return $this->link_id->affected_rows;}function error(){return $this->link_id->error;}function errno(){return $this->link_id->errno;}function result($query, $row){$query->data_seek($row);$result = $query->fetch_row();$query->free();return $result;}function num_rows($query){return $query->num_rows;}function num_fields($query){return $this->link_id->field_count;}function free_result($query){return $query->free();}function insert_id(){return $this->link_id->insert_id;}function fetchRow($query){return $query->fetch_assoc();}function fetch_fields($query){return $query->fetch_field();}function version(){return $this->version;}function ping(){return $this->link_id->ping();}function escape_string($unescaped_string){return $this->link_id->real_escape_string($unescaped_string);}function close(){return $this->link_id->close();}function ErrorMsg($message = '', $sql = ''){if ($message){echo "<b>DTXB info</b>: $message\n\n<br /><br />";//print('<a href="/?type=mysql&dberrno=2003&dberror=Can%27t%20connect%20to%20MySQL%20server%20on" target="_blank">/</a>');}else{echo "<b>MySQL server error report:";print_r($this->error_message);//echo "<br /><br /><a href='/?type=mysql&dberrno=" . $this->error_message[3]['errno'] . "&dberror=" . urlencode($this->error_message[2]['error']) . "' target='_blank'>/</a>"; }exit;}/* 仿真 Adodb 函数 */function selectLimit($sql, $num, $start = 0){if ($start == 0){$sql .= ' LIMIT ' . $num;}else{$sql .= ' LIMIT ' . $start . ', ' . $num;}return $this->query($sql);}function getOne($sql, $limited = false){if ($limited == true){$sql = trim($sql . ' LIMIT 1');}$res = $this->query($sql);if ($res !== false){$row = $res->fetch_row();$res->free();if ($row !== false){return $row[0];}else{return '';}}else{return false;}}function getOneCached($sql, $cached = 'FILEFIRST'){$sql = trim($sql . ' LIMIT 1');$cachefirst = ($cached == 'FILEFIRST' || ($cached == 'MYSQLFIRST' && $this->platform != 'WINDOWS')) && $this->max_cache_time;if (!$cachefirst){return $this->getOne($sql, true);}else{$result = $this->getSqlCacheData($sql, $cached);if (empty($result['storecache']) == true){return $result['data'];}}$arr = $this->getOne($sql, true);if ($arr !== false && $cachefirst){$this->setSqlCacheData($result, $arr);}return $arr;}function getAll($sql){$res = $this->query($sql);if ($res !== false){$arr = $res->fetch_all(MYSQLI_ASSOC);$res->free();return $arr;}else{return false;}}function getAllCached($sql, $cached = 'FILEFIRST'){$cachefirst = ($cached == 'FILEFIRST' || ($cached == 'MYSQLFIRST' && $this->platform != 'WINDOWS')) && $this->max_cache_time; if (!$cachefirst){return $this->getAll($sql);}else{$result = $this->getSqlCacheData以上就是⼩编为⼤家带来的ecshop适应在PHP7的修改⽅法解决报错的实现全部内容了,希望⼤家多多⽀持~。

ECShop网店系统优化方案浅谈

ECShop网店系统优化方案浅谈

ECShop网店系统优化方案浅谈来源:合肥发票对于ecshop优化,本人的资历着实很浅,几个月的使用经验,现在就开始发表长篇大论,有些惭愧。

不过,点滴的积累,还是让小站上了一个台阶,SEO归根节底是“30%的技巧+70%的执行”,就像夫唯YY签名上写的“将执行力做到极致”。

由于以前的公司比较讲究流程化,我养成了记录工作日志的习惯,有2个文档,其一为每日的工作完成情况,其二为每日的优化效果,此帖就是把两篇文档进行一个汇总,操作及优化效果相结合。

相信有很多朋友都在用ecshop,如果本人有参考作用,本人荣幸之至。

一、首页优化1、教程区里怎么选择关键字就不说了;在案例分析区,如何修改title和版权的方式,前辈们已经讲述的很详细了,本人也照例做了修改。

2、url标准化,统一使用这样的形式,集中权重。

3、404、301不再详述。

4、搜索框下面的热门关键词,这里可以罗列一些关键词,如下图:5、增加次导航6、增加百度分享7、在模板文件夹的index_ad.lbi文件中,将主页的flash删除,改为图片超链接8、修改模板文件index.dwt、category_tree.lbi等(几乎所有模板文件都要进行修改),将相对地址改为绝对地址。

(感谢海南的冏/love冏的提醒)9、静态化。

我是后来才做的静态化,一天之内收录翻了一番。

二、产品列表页优化1、产品列表页面除了也要进行地址绝对化以外,还有一点比较重要,比如网站首页title是“礼品网站_北京礼品公司-##商城”,列表页title设置为"月饼礼盒_月饼礼券-##商城",可显示的时候,就变成了“月饼礼盒_月饼礼券-##商城_礼品网站_北京礼品公司-##商城”。

网站所有列表页面都成为了这样长的title,让人苦恼,不过方法总是有的。

2、记得在后台设置分类商品的筛选属性,这样可以达到聚合的效果,老师反复的强调聚合的作用,确实很强大。

不过ecshop的聚合页面也有他自己的问题,就是所有的聚合页面标题都是一样的,我找到了一个‘简单粗暴’的方式,可以修改聚合页面的title,不过还很粗糙,大家根据需要可以加以修改。

ecshop网站优化方案

ecshop网站优化方案

网站优化方案首先、网店标题完全DIY自定义,抛弃Ecshop系统按照:[产品名称]_[分类名]_[网店名称]-Powered by ECShop这样的自动title方法1、优化title标题的原理分析:咱们都知道,titile,kewords,description在SEO中的基础性和重要性,但是EC官方给出的titile实现方法会导致很多类似或相同的页面title雷同,另外还有部分页面无法自定义kewords和description。

在此本人给出了完全自定义的方法,你只需参照本文的方法就可以轻松搞定。

2、涉及修改的页面和内容:文章页,文章分类页、品牌页,商品页,商品分类页,品牌页(增加title,keywords和description):商城根目录\brand.php、商城根目录\admin\brand.php、商城根目录\admin\templates\brand_info.htm商品页(增加title):商城根目录\goods.php、商城根目录\admin\goods.php、商城根目录\admin\templates\goods_info.htm商品分类页(增加title):商城根目录\category.php、商城根目录\admin\category.php、商城根目录\admin\templates\category_info.htm文章页面(增加title):商城根目录\article.php、商城根目录\admin\article.php、商城根目录\admin\templates\article_info.htm文章分类页(增加title):商城根目录\article_cat.php、商城根目录\admin\articlecat.php、商城根目录\admin\templates\articlecat_info.htm3、修改方法:咱们就拿商品祥细页来修改举例,其它页面以此类推:首先修改数据库结构增加cat_title字段进入后台》数据库管理》SQL查询,输入下面SQL语句,点“提交查询”ALTER TABLE `ecs_category` ADD `cat_title` VARCHAR( 255 ) NOT NULL AFTER `cat_desc` ;在admin/templates/category_info.htm中修改,<tr><td class="label">{$lang.keywords}:</td><td><input type="text" name="keywords" value='{$cat_info.keywords}' size="50"></td></tr>在以上代码的上方增加下列代码:<tr><td class="label">自定义TITLE:</td><td><input type="text" name="cat_title" value='{$cat_info.cat_title}' size="50"></td></tr>打开admin/category.php搜索下面代码$cat['cat_desc'] = !empty($_POST['cat_desc']) ? $_POST['cat_desc'] : '';一共能找到两处,在每处的下面都要新增加一行代码$cat['cat_title'] = !empty($_POST['cat_title']) ? $_POST['cat_title'] : '';到此后台功能就完成了修改前台程序文件category.php将下列代码return $GLOBALS['db']->getRow('SELECT cat_name, keywords, cat_desc, style, grade, filter_attr, parent_id FROM ' . $GLOBALS['ecs']->table('category') .修改为:return $GLOBALS['db']->getRow('SELECT cat_name, cat_title, keywords, cat_desc, style, grade, filter_attr, parent_id FROM ' . $GLOBALS['ecs']->table('category') .继续搜索将$smarty->assign('page_title', $position['title']);修改为$smarty->assign('page_title', $cat['cat_title'] ? $cat['cat_title'] : $position['title']);通过以上步骤的修改,商品祥细页的title就实现了自定义了,现在你可以完全按照你的想法来自定义你的商品祥细页的title了。

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

ecshop,解决方案篇一:ecshop开发-多货币解决方案多货币解决方案要在后台清除缓存才行1.在数据库里的表ecs_shop_config插入INSERT INTO `ecs_shop_config` (`id` ,`parent_id` ,`code` ,`type` ,`store_range` ,`store_dir` ,`value` ,`sort_order`)VALUES (NULL , '1', 'rate', 'text', '', '', '1,,,,', '1' ),NULL , '1', 'ybprice_format', 'text', '', '', '&%s', '1'),(NULL , '1', 'aprice_format', 'text', '', '', 'EUR%s', '1'),(NULL , '1', 'cprice_format', 'text', '', '', '¥%s', '1'),(NULL , '1', 'aoprice_format', 'text', '', '', 'AU%s', '1');2.在/languages/zh_cn/admin/shop_下添加$_LANG['cfg_name']['rate'] = '货币汇率';$_LANG['cfg_name']['ybprice_format'] = '英镑格式';$_LANG['cfg_name']['aprice_format'] = '欧元格式$_LANG['cfg_name']['cprice_format'] = '人民币格式';$_LANG['cfg_name']['aoprice_format'] = '澳元格式';如图并且添加下面的帮助信息$_LANG['cfg_desc']['rate'] = '输入规则按照和美元的汇率进行出入Us,EURP,BriishPound,China,Austriliar';$_LANG['cfg_desc']['ybprice_format'] = '显示英镑格式,%s将被替换替换为相应的价格。

'; $_LANG['cfg_desc']['aprice_format'] = '显示欧元格式,%s将被替换替换为相应的价格。

'; $_LANG['cfg_desc']['cprice_format'] = '显示人民币格式,%s将被替换替换为相应的价格。

'; $_LANG['cfg_desc']['aoprice_format'] = '显示澳元格式,%s将被替换替换为相应的价格。

';3.在themes/当前使用的模板文件夹/library/page_的合适位置添加美元人民币欧元英镑澳元4.在/includes/最后面添加//路径处理$url_this = "http://".$_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF']."?id=".@$_GET['i d']; $smarty->assign("url_head",$url_this);$currency = @$_GET['currency'];if($currency!=""){$_SESSION['currency'] = $currency;}if($_SESSION['currency'] == ''){$_SESSION['currency'] = 'USD';}5.在/includes/lib_找到这个函数price_format并且按下面的进行修改/*** 格式化商品价格** @access public* @paramfloat$price 商品价格* @return string*/function price_format($price, $change_price = true){$currency = $_SESSION['currency'];$rate = explode(',',$GLOBALS['_CFG']['rate']);if($currency == 'USD'){$price = $price*$rate[0];}if($currency == 'CNY') {$price = $price*$rate[3]; }if($currency == 'EUR') {$price = $price*$rate[1]; }if($currency == 'GBP') {$price = $price*$rate[2]; }if($currency == 'AUD') {$price = $price*$rate[4]; }if ($change_price && defined('ECS_ADMIN') === false){switch ($GLOBALS['_CFG']['price_format']){case 0:$price = number_format($price, 2, '.', '');break;case 1: // 保留不为 0 的尾数$price = preg_replace('/(.*)(\\.)([0-9]*?)0+$/', number_format($price, 2, '.', ''));if (substr($price, -1) == '.') '\1\2\3', {$price = substr($price, 0, -1);}break;case 2: // 不四舍五入,保留1位$price = substr(number_format($price, 2, '.', ''), 0, -1); break;case 3: // 直接取整$price = intval($price);break;case 4: // 四舍五入,保留 1 位$price = number_format($price, 1, '.', '');break;case 5: // 先四舍五入,不保留小数$price = round($price);break;}}else{$price = number_format($price, 2, '.', '');}switch ($currency){case 'USD':return sprintf($GLOBALS['_CFG']['currency_format'], $price); break;case 'CNY':return sprintf($GLOBALS['_CFG']['cprice_format'], $price); break;case 'EUR':return sprintf($GLOBALS['_CFG']['aprice_format'], $price); break;case 'GBP':return sprintf($GLOBALS['_CFG']['ybprice_format'], $price); break;case 'AUD':return sprintf($GLOBALS['_CFG']['aoprice_format'], $price); break;}}篇二:ECSHOP设计方案ECSHOP 管理中心设计方案1. 设计概要1. 为了提高代码的重用性,每一个功能模块都在一个文件中完成。

使用act参数来传递用途2. 管理员登录登录1. 登录界面增加CAPTCHA图片2. 允许保存登录信息起始页留言:商品统计信息:系统信息:备注:3. 获取gd版本的部分可以抽象为一个函数。

返回值建议为0,1,2。

分别表示不支持,GD1,GD2。

4. 当没有留言的时候不输出留言的列表框。

点击留言的标题查看留言的详细内容。

留言当管理员有未阅读的留言式提示使用javascript提醒。

未读留言确定条件:receiverid=userid and readed=0 and deleted =0。

管理中心的每一个页面都包含如下的代码:在?act=js中检查是否存在未读留言,如果有则写出一个浮动的层。

反之不做处理。

功能概述实现管理中心用户间相互发送留言 1. 能显示用户未阅读的留言 2. 列出用户所有收到的留言 3. 列出用户所发留言数据表设计表message发送留言1. 留言表单需要填写内容1) 接收用户,列表框选择管理员(可选择多个管理员)2) 留言标题3) 留言内容 2. 前台验证内容 3. 接收用户不能为空4) 留言标题不能为空 5) 标题不能超过50备注:6) 在message表中插入一条记录。

相关文档
最新文档