首页 学习教程学习zblog正文

LayCenter简易适配文档

元之本 学习zblog 2020-02-02 13:02:57 275 0

首先感谢您能适配本站开发的LayCenter(用户中心)插件,如果您是zblog的开发者,可以先购买本插件对主题进行适配。适配完成后,成功介绍1位用户购买本插件,您购买本插件的钱全额退还。

LayCenter包含了许多可调用的接口,以下只是冰山一角,如有需要请联系我,我再来补充

调用链接

登陆地址:

点击复制代码 LayCenter简易适配文档  第1张 PHP
$lcp->BuildUrl('Login');

注册地址:

点击复制代码 LayCenter简易适配文档  第1张 PHP
$lcp->BuildUrl('Reg');

重置密码地址:

点击复制代码 LayCenter简易适配文档  第1张 PHP
$lcp->BuildUrl('ForgetPassword');

用户中心地址:

点击复制代码 LayCenter简易适配文档  第1张 PHP
$lcp->BuildUrl('User');

账户充值地址:

点击复制代码 LayCenter简易适配文档  第1张 PHP
$lcp->BuildUrl('User').'#User/Invest/Price';

VIP充值地址:

点击复制代码 LayCenter简易适配文档  第1张 PHP
$lcp->BuildUrl('User').'#User/Invest/VIP';

以上方法都可以在主题模板内调用

用户中心数据:

调用用户中心配置:

点击复制代码 LayCenter简易适配文档  第1张 PHP
$lcp->config->配置项字段名;$lcp->config->Save();  //保存配置

调用扩展插件的配置:

(跟zblog调用数据的方法基本一致,但调用对象是$lcp)比如调用qq机器人的推送消息地址:

点击复制代码 LayCenter简易适配文档  第1张 PHP
$lcp->Config('qqrobot')->qqroboturl;$lcp->Config('qqrobot')->Save(); // 保存配置

VIP等级说明

用户中心有5中会员等级:普通用户青铜VIP白银VIP铂金VIP钻石VIP

以上5中名称在用户中心可以自定义名称。


普通用户:网站的普通用户,非VIP用户,或VIP过期用户;

青铜VIP:开通的会员在一月内的(一般都是开通7天)

白银VIP:开通会员在1月以上,12月以内

铂金VIP:开通超1年的会员

钻石VIP:开通永久VIP,会员身份永不过期


如果是续费会员,根据续费后的时长,也会自动升级到相应的VIP等级

用户有关的数据:

以下代码只会用 $zbp->user 作为示例代码,在主题模板中,也可以用 {$user.方法/属性}

账户余额:

点击复制代码 LayCenter简易适配文档  第1张 PHP
$zbp->user->Price;     //返回比如:5//返回账户余额和货币名称则用下面代码$zbp->user->Price();  //返回比如: 5积分

账户VIP等级

点击复制代码 LayCenter简易适配文档  第1张 PHP
$zbp->user->VipType;//根据该用户的VIP等级返回对应纯数标识//0:普通用户 1:青铜VIP 2:白银VIP 3:铂金VIP 4:钻石VIP

账户VIP等级名称

点击复制代码 LayCenter简易适配文档  第1张 PHP
$zbp->user->VipName;//根据该用户的VIP等级返回对应的VIP名称:普通用户、青铜VIP、白银VIP、铂金VIP、钻石VIP

账户VIP有效期

点击复制代码 LayCenter简易适配文档  第1张 PHP
$zbp->user->VIPExpire();  //返回比如:2019-10-12$zbp->user->VIPExpire('Y年m月d日');  //返回比如:2019年10月12日$zbp->user->VipTime;  //返回VIP到期时间戳

账户邀请码/邀请链接

点击复制代码 LayCenter简易适配文档  第1张 PHP
$zbp->user->InviteCode;$zbp->user->InviteUrl;//如果返回为空,则说明此用户没有邀请用户的权限

调用腾讯防水墙(图形验证)

需要在header.php加入 <script src="https://ssl.captcha.qq.com/TCaptcha.js"></script>

js代码:

点击复制代码 LayCenter简易适配文档  第1张 JavaScript
lcp.tcaptcha(function(){
    //图形验证成功后执行或未启用腾讯防水墙的情况下直接执行},function(){
    //用户关闭形验证后执行此代码});

后端验证:

点击复制代码 LayCenter简易适配文档  第1张 PHP
$lcp->TCaptchaVerify();//如果图形验证失败(可能是非法操作)则会直接输出json$lcp->TCaptchaVerify(false);//返回 true 或 false

输出的json

点击复制代码 LayCenter简易适配文档  第1张
{
    "code": 0, 
    "msg": "图形演示失败,请重试", 
    "data": "", 
    "runtime": "time:114.41ms query:7 memory:1263kb error:0"
}

使用防水墙无需先判断网站管理员有没有启用了腾讯防水墙,如果未启用,会直接回调提交的代码。未启用后端代码会直接返回true

社交登陆

用 $lcp->oauth 进行数组遍历,在前台显示出社交登陆按钮。(只有启用的社交登陆,才会在此数组,所以无需用其它方法判断是否开启了某个社交登陆功能)

社交登陆唯一标识,目前有“weixin”微信“WB”微博“QQ”qq

点击复制代码 LayCenter简易适配文档  第1张 PHP
$lcp->oauth;//vardump结果array(1) {    
  [0]=>    
  array(4) {    
      [0]=>    
      string(6) "weixin"     //唯一标识,可以利用此项来判断是哪个社交登陆
      [1]=>    
      string(6) "weixin"     //fontawescome 图标
      [2]=>    
      string(35) "zb_users/LayCenter/weixin/login.php"    // 登陆页面地址(默认没有域名)
      [3]=>    
      string(6) "微信"    // 社交登陆名称
   }    
  [1]=>    
  array(4) {    
      [0]=>    
      string(6) "QQ" 
      [1]=>    
      string(6) "..." 
      [2]=>    
      string(35) "..."    
      [3]=>    
      string(6) "..."    
   } 
   [2]=>
   ...
   [3]=>
   ...}

账号登陆数据提交

如果您主题有独特的登陆界面,可以用到下面这些说明。

需要提交的post数据:

username

password

captcha (验证码)

判断是否开启验证码用 $lcp->config->login_text_captcha

验证码ID:login

js代码:

点击复制代码 LayCenter简易适配文档  第1张 JavaScript
lcp.tcaptcha(function(){  //必须先调用腾讯防水墙
    layer.msg('正在登陆...',{icon: 16,time:false,shade:0.5})
    lcp.ajax('login',{
        username: '',
        password: '',
        captcha:''
    },function(res){
        if (res.code == 1){
            layer.msg('登陆成功',{icon: 1});
            window.location.reload();
        }else{
            layer.msg(res.msg,{icon:res.code});
        }
    });});

注册数据提交

如果您主题有独特的注册界面,可以用到下面这些说明。

需要提交的数据:

Name

Password

Email

LayCenter_Inviter (邀请码)

captcha (验证码)

判断是否启用腾讯防水墙 $lcp->config->tencent_captcha_enable 如果未启用则必须提交验证码,否则不需要

验证码id:reg

判断是否必须要提供邀请码:$lcp->config->register_need_invite_enable  如果必须,则强行验证让用户输入邀请码

js代码:

点击复制代码 LayCenter简易适配文档  第1张 JavaScript
lcp.tcaptcha(function(){    //必须先调用腾讯防水墙
    layer.msg('正在注册...',{icon: 16,time:false,shade:0.5})
    lcp.ajax('reg',{
        Name: '',
        Password:'',
        Email:'',
        LayCenter_Inviter:'',
        captcha:''
    },function(res){
        if (res.code == 1){
            layer.msg('注册成功',{icon: 1});
        }else{
            layer.msg(res.msg,{icon:res.code});
        }
    });});

文章发布页面

本页面必须使用layui样式,否则排版会乱,可以参考layui表单文档

文章头部插入配置项

点击复制代码 LayCenter简易适配文档  第1张 PHP
Add_Filter_Plugin('Filter_LayCenter_PushPost_Header','function_name');  //挂载接口function function_name($article){
    echo '    <div class="layui-form-item">
	    <label class="layui-form-label">一个文本框</label>
		<div class="layui-input-block">
		    <input type="text" name="meta_test" placeholder="" autocomplete="off" class="layui-input" value="'.$article->Metas->test.'">
	    </div>
    </div>
    ';}

其它插件或主题适配LayCenter说明  zblog zblog用户中心 适配LayCenter简易文档 LayCenter简易适配文档 第21张

文章正文插入内容按钮

点击复制代码 LayCenter简易适配文档  第1张 PHP
Add_Filter_Plugin('Filter_LayCenter_PushPost_InserBtn','function_name');  //挂载接口function function_name($article, &$insert){
    $insert[] = array('欢迎使用zblog','插入一些内容');}

其它插件或主题适配LayCenter说明  zblog zblog用户中心 适配LayCenter简易文档 LayCenter简易适配文档 第23张

侧栏附加内容

点击复制代码 LayCenter简易适配文档  第1张 PHP
Add_Filter_Plugin('Filter_LayCenter_PushPost_OtherAttr','function_name');  //挂载接口function function_name($article){
    return '    <div class="layui-form-item">
        <label class="layui-form-label">一个开关</label>
        <div class="layui-input-block">
            <input type="checkbox" name="meta_test1" lay-skin="switch" value="1" lay-text="ON|OFF" '.($article->Metas->test1 ? 'checked=""' : '').'>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">一个文本</label>
        <div class="layui-input-block">
            <input type="text" name="meta_test2"  placeholder="" autocomplete="off" class="layui-input" value="'.$article->Metas->test2.'">
        </div>
    </div>
    ';}

其它插件或主题适配LayCenter说明  zblog zblog用户中心 适配LayCenter简易文档 LayCenter简易适配文档 第25张

这个接口只适合一两个简单配置的项目,这些项目会和其它项目混在一起,如果有多个项目建议单独增加一个区域,可以用下面的接口

点击复制代码 LayCenter简易适配文档  第1张 PHP
Add_Filter_Plugin('Filter_LayCenter_PushPost_Sidebar','function_name');  //挂载接口function function_name($article){
    echo '    <div class="layui-card">
        <div class="layui-card-header">xxx主题配置</div>
            <div class="layui-card-body">
            <div class="layui-form-item">
                <label class="layui-form-label">一个开关</label>
                <div class="layui-input-block">
                    <input type="checkbox" name="meta_test1" lay-skin="switch" value="1" lay-text="ON|OFF" '.($article->Metas->test1 ? 'checked=""' : '').'>
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">一个文本</label>
                <div class="layui-input-block">
                    <input type="text" name="meta_test2"  placeholder="" autocomplete="off" class="layui-input" value="'.$article->Metas->test2.'">
                </div>
            </div>
        </div>
    </div>
    ';}

其它插件或主题适配LayCenter说明  zblog zblog用户中心 适配LayCenter简易文档 LayCenter简易适配文档 第27张

其它接口

Filter_LayCenter_PushPost_Footer  文章页最底部,可以直接echo出代码

Filter_LayCenter_PushPost_JS  直接输出js代码,不要有script标签,可以对ue编辑器添加一些按钮(可以参考“复制代码”插件)

文章相关数据

是否购买了本文章

点击复制代码 LayCenter简易适配文档  第1张 PHP
//模板里用法{$article.Purchased}已购买{else}未购买{/if}//其它调用方法
 if ($article->Purchased){
   echo '已购买';
 }else{
   echo '未购买';
 }
 
 // $article 是文章对象,其它地方调用可以先用GetPost(文章ID)的方法获取对象

VIP会员是否能免费查看付费内容

点击复制代码 LayCenter简易适配文档  第1张 PHP
//使用方法和上面的一样$article->FreeView

获取文章的收藏数量

点击复制代码 LayCenter简易适配文档  第1张 PHP
$article->CollectNums;

获取文章已售数量(已购买的人数)

点击复制代码 LayCenter简易适配文档  第1张 PHP
$article->SellNums;

获取文章最近销售订单

点击复制代码 LayCenter简易适配文档  第1张 PHP
$article->Orders();  //默认10个foreach ($article->Orders(5) as $value){
  echo '购买人ID:'.$value->UID;
  echo '购买时间:'.date('Y-m-d',$value->Time);}

获取最近收藏记录

点击复制代码 LayCenter简易适配文档  第1张 PHP
$article->Collect();  //默认10个//遍历方法同上

获取最近下载记录

点击复制代码 LayCenter简易适配文档  第1张 PHP
$article->Download();  //默认10个//遍历方法同上

获取文章附件下载次数

点击复制代码 LayCenter简易适配文档  第1张 PHP
$article->DownloadNums;

用户中心添加页面/菜单

添加菜单

右边下拉菜单

点击复制代码 LayCenter简易适配文档  第1张 PHP
Add_Filter_Plugin('Filter_LayCenter_Nav','function_name');  //挂载接口function function_name(&$json){
    $json['menu']['sidebar']['test'] = array ('title'=>'测试按钮','icon'=>'donate','href'=>'Admin/test');
    $json['menu']['right']['userinfo']['children']['qqrobot'] = array('title'=>'<i class="fab fa-qq fa-fw"></i> QQ消息服务','href'=>'User/qqrobot/messagepush');
    //数组中href值 是在在用户中心中打开的页面链接}//代码是添加了两个菜单,顶部两处的代码也可以添加,可参考用户中心插件class/json.php nav函数中的代码

其它插件或主题适配LayCenter说明  zblog zblog用户中心 适配LayCenter简易文档 LayCenter简易适配文档 第37张其它插件或主题适配LayCenter说明  zblog zblog用户中心 适配LayCenter简易文档 LayCenter简易适配文档 第38张 

添加页面

点击复制代码 LayCenter简易适配文档  第1张 PHP
Add_Filter_Plugin('Filter_LayCenter_Page_End','function_name');  //挂载接口function function_name($param){
    global $zbp,$lcp;
    if ($param[0] == 'User' && $param[1] == 'qqrobot' && $param[2] == 'messagepush'){
        echo '页面内容';
    }}

传入的$param就是上面添加菜单用的href值,用户中心已经将它拆分为数组,用以上方法判断打开的是否是需要处理的页面。数组第一个值如果是Admin则只有管理员才可以访问,否则会被拦截


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接:http://www.yuyubebe.cn/2020/02/593/

评论

«   2020年8月   »
12
3456789
10111213141516
17181920212223
24252627282930
31
宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取
扫描即可关注我们