LayCenter简易适配文档

talklee

温馨提示:这篇文章已超过1689天没有更新,请注意相关的内容是否还可用!

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

LayCenter简易适配文档 第1张

调用链接

登陆地址:

$lcp->BuildUrl('Login');

注册地址:

$lcp->BuildUrl('Reg');

重置密码地址:

$lcp->BuildUrl('ForgetPassword');

用户中心地址:

$lcp->BuildUrl('User');

账户充值地址:

$lcp->BuildUrl('User').'#User/Invest/Price';

VIP充值地址:

$lcp->BuildUrl('User').'#User/Invest/VIP';

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

用户中心数据:

调用用户中心配置:

$lcp->config->配置项字段名;$lcp->config->Save();  //保存配置

调用扩展插件的配置:

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

$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.方法/属性}

账户余额:

$zbp->user->Price;     //返回比如:5//返回账户余额和货币名称则用下面代码$zbp->user->Price();  //返回比如: 5积分

账户VIP等级

$zbp->user->VipType;//根据该用户的VIP等级返回对应纯数标识//0:普通用户 1:青铜VIP 2:白银VIP 3:铂金VIP 4:钻石VIP

账户VIP等级名称

$zbp->user->VipName;//根据该用户的VIP等级返回对应的VIP名称:普通用户、青铜VIP、白银VIP、铂金VIP、钻石VIP

账户VIP有效期

$zbp->user->VIPExpire();  //返回比如:2019-10-12$zbp->user->VIPExpire('Y年m月d日');  //返回比如:2019年10月12日$zbp->user->VipTime;  //返回VIP到期时间戳

账户邀请码/邀请链接

$zbp->user->InviteCode;$zbp->user->InviteUrl;//如果返回为空,则说明此用户没有邀请用户的权限

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

js代码:

lcp.tcaptcha(function(){    //图形验证成功后执行或未启用腾讯防水墙的情况下直接执行},function(){    //用户关闭形验证后执行此代码});

后端验证:

$lcp->TCaptchaVerify();//如果图形验证失败(可能是非法操作)则会直接输出json$lcp->TCaptchaVerify(true);//返回 true 或 false

输出的json

{
    "code": 0, 
    "msg": "图形演示失败,请重试", 
    "data": "", 
    "runtime": "time:114.41ms query:7 memory:1263kb error:0"
}

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

社交登陆

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

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

$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代码:

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代码:

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表单文档

文章头部插入配置项

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简易适配文档 第2张

文章正文插入内容按钮

Add_Filter_Plugin('Filter_LayCenter_PushPost_InserBtn','function_name');  //挂载接口function function_name($article, &$insert){    $insert[] = array('欢迎使用zblog','插入一些内容');}

LayCenter简易适配文档 第3张

侧栏附加内容

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简易适配文档 第4张

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

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简易适配文档 第5张

其它接口

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

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

是否有权限查看文章付费内容

是否购买了本文章

//模板里用法{if $lcp->article->SetPost($article)->order->ID}已购买{else}未购买{/if}//其它调用方法 if ($lcp->article->SetPost($article)->order->ID){   echo '已购买'; }else{   echo '未购买'; } 
 // $article 是文章对象,其它地方调用可以先用GetPost(文章ID)的方法获取对象

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

//使用方法和上面的一样$lcp->article->SetPost($article)->freeview

用户中心添加页面/菜单

添加菜单

右边下拉菜单

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简易适配文档 第6张LayCenter简易适配文档 第7张 

添加页面

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则只有管理员才可以访问,否则会被拦截


本篇文章到此结束,当然laycenter的接口远不止这些,这里只是列出常用的接口。如需调用其它的内容或接口,请联系我
文章版权声明:除非注明,否则均为李洋个人博客原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (有 3 条评论,5345人围观)
网友昵称:1001
1001 V 游客 Google Chrome 96.0.4664.45 Windows 10 x64 椅子
2022-02-04 来自广东 回复
路过支持
网友昵称:talklee
talklee V 博主 Sogou Explorer Windows 10 x64
2022-02-07 来自上海 回复
@1001 谢谢支持!
网友昵称:馋猫特特
馋猫特特 V 游客 Google Chrome 63.0.3239.132 Windows 10 x64 沙发
2019-09-10 来自天津 回复
嗯嗯,支持下!

目录[+]