由于墨初用户中心插件2.0版进行的深度改版与优化,此前的使用文档已不再适用,所有2.0版本以后的用户请参考此文档进行配置以及自己定制

主题兼容处理,以下代码只能在主题模版中使用,其它后台逻辑PHP文件调用时,请自行转换成PHP代码

判断是否启用本插件的代码

注意:必须加入判断以后,才能使用以下的代码

{if $zbp->CheckPlugin('mochu_us')}
    // 用户中心已开启
{else}
    // 用户中心未启用
{/if}

判断用户是否登录的代码

{if $user.ID}
    //用户已登录
{else}
    //用户未登录
{/if}

登录与注册链接

注意:为达到良好的用户体验,以下登录与注册代码使用前,请先判断用户是否登录,未登录前给出登录与注册的连接,已登录后给出用户的详细信息

登录链接:

{$host}?login

注册链接:

{$host}?register

QQ登录链接:

{$host}zb_users/plugin/mochu_us/cmd.php?act=qqlogin

新浪微博登录链接

{$host}zb_users/plugin/mochu_us/cmd.php?act=weibologin

如果使用静态地址,比如某些主题,可以在后台加入登录地址或注册地址等,请将上面链接中的 {$host} 替换成你的网址即可

文章收藏功能适配

此代码适配3.4.2以后的版本,如果你想自定义收藏代码的样式以及位置,可以参考以下文档

1、文章的收藏判断代码

$mfs = new mochu_us_llList();
$mfs->GetByPiD($article->ID);
if($mfs->ID){
    //输出文章已被收藏过的HTML代码
}else{
    //输出文章未被收藏过的HTML代码
}

2、文章被收藏的次数调用

文章被收藏数据是记录在文章的的meta数据中

此代码需要判断是否为空,如果为空则输出 0 ,不为空直接输出即可

$article->Metas->Mochu_US_Scoll

例:PHP函数代码,输出HTML

function article_iscoll($article){
    $mfs = new mochu_us_llList();
    $mfs->GetByPiD($article->ID);
    if($mfs->ID){
        return '<span class="coll" data-id="'.$article->ID.'">已收藏 | '.($a->Metas->Mochu_US_Scoll ? $a->Metas->Mochu_US_Scoll : '0').'</span>';
    }else{
        return '<span class="coll" data-id="'.$article->ID.'">收藏 | '.($a->Metas->Mochu_US_Scoll ? $a->Metas->Mochu_US_Scoll : '0').'</span>';
    }
}

注意:以上代码不得写入主题模版文件中去,要写到主题后台的逻辑文件中

调用代码:

在主题的文章页面进行调用,

{article_iscoll($article)}

3、收藏接口调用说明:

HTML代码已经成功的输出,只是做了一半,下面就是要做AJAX的动态交互。

收藏接口的调用必需以 AJAX POST的形式调用,返回JSON格式的数据

接口地址:

你的网址/zb_users/plugin/mochu_us/function_user.php?act=addshoucang

传入值:

id  文章的ID

4、接口返回结果:

返回的数据为JSON格式

(1)、错误的返回结果:

{code: 1,msg: "错误的提示语言"}

(2)、收藏取消成功

{code: 2, size: 6, msg: "取消成功"}

(3)、收藏成功返回结果:

{code: 0, size: 7, msg: "收藏成功"}

(4)、返回参数说明:

code: 1为错误的,2为取消收藏成功 0为收藏成功

msg:为提示

size:返回的文章当前被收藏的数量

注意:此接口会自动判断收藏的状态,如果已收藏则会取消,如果未收藏则会进行收藏

例:

$("body").on("click", ".coll", function () { 
        var id = $(this).attr("date-id"); 
        $.post("/zb_users/plugin/mochu_us/function_user.php?act=addshoucang", 
            { "id": id }, 
            function (res) { 
                if (res.code == 1) { 
                    alert(res.msg);
                } else if (res.code == 0){ 
                   alert(res.msg); 
                    $(".coll").text("已收藏 | " + res.size);
                }else{
                   alert(res.msg);
                    $(".coll").text("收藏 | " + res.size);
                }
            }, "json"
        ) 
    });

这里的JS用的是Jquery中的POST方法,你也可以改用其它的方法实现

文章点赞功能适配

1、文章点赞判断代码

$zan = new mochu_us_pst_zan();

$zan->GetPid($article->ID);

if($zan->ID){

    //输出已点赞的HTML代码

}else{

    //输出未点赞的HTML代码

}

2、文章被点赞次数代码

以下为文章被点赞次数的代码,记录在文章数据的meta字段中

此代码需要判断是否为空,如果为空则输出 0 ,不为空直接输出即可

因为此点赞功能是以墨初CMS主题为标准的,所以用CMS主题的字段

$article->Metas->Mochu_Feiniao_zan

例:

PHP函数代码,输出HTML

function article_zan($article){
    $zan = new mochu_us_pst_zan();
    $zan->GetPid($article->ID);
    if($zan->ID){
        return '<span class="zan" data-id="'.$article->ID.'">已赞 | '.($a->Metas->Mochu_Feiniao_zan ? $a->Metas->Mochu_Feiniao_zan : '0').'</span>';
    }else{
        return '<span class="zan" data-id="'.$article->ID.'">点赞 | '.($a->Metas->Mochu_Feiniao_zan ? $a->Metas->Mochu_Feiniao_zan : '0').'</span>';
    }
}

主模文章内容页模版调用:

{article_zan($article)}

3、前台JS交互

JS交互要以POST ajax的形式向后台发送数据,并根据返回的结果对HTML结构做出相应的动态转化

接口地址:

你的网址/zb_users/plugin/mochu_us/function_user.php?act=zan

传入参数:

id   文章的ID

4、返回数据:

返回的数据为JSON格式,其格试如下:

错误的返回结果:

{code: 1, size: 0,msg:'错误提示'}

点赞成功的返回结果:

{code: 0, size: 1}

点赞取消的返回结果:

{code: 2, size: 0}

返回参数说明:

code: 1为错误的,2取消点赞 0为点赞成功

msg:为提示

size:返回的文章当前被收藏的数量

注意:此接口会自动判断点赞的状态,如果已点赞则会取消,如果未点赞则会进行点赞

例:

$('body').on('click','.zan',function(){
        var id = $(this).attr('date-acid');
        $.ajax({
            type: "POST",
            url: "/zb_users/plugin/mochu_us/function_user.php?act=zan",
            data: {'id':id},
            dataType: "json",
            success: function (res) {
                if(res.code == '1'){
                    alert(res.msg});
                } else if (res.codes == 0){
                    $('.zan').text('已点赞 | '+res.size);
                }else{
                    $('.zan').text('点赞 | '+res.size);
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert('数据获取失败');
            }
        });
    });

文章打赏功能适配

由于文章打赏是写死的功能,所以在适配时,只需要把触发JS的class属性的结果引入就可以

比如以代码:

<span class="mochu-us-shang" date-acid="文章的ID">打赏作者</span>

注意:

代码中必需出现 date-acid 属性,不然JS无法运行

签到

签到适配代码

{mochu_us_theme_sign()}

注意:用户未登录状态下,不用使用此代码

输出以下HTML代码

未签到的(未登录)HTML代码

<a href="javascript:;" class="mochu-us-sign Sign">签到</a>

已签到的HTML代码

<a href="javascript:;" class="mochu-us-ysign Sign">已签到</a>

用户信息输出代码

注意:以下代码的使用,必须在用户登录的状态下,未登录状态下不要使用

输出积分名称 如:积分

{$zbp->Config('mochu_us')->giod}

输出积分 如:254

{$user.Mus.Giod}

输出会员等级 如:普通会员

{$user.Mus.levelnames}

输出格式化后的会员到期时间 如:2018-08-01 23:59:59

{$user.Mus.UtimeFormat}

输出未格式化的时间戳形式的会员到期时间 

{$user.Mus.Utime}

会员等级判断

1、新注册的会员等级系统中的 评论会员,

2、VIP会员的等级会系统中的 协助者

3、等级判断尽量在用户登录后进行,这些可以防止一些勿操作和逻辑混乱

等级判断代码

1、PHP代码,不适合在主题模版中使用

if($zbp->user->Level > 4){
//普通会员
}else{
//VIP会员
}

2、适合在主题模版中使用

 {if $user.Level > 4}   
    普通会员的逻辑
 {else}
    VIP会员的逻辑
 {/if}

会员积分的操作

积分操作,适合一些工具类的网站使用,比如使用一次工具减去几个积分等等

举例说明:

// $id 为用户的ID  $zbp->user->ID为当前用户的ID
$id = $zbp->user->ID;
// 要减去的积分数量
$g = 10;
$mus = new mochu_us_Mochuuser();
$mus->MochuByField('Uid',$id);
//$mus->Giod 为用户的积分数量,为正整数
//判断用户的积分
if($mus->Giod >= $g){
    //用户积分充值的话,可以执行减去积分操作
    $mus->Giod = $mus->Giod - $g;
    //保存
    $mus->Save();
    //积分每次变动都需要记录流水
    mochu_us_lib_inte($id,1,'购买文章',$g,null,null,null);
}else{
    //用户积分不足
}

mochu_us_lib_inte()函数参数如下:

mochu_us_lib_inte($uid,$s=1,$cent=null,$act=0,$bz=null,$nor = null,$pstid = 0)

$ud:用户的ID,必需传

$s:积分状态,如果为1则是支付,如果为2则为收入

$cent:此条记录的名称,比如‘购买文章’

$act:积分的数量,正整数

$bz:此条记录的备注

$nro:此次交易的商家单号,不传则会默认生成

$pstid:只在文章出售或购买传入此值,为文章的ID

支付插件下载

请在售后群里,下载用户中心的支付插件,此插件用户中心用户,免费使用。

自动充值插件链接地址:https://www.feiniaomy.com/post/219.html

1.9版本升级2.0版本教程以及注意事项

升级教程

1、关闭1.9版本的插件,并删除(无需要删除数据库)

2、下载最新的版本(最新版本暂时只有找我获取)

3、启用插件后,在用户中心后台配置中,点击“一键修复”按钮

4、新版本升级完成

注意事项

由于2.0版本的投稿功能,作了大副度的逻辑与参数调整,升级时,需要注意以下事项

如果1.9版本之前,未使用过用户投稿功能,包括(购买可见,VIP可见,登录可见),可无视以下注意事项

1、1.9版本之前的投稿功能的附加功能,在2.0版本中已不再适用

2、请逐篇修改含有附加功能的文章,以适应新版规则

3、后期可能会推出专门的升级插件(暂时未写)

2.0版本以及后续版本使用说明

用户投稿

1、附加功能(购买可见,会员可见,回复可见,登录可见,附件下载)

2、附件下载,分为全部收费下载,VIP可免费下载(VIP可设置每天下载附件的次数,超过次数后,后提示转为收费下载)

3、附件下载,可上传压缩包到网站(此功能可关闭),也可以填写外部的下载址(内部下载,与外部下载,功能上一致)

4、只有会员等级的用户才可以使用投稿功能(如果注册用户也让使用,请参考下面的角色分配插件设置)

5、所有用户(包括管理员),在前台投稿,均后进入审核状态

6、如果想指定某一用户投稿为公开状态(比如管理员),请在用户中心的用户管理中对此的账号管理中,开启公开发表权限即可

7、用户投谢后的文章,如果不通过审核,用户会获得再次编辑投稿的权限

积分使用

1、用户可通过签到或邀请注册获取积分

2、实名制后也可获取积分

3、投稿可获取积分也可减去积分(后台可设置)

4、也可以通过积分充值获取积分

5、用户购买付费可见的文章,以及下载付费的附件可减去积分

6、积分可自定义名称,比如 墨初币

7、管理也可以在后台对每一位用户的积分进行调整

8、关于积分的账单,会一一记录,方便用户与管理查看

积分充值

1、积分充值分为人工审核充值,自动充值,充值卡充值

2、自动充值功能暂时下线(后期会以插件的形式上线,以便加入更多的充值渠道)

3、人工审核充值,不需要接入其它第三方的充值渠道,管理审核也方便(可在手机端管理)

4、充值只预留了两种充值渠道(微信,支付宝),可根据自己的情况,选择相应的渠道

5、积分也可进行充值卡充值,你可以在后台生成大量的充值卡,放到一些发卡平台进行售卖。

6、支付宝的签约用户,可以使用即时到账,以及当面付(二选一),也可以使用有赞云支付,不需要签约

积分提现

1、积分提现采用人工审核的方式

2、开启提现后,会让用户上传收款的二维码

3、管理可通过扫描用户的二维码,进行转账操作

4、提现可设置手续费用,以及最低的提现额度,兑换比例(与充值的兑换比例相同)等

用户注册

1、用户注册采用直接注册,人工审核注册,邮件审核注册,邀请码注册的方式

2、直接注册,用户可直接注册,进行登录

3、人工审核注册,用户注册后,必须管理审核通过后,才可登录

4、邮件注册,用户注册后,会向注册者的邮箱发送注册邮件,用户点击邮箱中的邮件链接后,才能登录

5、邀请注册,用户必须填入邀请码,或通过邀请链接进行注册(邀请码,分为系统邀请码与个人邀请码)

6、用户注册,默认等级为注册会员(系统评论者等级),不可进行投稿操作

个人邀请注册

1、个人邀请可开启或关闭

2、个人邀请可通过下发个人邀请码,以及邀请链接的形式进行邀请

3、个人邀请奖励,最离可达三级奖励,后台可设置

4、个人邀请获得的积分,记入总积分的数目中

5、后台可设置邀请成功的事件(只有邀请成功后,才发放奖励)

系统邀请码

1、管理可在后台生成系统邀请码(可设置邀请码的过期时间)

2、生成的邀请码可发布到一些发卡平台,进行售卖

3、邀请码有下发机制(管理后台可查看说明)

工单系统

1、用户可前台提交工单,向管理员反馈一些问题

2、管理用户中心的管理后台,进行工单的回复

系统通知

1、管理可向指定级别的用户发送系统通知

2、用户阅读后,会记录是否已阅读

3、管理可对系统通知进行删除操作

个人通知

1、管理可向指定的用户发送个人通知

2、管理可对个人通知进行管理

注册用户升级会员

1、注册用户可通过消费积分的方式进行升级会员

2、管理也可以对每一位用户进行操作