一、给favorite添加文章id和栏目id
(1)给v9_favorite新增字段fid,存储f-catid-id 否则小程序端无法确定url;
(2)打开api文件夹下的add_favorite.php第18行if判断后边添加代码:
code腾石建站
- if($_GET['catid'] && $_GET['id']) {
- $catid = intval($_GET['catid']);
- $fid = 'f-'.$catid.'-'.intval($_GET['id']);
- }else{
- exit('-2');
- }
然后找到代码:
code腾石建站
- $data = array('title'=>$title, 'url'=>$url, 'adddate'=>SYS_TIME, 'userid'=>$userid);
改成:
code腾石建站
- $data = array('title'=>$title, 'url'=>$url, 'adddate'=>SYS_TIME, 'userid'=>$userid,'fid' => $fid);
(3)找到所有的show.html模板的
code腾石建站
- function add_favorite(title) {
- $.getJSON('{APP_PATH}api.php?op=add_favorite&title='+encodeURIComponent(title)+'&url='+encodeURIComponent(location.href)+'&'+Math.random()+'&callback=?', function(data){
- if(data.status==1) {
- $("#favorite").html('收藏成功');
- } else {
- alert('请登录');
- }
- });
- }
改成:
code腾石建站
- function add_favorite(title) {
- $.getJSON('{APP_PATH}api.php?op=add_favorite&title='+encodeURIComponent(title)+'&url='+encodeURIComponent(location.href)+'&id={$id}&catid={$catid}&'+Math.random()+'&callback=?', function(data){
- if(data.status==1) {
- $("#favorite").html('收藏成功');
- } else {
- alert('请登录');
- }
- });
- }
即在链接中添加&id={$id}&catid={$catid},用于传递id和catid
(之前用户添加的收藏文章,再小程序端可以读取,但是无法匹配到对应url)
二、修改v9_content_check表,新增字段userid用于存储用户id,以实现小程序端调用
(1)给v9_content_check表新增字段userid;
(2)打开phpcms/model/content_model.class.php大概127行在代码:
code腾石建站
- $this->content_check_db = pc_base::load_model('content_check_model');
后边新增判断,判断是否传递了 userid字段,没有默认0
code腾石建站
- if(!array_key_exists("userid",$data)){
- $data['userid'] = '0';
- }
然后紧接着的$check_data改成(增加userid)
code腾石建站
- $check_data = array(
- 'checkid'=>'c-'.$id.'-'.$modelid,
- 'catid'=>$systeminfo['catid'],
- 'siteid'=>$this->siteid,
- 'title'=>$systeminfo['title'],
- 'username'=>$systeminfo['username'],
- 'inputtime'=>$systeminfo['inputtime'],
- 'status'=>$data['status'],
- 'userid'=>$data['userid'],
- );
(3)找到代码phpcms/modules/member/content.php第78行附近找到代码:
code腾石建站
- $info['username'] = $memberinfo['username'];
下边新增代码:
code腾石建站
- $info['userid'] = $memberinfo['userid'];
这样小程序端即可通过userid来读取投稿文章(官方默认的是通过username即用户名来读取该用户文章的,这样也可以,但是前提是不允许用户修改名字,感觉比较扯淡,所以不建议 通过username读取)
三、官方注册账号是不允许用户名重复的,但是微信用户名称是有重复情况的,如果不做判断会造成混乱,有两种思路
(1)给重复用户的名称后边加四位随机数:比如:腾石2325,石头2020,目前我采用的是这种方式,在接口get_user.php里边会做个判断,一旦重复后边添加随机数字
(2)修改官方源码,允许用户名重复;此时你需要
01、修改v9_member数据库username的索引类型问题,去修改该表的Unique改成normal;这样允许重复名称
02、修改member下的index.php的名字重复校验和sso下的名字重复校验
03、在登录框添加选择:普通用户/小程序用户
总之这种方式比较麻烦,慎重考虑
其他说明:
(1)和username类似,v9也不允许email为空和重复,为了需要,接口文件我随机分配一个邮箱给用户,格式为:default_时间戳@tengcee.com,可以自己随意修改
(2)用户的默认密码都是:000000,授权成之后请要求立即修改(也可以把密码设置为随机密码,反正小程序端用户登录是直接授权登录的,不需要密码)
下一篇:没有了