进云平台-专注实现‘互联网+’服务

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 665|回复: 0

第三方应用兼容插件(第三方插件)安装使用教程

[复制链接]
发表于 2023-8-7 19:48:06 | 显示全部楼层 |阅读模式
第三方兼容插件(下面全部简称:第三方)应用插件升级兼容教程:
一、先本地安装第三方插件;
【本地安装】如何安装本地插件/本地应用(非第三方应用市场,非进云应用市场上面的应用)http://s.jinyunweb.com/manage/index.php?p=core&a=article.show&id=428
二、[兼容插件安装后访问空白?]
1、确保框架更新到最新(答:最新的基本已经没有问题了)!
2、排查插件有没有加密文件?只要带加密文件,都无法正常允许,也存在很大的不安全性(他们可以随时停止你的正常使用)!
3、系统管理--系统日志--错误日志,看看有没有数据库报错,如果有报错,可以点击《上报》。我们会第一时间优化;
4、开启调试摸索(系统管理--系统设置--开启调试模式,把当前访问IP填入《调试白名单》),再次打开空白页面,看看有没有报错。
5、如果兼容插件存在异常,可以尝试点击《刷新兼容》(具体操作:系统管理--插件管理--找到兼容插件--刷新兼容)!


至此应该没什么问题了,如果还要问题,自己又懂点技术,可以看看下面的教程,排查思路!
【温馨提示:进云目前已经做平滑兼容,第三方应用(微赞/微擎插件等)可以无需做任何二次处理,直接在进云后台安装使用】
下面说明只做参考。
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_jyapi/function.php';
require ROOT_D.'/api/open_jyapi/to_tools.php';
require ROOT_D.'/api/open_jyapi/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目录里面的JS文件在core/library目录中,如果是加载里面的库文件,可以直接吧framework改为core。


13、第三方的`mc_mapping_fans` 在进云系统中没有。可批量将这张表改为`core_fans`,然后对比这两张表的字段。进云core_fans表中没有的调整下即可(uid 改成mid)。


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这两个参数,第一个参数的作用为将请求直接交给插件处理,第二项告知系统请求来自兼容插件。


(最后温馨提示:进云带有错误日志功能,仅创始人可见,所有浏览产生的错误,都会被记录下来。可以多参考错误日志,准确找出问题点)
【相关链接】:
进云系统框架数据库字典:http://s.jinyunweb.com/manage/index.php?plugin=core&action=article.show&nosession=1&id=120(出处:进云手册)
【相关笔记】:
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获取回调信息的都可以不用,系统已经自动判断获取获取插件参数设置:$this->getSettings  (相当于$this->module['config'])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['fans']公众号/站点信息:$_SESSION['account'](相当于:$_W['uniaccount'])
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|进云平台

GMT+8, 2024-12-22 00:12 , Processed in 0.044287 second(s), 7 queries , File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表