ecmall开发记录

合集下载

Ecmall 模板对应表

Ecmall 模板对应表

Ecmall 模板对应表index.php?app=apply&step=2&id=12010-10-27 17:19:22| 分类:php | 标签:ecmall|举报|字号订阅特殊项:用户中心左侧导航:frontend.base.php(增删导航可以在这里改 DW中大约561-760行)apply.index.html 申请开店页article.index.html 文章分类列表页(包括商城公告、商城公告及其他自建分类)article.view.html 文章详情页buyer_order.cancel.html 买家取消订单页buyer_order.confirm.html 买家确认收货页buyer_order.evaluate.html 买家给卖家评价页buyer_order.index.html 买家订单列表页buyer_order.view.html 买家订单详情页cart.empty.html 购物车为空cart.index.html 购物车列表页cashier.payform.html 处理支付信息页cashier.payment.html 选择支付方式页category.goods.html 商品分类页category.store.html 店铺分类页common.export.html 导出数据(商品、商品分类、店铺分类、地区)页common.import.html 导入数据(商品、商品分类、店铺分类、地区)页curlocal.html 当前位置footer.html 商城页脚friend.form.html 添加好友页friend.index.html 好友列表页header.html 商城、用户中心页头index.html 商城首页login.html 登录页member.email.html 用户中心修改Email页member.header.html 用户中心页头member.index.html 用户中心首页member.menu.html 用户中心左侧导航菜单member.page.bottom.html 用户中心底部分页导航member.page.top.html 用户中心顶部分页导航member.password.html 修改密码页member.profile.html 修改个人资料member.register.html 用户注册页member.submenu.html 用户中心右侧顶部菜单message.box.html 短消息收件箱、发件箱页message.html 提示信息页message.send.html 短消息发送页message.view.html 查看短消息页my_address.form.html 新增、编辑我的地址页my_address.index.html 我的地址列表页my_category.form.html 新增、修改商品分类页my_category.index.html 商品分类列表页my_favorite.goods.index.html 商品收藏列表页my_favorite.store.index.html 店铺收藏夹列表页my_goods.batch.html 商品批量编辑页my_goods.form.html 新增、编辑商品页my_goods.index.html 商品列表页my_navigation.form.html 新增、编辑导航页my_navigation.index.html 导航列表页my_partner.form.html 新增、编辑合作伙伴页my_partner.index.html 合作伙伴列表页my_payment.form.html 新增、编辑支付方式页my_payment.index.html 支付方式列表页my_shipping.form.html 新增、编辑配送方式页my_shipping.index.html 配送方式列表页my_store.index.html 店铺设置页my_theme.index.html 店铺主题设置order.form.html 填写订单页order.goods.html 填写订单页配送信息order.shipping.html 填写订单页商品信息page.bottom.html 商城底部分页导航page.top.html 商城顶部分页导航page.top2.html 文章列表页顶部分页导航paynotify.index.html 支付成功通知页search.goods.html 商品搜索列表页search.store.html 店铺搜索列表页seller_order.adjust_fee.html 卖家订单费用调整页seller_order.cancel.html 卖家取消订单页seller_order.confirm.html 卖家确认订单页(货到付款交易)seller_order.finished.html 卖家完成订单页seller_order.index.html 卖家订单列表seller_order.received_pay.html 卖家确认收到货款seller_order.shipped.html 卖家发货页seller_order.view.html 卖家订单详情页themesstoredefault 店铺默认模板文件所在目录------------------------------------------------------------------------------------------------------------------------comments.html 店铺信用评价页及商品详情页评价footer.html 店铺页脚ments.html 商品评价页goods.index.html 商品详情页goods.saleslog.html 商品详情页销售记录goodsinfo.html 商品详情页商品信息header.html 店铺页头left.html 店铺左侧page.bottom.html 店铺底部分页导航saleslog.html 销售记录页store.article.html 店铺导航文章页store.credit.html 店铺信用评价页store.index.html 店铺首页store.search.html 商品列表页themesmallresource 商城页面所在目录avatar.html 用户头像breadcrumbs.html 当前位置custom_module.html 首页自定义模块cycleimage.html Flash 轮播goods_category.html 首页的分类树goods_filter.html 商品筛选器模板goods_list.html 商品列表模板group_buy.html 首页及商品列表页面团购部分模板groupbuy_list.html 团购列表模板help_center.html 帮助文章页面latest_site_news.html 首页快讯模块latest_sold.html 首页最近成交latest_wanted.html 首页最近的求购mc_address.html 用户中心,地址页mc_credit.html 用户中心,信誉评价mc_favorite.html 用户中心,收藏夹mc_getpwd.html 用户中心,修改邮件地址mc_home.html 用户中心,欢迎页mc_login.html 登陆页面mc_menu.html 用户中心,左侧菜单mc_message.html 用户中心,我的留言mc_order_detail.html 用户中心,订单详情mc_order_view.html 用户中心,订单列表mc_post_wanted.html 用户中心,求购mc_profile.html 用户中心,个人资料mc_register.html 注册mc_repwd.html 用户中心,修改密码mc_storeapply.html 店铺申请页面mc_wanted_view.html 求购列表message.html 报错信息页面message_list.html 店铺中留言列表no_goods_module.html 首页及商品列表页面团购部分模板page_footer.html 商城页脚page_header.html 商城页首partner.html 友情链接recommended_brand.html 推荐品牌recommended_goods.html 推荐商品recommended_store.html 推荐店铺search_form.html 搜索栏search_hot.html 热门搜索shipping_payment_contents.html 支付配送页面shopping_cart_form.html 购物车shopping_order_pay.html 支付页面shopping_order_review.html 订单确认页面shopping_page_header.html 购物流程shopping_pay_form.html 支付完成site_news.html 快讯文章store_breadcrumbs.html 当前位置store_footer.html 店铺页脚store_header.html 店铺页首store_list.html 店铺列表store_search_form.html 店铺搜索wanted_detail.html 求购详情页面wanted_filter.html 求购搜索模块wanted_list.html 求购列表wanted_my_other.html 其他求购模块wanted_userinfo.html 求购中的用户头像------------------------------------------------- themesstoreresource 店铺页面所在目录act_detail.html 团购模块avatar.html 店主头像credit.html 店铺信用custom_module.html 自定义商品模块goods_bought_history.html 购买历史模块goods_category.html 分类模块goods_comment.html 商品留言模块goods_compatible.html 适配商品模块goods_detail.html 商品详细描述goods_info.html 商品信息goods_list.html 商品列表goods_similar.html 详细商品模块groupbuy_info.html 团购商品信息groupbuy_join.html 参加团购页面groupbuy_log.html 已参加团购的用户guestbook.html 店铺留言introduction.html 店铺简介notice.html 店铺通知partner.html 店铺友情链接store_article.html 团购活动模块store_category.html 店铺分类store_group_goods.html 店铺团购商品store_new_goods.html 新品模块store_recommended_goods.html 推荐商品store_search.html 店铺搜索栏store_title.html 店铺横幅tag_relative.html 标签模块userinfo.html 店主信息。

ecm方法

ecm方法

ecmall方法文档ecmall/eccore /ecmall.php常量:define('START_TIME', ecm_microtime());/* 判断请求方式*/define('IS_POST', (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST'));//判断请求方式是不是post传来的./* 判断请求方式*/define('IN_ECM', true);/* 定义PHP_SELF常量*/define('PHP_SELF', htmlentities(isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']-));/* 当前ECMall程序版本*/define('VERSION', '2.2 beta');/* 当前ECMall程序Release */define('RELEASE', '20091230');类ECMall方法startup(config = array())类object方法_error($msg,$obg = '')has_error()//检测是否存在错误get_error()//获取错误列表类Lang方法&get($key='')//获取指定键的语言项load($lang_file)//加载指定的语言至全局语言数据中fetch($lang_file)//获取一个语言文件的内容lang_file($file)类Conf方法load($conf)get($key = '')&v($is_new = false, $engine = 'default')//获取试图连接&m($model_name, $params = array(), $is_new = false)//获取一个模型&bm($model_name, $params = array(), $is_new = false)//获取一个业务模型c(&$app)//获取当前控制器实例&cc()import()//导入一个类strtokey($str,$owner = '')//将default.abc类的字符串转为$default['abc'];trace($var)//跟踪调试dump($arr)//rdump的别名rdump($arr)//格式化显示出变量vdump(arr)//格式化并显示出变量类型&db()//创建MySQL数据库对象实例get_domain()//获得当前的域名size_url()//获得网站的URL地址sub_str($string, $length = 0, $append = true)//截取UTF-8编码下字符串的函数real_ip()//获得用户的真实IP地址is_email($user_email)//验证输入的邮件地址是否合法is_time($time)//检查是否为一个合法的时间格式gd_version()获得服务器上的GD 版本addslashes_deep($value)//递归方式的对变量中的特殊字符进行转义addslashes_deep_obj($obj)//将对象成员变量挥着输注的特殊字符进行转义stripslashes_deep($value)//递归方式的对变量中的特殊字符进行转义make_semiangle($str)//将一个字符中含有拳脚的数字字符/字母/空格或'%+-()'字符转换为响应半角字符format_fee($fee)//格式化费用:可以输入数字或百分比的地方compute_fee($amount,$rate,$type)//根据总金额和费率计算费用real_server_ip()//获取服务器的IPget_crlf()//获取用户操作系统的换行符;ecm_iconv($source_lang, $target_lang, $source_string = '')//编码转换函数ecm_json_encode($value)ecm_josn_decode($value,type = 0)get_object_vars_deep($obj)//返回由对象属性著称的关联数组file_ext($filename)db_create_in($item_list,$field_name = '')//创建像这样的查询:"IN('a','b')"ecm_mkdir($absolute_path, $mode = 0777)//创建目录(如果该目录的上级目录不存在,会先创建上级目录),依赖于ROOT_PATH 常量,且只能创建ROOT_PATH 目录下的目录目录分隔符必须是/ 不能是\ecm_rmdsir($dir)//删除目录,不支持目录中带..price_format($price, $price_format = NULL)ecm_setcookie($key, $value, $expire = 0, $cookie_path=COOKIE_PATH, $cookie_domain=COOKIE_DOMAIN)//设置cookieecm_getcookie($key = '')//获取COOKIE的值ecm_iconv_deep($source_lang,$target_lang,$value)//对数组转码ecm_fopen($url, $limit = 500000, $post = '', $cookie = '', $bysocket = false, $ip = '', $timeout = 15, $block = true)//fopen封装函数html_filter($html)//危险HTML 过滤器clean_cache()//清理系统所有编译器文件,缓存文件,模板结构数据trim_right($str)//去掉字符串右侧可能出现的乱码_at($fun)//通过该函数运行函数可以抑制错误outer_call($func, $params=null)//调用外部函数reset_error_handler()is_from_browser()//返回是否是通过浏览器访问的页面ecm_define($source)//从文件或数组中定义常量ecm_microtime()//获取当前的微秒数ecmall/eccore/model/model.base.php//除本基类文件外,所有的模型类的类名的构造规则应该是模型名(首字母大写)+model 组成,文件名必须是模型名+.model组成如有一个用户模型,模型名为user,则其文件名应为user.model.php,类名为UserModel类:BaseModel extends Obiect属性:var $db = null;/* 所映射的数据库表*/var $table = '';/* 主键*/var $prikey= '';/* 别名*/var $alias = '';/* 模型的名称*/var $_name = '';/* 表前缀*/var $_prefix = '';/* 数据验证规则*/var $_autov = array();/* 查询统计*/var $_last_query_count = -1;/* 临时保存已删除的数据*/var $_dropped_data = array();/* 关系(定义关系时,只有belongs_to以及has_and_belongs_to_many需要指定reversevar $_relation = array();方法:__construct($params,$db)BaseModel($params,$db)getName()//获取模型名称get($params)//获取单一一条记录get_unfo($id)//根据ID取得信息find($params = array())//根据一定条件找出相关数据(不连接其他模型,直接通过JOIN 语句来查询)findAll($params = array())//关联查找关于多对多关系的记录getRelatedDate($relation_name, $ids, $find_param = array())//获取一对多,多对多的关联数据add($data, $compatible = false)添加一条记录createRelation($relation_name, $id, $ids)//添加多对多关联的中间表关系数据updateRelation($relation_name, $id, $ids, $update_values)//更新多对多关系中的关系数据unlinkRelation($relation_name, $conditions, $ids = null)//去除多对多的关联连接_relationLink($action,$relation_name,$id,$ids,$update_values = array())//多对多关联表操作edit($conditions, $edit_data)//简化更显操作drop($conditions, $fields = '')简化删除记录操作dropDependentData($keys)//删除依赖数据_getExtLimit($ext_limit, $alias = null)//获取扩展限制getDroppedDate()//获取实时保存的已删除记录getCount()//获取统计数_saveDroppedDate($sql)//临时保存已删除的记录数据_updateLastQueryCount($sql)//更新查询统计数_getConditions($conditions,$if_add_alias = false)//获取条件语段_getSetFields($date)//获取设置字段getRealFields($src_fields_list)//获取查询时的字段列表_getFieldTable($owner)//解析字段所属_getInsertInfo($data)//获取插入的数据的sql_valid($data)//验证数据合法性,当时验证vrule中指定的字段,并且只当$date中这支了其值是才验证_initFindParams($params)_joinModel(&$table,$join)//按指定的方式LEFT,JOIN指定关系的表_getHoinString($relation_info)getRelation($relation_name = null)//获取关系信息getRelationByType($relation)assemble($relation_name,$assoc_date,$pri_date)dateEnough($date)getRequiredFields()//获取必须的字段列表* 用于统计*/function getOne($sql){return $this->db->getOne($sql);}function getRow($sql){return $this->db->getRow($sql);}function getCol($sql){return $this->db->getCol($sql);}function getAll($sql){return $this->db->getAll($sql);}ecmall/eccore/model/mysql.php类cls_mysql方法__construct($params,$db)cls_mysql()//db构造函数connect($dbhost, $dbuser, $dbpw, $dbname = '', $charset = 'utf8', $pconnect = 0, $quiet = 0)//连接数据库select_database($dbname)set_mysql_charset($charset)fetch_array($charset)query($sql,$type = '',$times=0)function prefix($sql){return preg_replace('/\s\`ecm_(.+?)\`([,|\s]?)/', ' ' .DB_PREFIX. '$1$2', $sql);}function affected_rows(){return mysql_affected_rows($this->_link_id);}function error(){return mysql_error($this->_link_id);}function errno(){return mysql_errno($this->_link_id);}function result($query, $row){return @mysql_result($query, $row); }function num_rows($query){return mysql_num_rows($query);}function num_fields($query){return mysql_num_fields($query);}function free_result($query){return mysql_free_result($query);}function insert_id(){return mysql_insert_id($this->_link_id); }function fetchRow($query){return mysql_fetch_assoc($query);}function fetch_fields($query){return mysql_fetch_field($query);}function version(){return $this->version;}function ping(){if (PHP_VERSION >= '4.3'){return mysql_ping($this->_link_id);}else{return false;}}function escape_string($unescaped_string){if (PHP_VERSION >= '4.3'){return mysql_real_escape_string($unescaped_string);}else{return mysql_escape_string($unescaped_string);}}function close(){return mysql_close($this->_link_id);}ErrorMsg($message = '',$sql = '')selectLimit($sql,$num,$start = 0)//仿真Adodb 函数getOne($sql,$limited = false)getOneCache($sql,$cached = 'FILEFIRST')getAll($sql)getAllWithIndex($sql_statement,$index_key)//以主键索引形式返回结果集getAllCached($sql, $cached = 'FILEFIRST')getRow($sql,$limited = false)getRowCached($sql,$cached = 'FILEFIRST')getCol($sql)getColCached($sql,$cached = 'FILEFIRST')autoExecute($table,$field_values,$mode = 'INSERT',$where = '',$querymode = '')autoReplace($table,$field_values,$update_values,$where = '',$querymode = '')setMaxCacheTime($second)getMaxCacheTime()getSqlCacheData($sql,$cached = '')//获取数据记录集缓存setSqlCacheData($result,$data)table_lastupdate($tables)//获取SQL 语句中最后更新的表的时间,有多个表的情况下,返回最新的表的时间get_table_name($query_item)set_disable_cache_tables($tables)//设置不允许缓存的表ecmall/eccore/model/template.php类ecsTemplate方法__constructecsTemplateassign($tpl_var,$value = '')display($filename,$cache_id = '')//显示页面函数display_cache()//显示缓存数据fetch($filename,$cache_id = '')//处理模板文件make_compiled($filename)//编译模板函数fetch_str($source)is_cached($filename,cache_id = '')select($tag)//处理()标签get_val($val)//处理smarty标签中的变量标签make_var($val)//处理去掉$的字符&get_tempalte_vars($name = null)_compile_if_tag($tag_args,$elseif = false)_compile_foreach_start($tag_args)push_vars($key,$val)//将foreach的key,item放入临时数组pop_vars()//弹出临时数组的最后一个_compile_smarty_ref(&$indexes)//处理smarty揩油的预定义变量Java_script($args)//脚本标签style($args)//样式标签smarty_prefilter_preCompile($source)//替换模板中图片路径url_rewrite($arr)// 返回URL重写后的字符串/* 处理动态模板*/insert_mod($name)//处理动态内容str_trim($str)//处理'a=b c=d k=f'类字符串,返回数组_eval($content)_require($filename)_html_options($arr)display_widgets($arr)html_radion($arr)html_checkbox($arr)html_page_links($arr)_init_page_param($arr)html_page_selector($arr)html_page_simple($arr)html_img_yesorno($arr)html_sort_link($arr)cycle($arr)image($arr)make_array($arr)smarty_create_pages($pagams)get_custom_model($id,$dir)//获取自定义模块get_lang($key)//编译时解析语言_sprintf($arr)//解析sprinf标签ecmall/eccore/model/template.php控制器基础类BaseApp extends Object方法_constructBaseAppdo_actionindexassign($k, $v = null)//给视图传递变量display($n)//显示视图_init_view()//初始化视图连接_config_view()//配置视图_run_action()//运行动作_init_session()//初始化Session_get_run_time($precision = 5)//获取程序运行时间destruct()//控制器结束运行后执行import_from_csv($filename,$header = true,$from_charset = '',$to_charset = '',$delimiter = ',')export_to_csv($data,$filename,$to_charset = '')//导出csv文件_replace_special_char($str,$replace = true)ecmall/eccore/model/message.base.php消息接收方法_trigger_message($arr)show_message($msg)show_warning($msg)_message($msg,$type)exception_handler($errno,$errstr,$errfile,$errline)put_log($err,$msg,$file,$line)//写入log文件类Message extends MessageBase方法_construct($str='',$errno=null)Message($str,$errno = null)handle_meassage($msg)report_link($err,$msg,$file,$line)//生成bug报告连接add_link($text,$href='javascript:history.back()')//添加一个连接到消息页面display()//显示消息页面。

ecmall使用手册

ecmall使用手册
上传ECMall 2.0
将upload下的所有文件夹用FTP工具上传到您的网站空间,如果您需要整合UCenter,则需要将intergrate目录和uc_client目录上传到您网站空间根目录下,如果您需要安装初始化测试数据,则需要将initdata上传到网站空间根目录下。
修改权限
将上传的data目录和temp及external/widgets目录属性设为777,windows主机用户设为来宾帐户可读可写可修改即可。
上传之后,广告图片就会显示在这里了。公告栏里面的公告是在后台添加的,由于我们在这里添加了测试数据,因此会有公告显示,不装测试数据的话是没有的。公告文章的添加会在后面讲到。
接下来添加品牌挂件,点击挂件列表中的品牌区,会出现品牌挂件,放在了默认挂件位置,这里同样是由于安装了测试数据因此有品牌数据,如果没有安装的话品牌列表是空的。
商品分类
商品分类可以实现对商品的分类管理,商品分类如图:
通过商城后台→商品→分类管理可以对商品进行分类管理,同店铺分类一样,商品分类也是管理,新增,导出,导入四个部分,操作与上面雷同,不再详述。
如果分类较多,也可以导入一个CSV文件来批量添加分类,商品分类的CSV文件可以到ECMall论坛上去下载,下载地址:
一级菜单和二级菜单的介绍如上图所示,本文以后对菜单的操作将直接用商城后台→一级菜单→二级菜单,这样的方式来介绍菜单操作。
在进入商城后台后,首先要对商城做一些必要设置来保证商城可以运作,首先就是要安装支付方式。
启用支付方式
启用支付方式是商城设置中最基本的一项工作,如果没有安装支付方式店铺就无法发布商品。启用支付方式很简单,我们通过商城后台→设置→支付方式,右边会出现支付方式列表,如图:

ECMall二次开发文档ecmall模板教程

ECMall二次开发文档ecmall模板教程

ECMall二次开发文档-ecmall模板教程ECMall模板开发文档前言欢迎阅读ECMall模板制作教程,通过阅读本教程可快速上手ECMall模板的使用和制作。

ECMall模板制作要求用户具备XML、XHTML和CSS基础知识;至少掌握一种文本编辑器或网页制作工具(如:EditPlus,Dreamweaver,Textmate等);本教程还将及一些模板代码,如从没有了解过Smarty建议阅读Smarty帮助手册。

第一节-ECMall模板机制介绍通过阅读本节你将了解:1.ECMall模板的组成和机构2.ECMall模板机制工作原理ECMall页面模板由布局(layout)、模块(module)、皮肤(skin)组成,所有模板文件都保存在ECMall根目录的themes目录下,其中两个目录mall和store,mall 目录包含了商城的所有布局、模块、皮肤,store目录包含了店铺所有布局、模块、皮肤,两个目录的结构是完全一样。

下面首先介绍mall目录下的结构。

mall目录包括layout、resource、skin三个目录,其用途分别为:•Layout目录-用于存放layout文件。

layout目录下的每个子目录里存放的是某一个页面的layout文件(layout目录介绍请见附表1),如homepage目录就是商城首页的布局目录,里面有一个yout文件这就是商城首页的布局文件,在这个目录里可以存在多个布局文件,布局文件是一个标准的XML文档,你只需要写简单的几个标签(以下称为布局描述语言)描述整个页面的布局架构,在以后的章节会详细介绍布局文件的制作方法。

•resource目录-用于存放内容模块文件。

模块是由布局文件调用的,内容是HTML或模板代码组成,在以后的章节会详细介绍模块制作方法。

•skin目录-存放皮肤,目录中每个目录对应一个skin,如default是ECMall默认皮肤,其中包括了CSS 文件,和图片以及JS文件,在以后的章节会详细介绍皮肤制作方法。

ECMall2.x模板制作入门系列之2(模板标签 语法)

ECMall2.x模板制作入门系列之2(模板标签 语法)

该url标签,只有当后台开启伪静态并在.htaccess文件为 目标页面设置了伪静态规则时url标签才能解析为静态url 地址。 实例:{url app=goods&id=$goods_id}解析后如果伪静态 成功则返回"goods/19"
include标签 功能: Include 标签用于在当前模板中包含其它模板. 当前模板中的变量在被 包含的模板中可用. 必须指定 file 属性,该属性指明模板资源的位 置.实例:
2.自定义变量 从php赋值变量: 例如在调用该模板的app程序文件中进行赋值
复制内容到剪贴板 代码:
//在app/default.app.php文件的index方法中$this->display 前添加赋值语句 $this->assign('name', 'Tom'); //普通变量 $this->assign('user', array( 'name' => 'Tom', 'age' => '28' )); //数组变量 $this->display('index.html'); 在themes/mall/default/index.html中显示变量
模板代码:
Hello,{$name},your age are {$user.age}! 在模板中赋值变量:
assign标签 例在themes/mall/default/index.html中赋值变量
模板代码:
{assign var="name" value="Tom"} Hello,{$firstname}!

ECMall模块开发指南

ECMall模块开发指南

ECMall2.0模块开发指南Copyright©shop 本文档面向程序开发者及爱好者文档历史日期版本作者描述2009/8/19 1.0Garbin Huang创建文档前言本文档主要面向有一定程序基础的开发人员和技术爱好者,旨在帮助其快速入门ECMall V2.0的模块开发。

通过阅读本文档,您还可以了解到模块的开发规范,快速地制作出符合规范的模块。

阅读本文档需要您具备一定的PHP编程基础,特别是面向对象的编程知识,如“类”,“对象”,“派生”等概念,并且需要您对ECMall2.0的系统结构,Smarty模板的使用有一定的了解。

目录前言 (2)目录 (3)1.模块的定义 (4)1.1.什么是模块 (4)1.2.模块的意义 (4)1.3.模块的适用范围 (4)2.模块的基本构成 (4)2.1.模块的文件构成 (4)2.2.模块的代码构成 (5)3.模块实例分析 (5)3.1.创建一个模块 (5)3.2.实现主体代码 (6)3.3.实现安装和卸载 (9)3.4.使用和调试 (10)4.发布和分享 (10)1.模块的定义1.1.什么是模块模块是一个在代码层面独立于主体程序的程序代码,其为主体程序提供额外的功能补充,其拥有独立的前后台控制器,模板,语言包,安装,卸载程序,其是一个建立在主体程序平台上的应用。

如果ECMall是一个操作系统,那么模块就相当于运行在这个操作系统上的第三方应用,如“迅雷”,“QQ”等。

1.2.模块的意义使用模块有利于您独立新增的功能代码的管理维护和分享,并且有利于您对您系统中各功能模块的管理(比如您可以随时方便地开启和关闭功能模块),更重要的是使用模块可以帮助您在不对主体程序进行任何修改的情况下完成一个相对复杂的相对独立的新功能(如果结合插件和挂件,您将可以完成更加复杂的功能模块,不再受相对独立的限制)。

1.3.模块的适用范围相对独立的功能比较适合使用模块来实现,但不限于此,在配合插件和挂件的情况下,您完全可以制作出与系统其他功能紧密相连的应用。

ecmall数据库表结构全面讲解

ecmall数据库表结构全面讲解

ecmall数据库表结构全面讲解/*-------------------------------------------------------------------------*/ecm_store 店铺Store_id IDStore_name 名称Owner_name 店主名Owner_card 信用卡号Region_id 地区IDRegion_name 地区名Address 地址Zipcode 邮编Tel 电话Sgrade 级别Apply_remark ??Credit_value 信用值Praise_rate 好评率Domain 域名State 状态Close_reason 关闭原因Add_time 添加时间End_time 接受时间Certification 认证Sort_order 排序Recommended 推荐Theme 皮肤Store_banner 广告Store_logo LOGODescription 描述Image_1 图片1Image_2 图片2Image_3 图片3Im_qq QQIm_ww WWIm_msn MSN/*-------------------------------------------------------------------------*/ecm_sgrade 店铺级别Grade_id IDGrade_name 店铺名称Goods_limit 商品限制Space_limit 空间限制Skin_limit 皮肤限制Charge 费用Need_confirm 验证Description 描述Functions 功能Skins 皮肤Sort_order 排序/*-------------------------------------------------------------------------*/ecm_article 文章Code 代号Title 标题Cate_id 文章分类IDStore_id 店铺IDLink 链接Content 内容Sort_order 排序If_show 显示Add_time 发表时间/*-------------------------------------------------------------------------*/ecm_acategory 文章分类cate_id 分类IDcate_name 分类名parent_id 父级分类IDsort_order 排序code 代号/*-------------------------------------------------------------------------*/ecm_address 用户地址addr_id 地址IDUser_id 用户IDConsignee 收货人Region_id 地区IDRegion_name 地区Address 地址Zipcode 邮编Phone_tel 电话Phone_mob 手机/*-------------------------------------------------------------------------*/ecm_attribute 属性Attr_id 属性IDAttr_name 属性名Input_mode 输入方式Def_value 防御值/*-------------------------------------------------------------------------*/ecm_brand 品牌Brand_id 品牌IDBrand_name 品牌名称Brand_logo 品牌LOGOSort_order 排序Recommended 推荐Store_id 店铺IDIf_show 显示Tag 标签/*-------------------------------------------------------------------------*/ecm_cart 购物车Rec_id 记录IDUser_id 用户IDSession_id SESSStore_id 店铺IDGoods_id 商品IDGoods_name 商品名称Spec_id 规格IDSpecification 规格Price 价格Quantity 数量Goods_image 商品图片/*-------------------------------------------------------------------------*/ecm_category_goods 搜索商品分类Cate_id 分类IDGoods_id 商品ID/*-------------------------------------------------------------------------*/ecm_category_store 搜索店铺分类Cate_id 分类IDStore_id 店铺ID/*-------------------------------------------------------------------------*/ecm__collect 收藏User_id 用户IDType 类型Item_id 项目IDKeyword 关键字Add_time 发布时间/*-------------------------------------------------------------------------*/ecm_coupon 优惠券Coupon_id 优惠券IDStore_id 店铺IDCoupon_name 优惠券名称Coupon_value 优惠券面值Use_times 使用时间Start_time 开始时间End_time 结束时间Min_amount 最低使用条件If_issue 是否使用/*-------------------------------------------------------------------------*/ecm_coupon_sn 优惠券登记Coupon_sn 登记串号Coupon_id 优惠券IDRemain_times 使用次数/*-------------------------------------------------------------------------*/ecm__friend 好友Owner_id 主人IDFriend_id 好友IDAdd_time 添加时间/*-------------------------------------------------------------------------*/ecm_function 功能Func_code 功能代号Func_name 功能名车privileges 权限/*-------------------------------------------------------------------------*/ecm__gcategory 商品分类Cate_id 分类IDStore_id 店铺IDCate_name 分类名称Parent_id 父级分类IDSort_order 排序If_show 显示/*-------------------------------------------------------------------------*/ecm_goods 商品Goods_id 商品IDStore_id 店铺IDType 材料Goods_name 商品名Description 描述Cate_id 分类IDCate_name 分类名称Brand 品牌Spec_qty 规格数量Spec_name_1 规格名1Spec_name_2 规格名2If_show 显示Closed 下架Close_reason 下架原因Add_time 添加时间Last_update 最后更新Default_spec 默认规格Default_image 默认图片Recommended 推荐Cate_id_1 分类1Cate_id_2 分类2Cate_id_3 分类3Cate_id_4 分类4Price 价格Tags 标签/*-------------------------------------------------------------------------*/ecm_goods_attr 商品属性Gattr_id IDGoods_id 商品IDAttr_name 属性名Attr_value 属性值Attr_id 属性IDSort_order 排序/*-------------------------------------------------------------------------*/ecm_goods_image 商品图片Image_id 图片IDGoods_id 商品IDImage_url 图片地址Thumbnail 图片小样Sort_order 排序File_id 文件ID/*-------------------------------------------------------------------------*/ecm_goods_qa 商品咨询Ques_id 咨询IDQuestion_content 咨询能容User_id 用户IDStore_id 店铺IDEmail EMAILItem_id 项目IDItem_name 项目名Reply_content 回复内容Time_post 发送时间Time_reply 回复时间If_new 显示Type 类型/*-------------------------------------------------------------------------*/ecm_goods_spec 商品规格Spec_id 规格IDGoods_id 商品IDSpec_1 规格1Spec_2 规格2Color_rgb 颜色Price 价格Stock 库存Sku 统一编号/*-------------------------------------------------------------------------*/ecm_goods_statistics 商品统计数据Goods_id 商品IDViews 浏览Collects 收藏Carts 购物车Orders 订单Sales 金额Comments 注释/*-------------------------------------------------------------------------*/ecm_groupbuy 团购Group_id IDGroup_name 名称Group_desc 描述Start_time 开始时间End_time 结束时间Goods_id 商品IDStore_id 店铺IDSpec_price 规格价格Min_quantity 起团量Max_per_user 限购量State 状态Recommended 推荐Views 访问量/*-------------------------------------------------------------------------*/ecm_groupbuy_log 团购日志Group_id IDUser_id 用户IDUser_name 用户名Quantity 数量Spec_quantity 规格数量Linkman 联系人Tel 电话Order_id 订单IDAdd_time 添加时间/*-------------------------------------------------------------------------*/ecm_mail_queue 邮件队列Queue_id IDMail_to 收件人Mail_encoding 编码GBK?UTFMail_subject 主体Mail_body 内容Priority 优先级Err_num 错误数Add_time 发送时间Lock_expiry 终止时间/*-------------------------------------------------------------------------*/ecm_member 会员User_id IDUser_name 用户名Email EMAILPassword 密码Real_name 姓名Gender 性别Birthday 生日Phone_tel 电话Phone_mob 手机Im_qq QQIm_msn MSNIn_skype SKYPEIm_yahoo YHIm_aliww 阿里旺旺Reg_time 注册时间Last_login 最后登录时间Last_ip 最后登录IPLogins 登录次数Ugrade 级别Portrait 头像Outer_id 登出IDActivation 激活Feed_config 订阅配置/*-------------------------------------------------------------------------*/ecm_message 信息Msg_id IDFrom_id 发件人To_id 收件人Title 标题Content 内容Add_time 发送时间Last_update 最后更新时间New 最新?Parent_id 父级IDStatus 状态/*-------------------------------------------------------------------------*/ecm_module 模块Module_id IDModule_name 模块名Module_version 模块版本Module_desc 模块描述Modul_config 模块配置Enabled 能否使用/*-------------------------------------------------------------------------*/ecm__navigation 导航Nav_id IDType 区域Title 标题Link 链接Sort_order 排序Open_new 打开/*-------------------------------------------------------------------------*/ecm_order 订单Order_id IDOrder_sn 串号Type 材料Extension 订单来源Seller_id 卖家IDSeller_name 卖家名称Buyer_id 买家IDBuyer_name 买家名称Buyer_email 买家邮箱Status 状态Add_time 添加时间Payment_id 支付IDPayment_name 支付名称Payment_code 支付代号Out_trade_sn 交易串号Pay_time 支付时间Pay_message 支付信息Ship_time 发货时间Invoice_no 发票编号Finished_time 完成时间Goods_amount 商品费用Discount 折扣Order_amount 订单费用Evaluation_status 支付状态Evaluation_time 支付时间Anonymous 匿名Postscript 电报信息/*-------------------------------------------------------------------------*/ecm_order_extmOrder_id IDConsignee 收货人Region_id 地区IDRegion_name 地区名Address 地址Zipcode 邮编Phone_tel 电话Phone_mod 手机Shipping_id 邮递IDShipping_name 邮递名Shipping_fee 邮递费用/*-------------------------------------------------------------------------*/ecm_order_goodsRec_idOrder_idGoods_idGoods_nameSpec_idSpecificationPriceQuantityGoods_imageEvaluationCommentCredit_valueIs_valid/*-------------------------------------------------------------------------*/ecm_order_log 订单日志Log_id IDOrder_id 订单IDOperator 操作者Order_status 订单状态Changed_status 改变状态Remark 标记Log_time 日志时间/*-------------------------------------------------------------------------*/ecm_pageview 页面访问Rec_id 记录IDStore_id 店铺IDView_date 访问日期View_times 访问次数/*-------------------------------------------------------------------------*/ecm_partner 合作伙伴Partner_id IDStore_id 店铺IDTitle 标题Link 链接Logo LOGOSort_order 排序/*-------------------------------------------------------------------------*/ecm_payment 支付方式Payment_id IDStore_id 店铺IDPayment_code 支付代号Payment_name 支付名称Payment_desc 支付描述Config 配置Is_online 线上支付Enabled 使用Sort_order 排序/*-------------------------------------------------------------------------*/ecm_privilege 权限Priv_code 权限代号Priv_name 权限名称Parent_code 父级代号Owner 拥有者/*-------------------------------------------------------------------------*/ecm_recommend 推荐Recom_id IDRecom_name 名称Store_id 店铺ID/*-------------------------------------------------------------------------*/ecm_recommend_goods 推荐商品Recom_id IDGoods_id 商品IDSort_order 排序/*-------------------------------------------------------------------------*/ecm_region 地区Region_id IDRegion_name 地区名Parent_id 父级IDSort_order 排序/*-------------------------------------------------------------------------*/ecm_scategory 店铺分类Cate_id IDCate_name 名称Parent_id 父级名Sort_order 排序/*-------------------------------------------------------------------------*/ecm_sessions sessionSesskey SesskeyExpiry 失效期Userid 用户IDAdminid 管理员IDIp IPData 数据Is_overflow 溢出/*-------------------------------------------------------------------------*/ecm_sessions_data sessions_dataSesskey sesskeyExpiry 失效期Data 数据/*-------------------------------------------------------------------------*/ecm_shipping 快递Shipping_id IDStore_id 店铺IDShipping_name 快递名Shipping_desc 快递描述First_price 预收Step_price 清帐Cod_regions 订单区域Enabled 使用Sort_order 排序/*-------------------------------------------------------------------------*/ecm_uploaded_file 上传文件File_id IDStore_id 店铺IDFile_type 文件类型File_size 文件大小File_name 文件名File_path 文件路径Add_time 添加时间Belong 从属Item_id 项目ID/*-------------------------------------------------------------------------*/ecm_user_coupon 用户优惠券User_id IDCoupon_sn 串号/*-------------------------------------------------------------------------*/ecm_user_priv 用户权限User_id 用户IDStore_id 店铺IDPrivs 权限/*-------------------------------------------------------------------------*/。

ecmall快速使用手册

ecmall快速使用手册

以qq为例,回调域填两个,一个链接中有mobile的,一个没有mobile的,用分号隔开。
以微信为例,回调域直接填你们网站的域名就行了。
11.模板编辑
每个模板有自己的挂件位,挂件则是在挂件位中的使用的。黄色边框就是挂件位,绿色边框 的就是选中的挂件位,点击顶部挂件列表中的挂件名,挂件将直接出现在选中挂件位中,每 个挂件的右边都有设置和删除按钮,挂件能自由拖动排布。
6.微信对接
6.1基本配置 与微信公众平台对接好后,每个用户可以生成自己的推荐公众号二维码,别的 用户扫描其二维码可以在关注公众号的同时,成为其分销者。可以通过点击在 后台生成的微信菜单,自动登陆商城(第一次需绑定商城账号)。 首先在后台找到配置的选项
在微信公众平台的开发->基本配置->服务器配置处填写好,并启用。
2.3UnionPay支付设置示例
然后按步骤将资料填好,等待他们联系你就行了。
等你和银联那边签好相关文件后,银联会向你发送一份邮件,然后按邮件里的说明,得到密钥 上传到后台相应位置就行了。
3.提现审核
审核由前台用户提交的提现申请信息,在审核完成前,这部分资金将被冻结,如果审核 通过,则去除该部分金额;如果申请被拒绝,则该部分资金将被解冻。
7.邮件服务器设置
忘记密码时,可以通过邮件找回密码,前提是需要配置好邮件服务器。首先去126申请一 个用户,然后开通smtp服务。
然后设置授权密码
后台相关位置
8.短信设置
忘记密码时,可以通过短信找回密码,前提是需要配置好短信接口信息。首先到网建平 台申请一个账号,并购买短信。
设置短信签名,签名可以为网站的名称,尽量不要出现特殊字符,否则影响短信的发送 ,如果出现个别用户收不到短信的情况,则点击网建平台的在线客服,询问是否屏蔽了 该用户的手机号。一般出现拒收1069开头的短信或者向其回复恶意内容时会被列入网 建黑名单。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ecmall开发记录(一)ecmall是一个开源的C2C网上商城系统,但是它的功能还比较不完善,ShopEx把它从康盛收购过来以后好像也有打入冷宫的意思。

不过免费的有的用就不错了,程序员的座右铭就是自己动手,丰衣足食。

我是学.NET出身,对PHP只是略知一二,无奈公司只有我一个技术,我只能自己慢慢研究啦。

首先就是打开index.php,我对php项目的第一印象就是一大堆include和require,这个无可厚非,就像我们用using一样。

然后我看到了ECMall的startup方法。

/* 启动ECMall */ECMall::startup(array('default_app' => 'default','default_act' => 'index','app_root' => ROOT_PATH . '/app','external_libs' => array(ROOT_PATH . '/includes/global.lib.php',ROOT_PATH . '/includes/libraries/time.lib.php',ROOT_PATH . '/includes/ecapp.base.php',ROOT_PATH . '/includes/plugin.base.php',ROOT_PATH . '/app/frontend.base.php',ROOT_PATH . '/includes/subdomain.inc.php',),));如此一来便知道ECMall应该是MVC设计的了。

在/app目录下的每一个*.app.php文件就是每一个控制器。

既然看到了'default_app'是'defalut',那就去找一下default.app.php,终于看到了比较靠谱的index()方法,这应该就是网站的入口了。

function index(){$this->assign('index', 1); // 标识当前页面是首页,用于设置导航状态$this->assign('icp_number', Conf::get('icp_number'));/* 热门搜索 */$this->assign('hot_keywords', $this->_get_hot_keywords());$this->_config_seo(array('title' => Lang::get('mall_index') . ' - ' . Conf::get('site_title'), ));$this->assign('page_description', Conf::get('site_description'));$this->assign('page_keywords', Conf::get('site_keywords'));$this->display('index.html');}这个index()方法分配了一堆变量,现在也不知道都有啥用,看名字差不多能知道点。

最后来了个display()方法。

对于有着几天“深厚”smarty功底的我来说,这肯定就是把变量分配到模板中了。

再去/themes/mall/default中找到了index.html文件,只看到了一堆div 和 <!--{widgets page=index area=banner}-->之类的标记。

widgets就是ECMall的挂件模块了吧,虽然用起来方便,但是二次开发起来可能会麻烦一点。

ecmall开发记录(二)ecmall基本的功能还算不错,拿过来就能用,但是老板想要加一个余额支付的功能,就是用户先把钱存到账户里,购买商品时直接用余额支付,这样可以更快回收资金。

于是这个艰巨的任务就是我来做啦。

先注册一个用户登陆进去看看,用户中心的默认app就是member.app那就去member.app.php里看看,打开一看,又是一大堆shit。

我就想先知道左边的菜单栏是如何做出来的,如图找啊找,找模板,在themes\mall\default文件夹中找到member.index.html,打开一看,里面又引用了member.header.html和member.menu.html。

打开member.menu.html,看到了这么一段<!--{foreach from=$_member_menu item=item}--><!--{if$item.submenu}--><dl><dt>{$item.text}</dt><!--{foreach from=$item.submenu item=subitem k=k}--><dd><!--{if$ eq $_curitem}--><a href="{$subitem.url}" class="active"><spanclass="{$subitem.icon}">{$subitem.text}</span></a><!--{else}--><a href="{$subitem.url}" class="normal"><spanclass="{$subitem.icon}">{$subitem.text}</span></a><!--{/if}--></dd><!--{/foreach}--></dl><!--{/if}--><!--{/foreach}-->感觉比较像,因为用firebug看到菜单栏的源码就是如此这般foreach from是ecmall模板里的语法,就和foreach as 差不多,但是$_member_menu 是从哪里来的呢?再去源码里找!直接在member.app.php中ctrl+F,没找到?额,不要逼我用大招,使用zend里面的search也就是ctrl+H键,在整个工作区里找这个变量,终于被我找到了两行。

frontend.base.php?好像是个基类。

爱啥啥,直接来到第541行,看到是把_get_member_menu()方法分配给了$_member_menu,so,再来到第579行,function _get_member_menu(){$menu = array();/* 我的ECMall */$menu['my_ecmall'] = array('name' => 'my_ecmall','text' => Lang::get('my_ecmall'),'submenu' => array('overview' => array('text' => Lang::get('overview'),'url' => 'index.php?app=member','name' => 'overview','icon' => 'ico1',),'my_profile' => array('text' => Lang::get('my_profile'),'url' => 'index.php?app=member&act=profile','name' => 'my_profile','icon' => 'ico2',),'message' => array('text' => Lang::get('message'),'url' => 'index.php?app=message&act=newpm','name' => 'message','icon' => 'ico3',),'friend' => array('text' => Lang::get('friend'),'url' => 'index.php?app=friend','name' => 'friend','icon' => 'ico4',),/*'my_credit' => array('text' => Lang::get('my_credit'),'url' => 'index.php?app=member&act=credit','name' => 'my_credit',),*/),);...是的吗是的吗?好激动耶,四个数组正好对应着账户概览,个人资料,短消息和好友。

所以我也来一首,随便复制一个array改成这样'account' => array('text' => Lang::get('account'),'url' => 'index.php?app=account','name' => 'account','icon' => 'ico4',),新菜单项出现了!但是只是英文的,而且点进去出现了这个这是没有account.app.php,这个可以理解。

相关文档
最新文档