这几天给Zblog php的墨初VIP主题,与用户中心皮肤都加入一些新的功能,墨初VIP主题加入了下载按钮随意插入,墨初用户中心皮肤加入了,登录可见功能,与评论可见功能。

今天把大至功能记录下来,方便有需要的小伙伴们查找。

下面以zblog文章部份内容登录可见为例,写一下教程!

前提条件

1、zblog php的最新版本

2、使用zblog自带的文章编辑器插件-UEditor编辑器 1.6

3、其它编辑器插件未适配,后期弄一个

新建自定义标签一键插入

挂zblog后台文章编辑页接口:

Add_Filter_Plugin('Filter_Plugin_Edit_Response3','demo1');

我这里挂的是三号接口,具体接口的位置,大家看参考\zb_system\admin\edit.php文件

加入插入按钮

接口挂好,我们需要向文章的编辑页面加入一个按钮,点击我们加入的按钮,就会在zblog后台编辑器内插入我们设置好的标签

代码:

function demo1(){
    $Logins = '[Loginsss]登录可见的内容[/Loginsss]';
    echo '<a style="cursor: pointer;" onclick="editor_api.editor.content.obj.execCommand(\'insertHtml\',\''.$Logins.'\');">登录可见标签</a>';
}

上面的两个步骤已经可以实现,在zblog后台编辑器中随意的地方插入一个我们自定义好的标签,这里我们可以把zblog登录可见的内容放到这个标签里面,用这个[Logins]与[/Logins]两个标签把内容包裹起来。

处理输出的文章内容

挂处理文章页的接口

Add_Filter_Plugin('Filter_Plugin_ViewPost_Template','demo2');

这里挂的文章页面处理接口,在文章内容输出的时候做一下处理

处理自定义标签

我们这里需要用的PHP的正则表达式,来匹配我们自定义的标签,进行删除或是替换

代码如下:

function demo2(&$template){
    global $zbp;
    $article = $template->GetTags('article');
    $content = $article->Content;
    $userid = $zbp->user->ID;
    if($userid){
        $content = preg_replace("/\[(.*?)Loginsss\]/sm",'',$content);//登录状态下去掉自定义的标签
    }else{
        $content = preg_replace("/\[Loginsss\](.*?)\[\/Loginsss\]/sm",'<div class="mochu-logins">未登录的提示内容</div>',$content);  
        //未登录状态下,把自定义标签连同标签包裹的内容替换成提示内容
    }
    $article->Content = $content;
    $template->SetTags('article', $article);
}

最后,未登录时提示的内容进行一些调整就可以啦!

根据上面的实例,我们还可以实现zblog文章部份内容评论可见,或是部份内容购买可见等等一些操作!