第三方(下面全部简称:第三方)应用插件升级兼容教程:
1、第三方的:`uni_account` 这张表进云程序没有。可以参考以下方法调整:如果相关代码无关业务或者后面没有用到,则直接删除;该表在第三方应用中是保存公众号数据, 在进云程序中如需获取公众号数据,可以从表:`core_account_wechat`中获取;如需用户站点信息,可以从表`core_accounts`中获取;
2、第三方的`users`、操作员相关这张表进云程序没有。原第三方应用程序中分别保存的是用户数据。进云程序中类似表有:`core_users`保存用户数据。关于插件操作员问题,系统已添加`uni_account_users`表方便插件兼容,另外添加用户的时候采用user_register($user,'plugin_name')函数(在原第三方中有这个函数,不过没有第二项参数,做插件兼容时请加上插件标识作为第二项参数),成功创建操作员后,系统将会给操作员增加访问该插件的权限,其他具体权限有插件自行设置。
3、第三方的`mc_members` 这张表进云程序没有。可以参考以下方法调整。将表名改为`core_members` 字段uid改成id,其他字段基本一致,可以对比数据库结构处理;
4、第三方的:web/resource目录下的资源文件已调整至api/resource。需要修改相应目录。
5、插件支付建议调用系统支付接口,如果使用插件支付接口且获取支付参数来自系统支付参数设置。可以将系统支付参数打印出来查看结构相应的获取设置设置支付。另外接收异步回调结果的文件也需要做兼容处理。可已粘贴以下代码至于文件头部,此步骤比较难,此外,uniacid参数获取到之后,要赋值给$_SESSION['uniacid'],以免调用系统功能时出错。 require '../core/core.php';//此处的系统核心控制文件请根据回调文件目录整理。 相对目录: require ROOT_D.'/api/open_we7/function.php'; require ROOT_D.'/api/open_we7/to_wqz.php'; require ROOT_D.'/api/open_we7/account.php';
6、插件URL生成函数,如果调用系统URL生成函数可以不用改。用插件自带URL生成函数的需要做相应调整: 用户端地址的域名用get_account_url()函数获取: (例如:get_account_url().'custom/index.php?plugin=core&action=module&m=ewei_shopv2&...');管理端地址示例:SITEROOT.'manage/index.php?plugin=core&action=module&m=ewei_shopv2&...'。
7、第三方的管理端主要在web目录下,进云程序管理端业务代码在manage目录下,因此代码中所有涉及web目录的都需要改为manage;
8、第三方的用户端主要在app目录下,进云程序管理端业务代码在custom目录下,因此代码中所有涉及app目录的都需要改为custom;
9、第三方的`mc_members`数据表进云系统没有。在第三方框架中,这张表主要保存会员数据。可以参考以下方法调整: 批量搜索 mc_members 。进云系统保存会员数据的表为core_members,字段大同小异,具体参考相应表数据结构调整。
10、进云系统默认已启用会话,无需再调用WeSession创建会话。可以批量搜索WeSession找到有这个的地方去掉,进云系统没有WeSession这个类。
11、第三方的'qrcode'这个表没有,进云程序增加了一个兼容数据表'core_qrcode',将表名替换下即可。
12、第三方的framework这个文件夹没有,批量搜索插件中有用到这个文件夹的地方进行调整:framework下面的library目录里面的文件在进云系统的core/library目录中,如果是加载里面的库文件,可以直接吧framework改为core。
13、第三方的`mc_mapping_fans` 在进云系统中没有。可批量将这张表改为`core_fans`,然后对比这两张表的字段。进云core_fans表中没有的调整下即可。
14、进云系统支付日志表和第三方一致:`core_paylog`,但是字段不一致,如需使用请调整字段。另外,系统增加了一张表`core_pay_log`,里面的字段和原第三方`core_paylog`字段一致,需要时也可以用这张表。
15、进云系统中,附件目录是随机的,插件需要存放附件时,需要调整附件目录。可批量搜索'/attachment/',进行整理。例如: IA_ROOT.'/attachment/'替换成ROOT_AT。另外,系统将附件文件夹名称存放在RESOURCE常量中,可利用此常量灵活拼接目录。
16、关于插件管理页面。如果插件使用了第三方的框架头部底部文件,请把相关文件包含代码去除,然后设置插件类型为:`需要系统菜单`。如果插件使用的是自己的头部底部文件,则请设置插件类型为:`无需系统菜单`。
17、关于插件表单提交,如果插件页面提交表单地址是自定义的后台地址,请注意增加action=module这一项get参数。
18、使用系统菜单的插件,与后端进行ajax通信时,记得带上submit=1和action=module这两个参数,第一个参数的作用为将请求直接交给插件处理,第二项告知系统请求来自兼容插件。
(最后温馨提示:进云带有错误日志功能,仅创始人可见,所有浏览产生的错误,都会被记录下来。可以多参考错误日志,准确找出问题点) 【相关链接】: 【相关笔记】: 1、使用开发中心--第三方插件--代码替换工具
注意不能多次替换,否则然后出错! [常用替换细节]: (读取表里粉丝信息)mc_oauth_userinfo() --> cfc('core')->get_fans()获取会员信息:mc_fetch --> cfc('core')->get_member($uid)获取粉丝信息fans_search --> cfc('core')->get_fans($openid)WeSession:expire = $_W['system']['session_expire'] --> cfc('session',$_AR['system']['session_expire']);getAccessToken() --> cfc('account')->getAccessToken();(获取微信粉丝信息)getOauthInfo --> cfc('account')->getfans()类似:getOauthInfo,getOauthCodeUrl获取回调信息的都可以不用,系统已经自动判断获取2、粉丝相关细节兼容处理:1、头像$_SESSION['fans']['avatar'],昵称 $_SESSION['fans']['nicename'] 2、uid openid uniacid 都在$_SESSION 里面获取,比如: $_SESSION['uniacid'];$_SESSION['openid'];$_SESSION['uid'];3、操作权限(可以管理员多个站点): 创始人权限: $_SESSION['isfounder'];操作员权限: $_SESSION['user']['type'] == 1;公众号管理员权限: $_SESSION['user']['type'] == 3;4、判断会员登陆,注册信息:原来checklogin()方法改成 cfc('core')->checklogin(); 方法中自带判断,没有登陆自动跳转到登陆界面; 6、会员,粉丝信息获取函数: cfc('core')->get_member()类似mc_fetchcfc('core')->get_fans()类似fans_search7、手机端链接404 $_AR['siteroot'] .'app/'替换成$_AR['siteroot'] .'custom/' 8、获取AccessToken方法:$AccessToken = cfc('account')->getAccessToken(); 9、会员信息修改(类似:mc_credit_update,mc_update): 类函数cfc('core')->member_credit($mid,$field,$value,$is_add,$from_plugin,$remark); 参数依次为会员ID、修改字段(credit1或者credit2)、修改值、增加还是减少、操作插件、说明$is_add1为增,0为减第三方兼容独有全局函数:member_change($data,$mid);(修改当前会员信息member_member表:手机,昵称,地址,QQ等,mid可以留空)例子:$data= array( 'realname' => $_RQ['realname'] ); member_change($data);10、account类(类似:WeAccount,舍去create获取)cfc('account')- 11、支付日志:core_paylog是进云系统,corepay_log是兼容第三方插件的 12、插件表:core_plugins(类似modules),菜单,入口等都在一张表里面; 13、回复规则添加,更新,获取规则数据: 添加,更新:cfc('core')->save_back_news($parameter,$id='');//参数说明: $parameter=array('keyword'=>'触发关键词','status'=>'是否启用','title'=>'封面标题','description'=>'封面简介','picurl'=>'封面图片地址','url'=>'图文链接','plugin'=>'链接页面所属插件','action'=>'链接页面action','aid'=>'链接页面AID(可不填,用于唯一区分,比如小区ID,分店的ID)');//参数说明: $id:回复规则ID,用于更新回复规则获取数据:cfc('core')->get_back_news($parameter,$id='');//参数说明: $parameter=array('plugin'=>'链接页面所属插件','action'=>'链接页面action','aid'=>'链接页面AID(可不填,用于唯一区分,比如小区ID,分店的ID)');//参数说明: $id:回复规则ID,用于查询回复规则
14、常用全局函数(进云全部以站点为单元,相当于每个后台普通会员,控制一个集团站点,站点下面多个应用端,比如:微信公众号,小程序,app等): 获取粉丝uid:$_SESSION['uid'];集团站点:$_SESSION['uniacid'];公众号openid:$_SESSION['openid'];粉丝余额:$_SESSION['member']['credit2']粉丝积分:$_SESSION['member']['credit1']
|