phpcms小程序插件升级到5.x版本需要改造的内容整理
创始人
2024-12-29 21:37:15
0

一、给favorite添加文章id和栏目id
(1)给v9_favorite新增字段fid,存储f-catid-id  否则小程序端无法确定url;
(2)打开api文件夹下的add_favorite.php第18行if判断后边添加代码:

code腾石建站

  1. if($_GET['catid'] && $_GET['id']) { 
  2.         $catid = intval($_GET['catid']); 
  3.         $fid = 'f-'.$catid.'-'.intval($_GET['id']); 
  4.     }else
  5.         exit('-2');  
  6.     } 

然后找到代码:

code腾石建站

  1. $data = array('title'=>$title, 'url'=>$url, 'adddate'=>SYS_TIME, 'userid'=>$userid); 

改成:

code腾石建站

  1. $data = array('title'=>$title, 'url'=>$url, 'adddate'=>SYS_TIME, 'userid'=>$userid,'fid' => $fid); 

(3)找到所有的show.html模板的

code腾石建站

  1. function add_favorite(title) { 
  2.         $.getJSON('{APP_PATH}api.php?op=add_favorite&title='+encodeURIComponent(title)+'&url='+encodeURIComponent(location.href)+'&'+Math.random()+'&callback=?'function(data){ 
  3.             if(data.status==1)  { 
  4.                 $("#favorite").html('收藏成功'); 
  5.             } else { 
  6.                 alert('请登录'); 
  7.             } 
  8.         }); 
  9.     } 

改成:

code腾石建站

  1. function add_favorite(title) { 
  2.         $.getJSON('{APP_PATH}api.php?op=add_favorite&title='+encodeURIComponent(title)+'&url='+encodeURIComponent(location.href)+'&id={$id}&catid={$catid}&'+Math.random()+'&callback=?'function(data){ 
  3.             if(data.status==1)  { 
  4.                 $("#favorite").html('收藏成功'); 
  5.             } else { 
  6.                 alert('请登录'); 
  7.             } 
  8.         }); 
  9.     } 

即在链接中添加&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腾石建站

  1. $this->content_check_db = pc_base::load_model('content_check_model'); 

后边新增判断,判断是否传递了 userid字段,没有默认0

code腾石建站

  1. if(!array_key_exists("userid",$data)){ 
  2.                 $data['userid'] = '0'
  3.             } 

然后紧接着的$check_data改成(增加userid)

code腾石建站

  1. $check_data = array( 
  2.                 'checkid'=>'c-'.$id.'-'.$modelid, 
  3.                 'catid'=>$systeminfo['catid'], 
  4.                 'siteid'=>$this->siteid, 
  5.                 'title'=>$systeminfo['title'], 
  6.                 'username'=>$systeminfo['username'], 
  7.                 'inputtime'=>$systeminfo['inputtime'], 
  8.                 'status'=>$data['status'], 
  9.                 'userid'=>$data['userid'], 
  10.                 ); 

(3)找到代码phpcms/modules/member/content.php第78行附近找到代码:

code腾石建站

  1. $info['username'] = $memberinfo['username']; 

下边新增代码:

code腾石建站

  1. $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,授权成之后请要求立即修改(也可以把密码设置为随机密码,反正小程序端用户登录是直接授权登录的,不需要密码)

上一篇:PHP的语言层面的优化以及代码优化技巧

下一篇:没有了

相关内容

热门资讯

phpcms小程序插件升级到5... 一、给favorite添加文章id和栏目id(1)给v9_favorite新增字段fid,存储f-c...
PHP的语言层面的优化以及代码... 大规模的系统开发中,Cache无疑是至关重要的,php世界里,虽然不如java当中,有那么丰富的ca...
PHP中htmlentitie... htmlentities()和htmlspecialchars()函数的区别htmlentities...
PHP 7安装使用体验:性能大... 伴随着PHP 7的发布,这几天关于PHP 7性能和兼容性成了大家讨论的热点话题,PHP 7表现出来的...