天兴工作室

主题演示站

zblogphp自带js框架评论接口大全

zblogphp从1.5版本就开始推出了自带的js前端框架:Z-BlogPHP JavaScript Framework;把一些前端常用的事件都封装了起来内置到zblogphp.js文件里面。

主题的js只需要简单的按照规定调用即可,大大的简化了流程和统一了标准。

分享以下官方git库里面的一些使用案例:

// 评论字段校验规则,要求提交的内容必须有一个test字段
zbp.options.comment.inputs.test = {
    required: true,
    getter: function () {
        return 'ZBPJF'
    },
    validator: function (text, callback) {
        if (text !== 'ZBPJF') {
            callback(new Error('No ZBPJF!'))
        } else {
            // null代表没问题
            callback(null)
        }
    }
}

// 挂接口

// 获取评论数据
zbp.plugin.on("comment.get", "ZBPJFExample", function (postId, page) {
    console.log('开始尝试评论数据')
})

// 得到评论数据
zbp.plugin.on("comment.got", "ZBPJFExample", function (formData, data, textStatus, jqXhr) {
    console.log('获得评论数据')
    console.log(data)
})

// 评论开始接口,只能对formData进行读取和修改
zbp.plugin.on("comment.post.start", "ZBPJFExample", function (formData) {
    console.log('开始评论!')
})

// 评论验证中接口
zbp.plugin.on("comment.post.validate", "ZBPJFExample", function (formData) {
    console.log('评论验证中!')
})

// 评论验证失败接口
zbp.plugin.on('comment.post.validate.error', 'ZBPJFExample', function (error, formData) {
    console.log('评论验证失败:' + error.code)
})

// 评论验证成功接口
zbp.plugin.on('comment.post.validate.success', 'ZBPJFExample', function (formData) {
    console.log('评论验证成功!')
})

// 评论发送成功接口
zbp.plugin.on('comment.post.success', 'ZBPJFExample', function (formData, data, textStatus, jqXhr) {
    console.log('评论发送成功!')
    console.log("系统返回数据:");
    console.log(data)
})

// 评论发送失败接口
zbp.plugin.on('comment.post.error', 'ZBPJFExample', function (error, formData, data, textStatus, jqXhr) {
    console.log('评论发送失败,错误:' + error.code)
    console.log(error)
})

// 评论发送结束接口
// 无论成功或失败,评论发送结束均会触发
zbp.plugin.on('comment.post.done', 'ZBPJFExample', function (error, formData, data, textStatus, jqXhr) {
    console.log('评论发送结束')
})

// 评论回复接口,可能在为老版本使用的主题中会无效
// 另外,通过zbp.plugin.unbind("comment.reply", "system-default")可以解绑系统的相关事件。
zbp.plugin.on("comment.reply.start", "ZBPJFExample", function (id) {
    console.log("回复评论ID:" + id);
});

// 取消评论回复接口,可能在为老版本使用的主题中会无效,若解绑了系统有关事件可能会无效。
// 可能需要主题配合
zbp.plugin.on("comment.reply.cancel", "ZBPJFExample", function (id) {
    console.log("取消回复评论");
});

有兴趣的可以直接在自己的代码里面测试,可玩性还是有的。

zblog当天发布的文章标题显示成红色的几种解决办法

当天发布的文章标题或者日期变红色这些小需求很受客户的喜欢,都说这个可以提升用户体验。虽然我也没能理解提升了啥,但是存在即合理,本文来分享下两种可以实现这个需求的方法。

第一种:小白都会写的第一个函数

打开你正在使用的主题目录里面的“include.php”文件,在一个你认为合适的地方插入下面的函数:

function TX_Tagging_red($as){
   $time1 = strtotime(date('y-m-d')); //获取当前时间并转换为时间戳
   $time2 = strtotime($as->Time('y-m-d')); //获取文章发布时间并转换为时间戳
   $isnew = false; 
   if (ceil(($time1 - $time2) / 86400) < 1) { 
     $isnew = true;
   }
   return $isnew;
}

详细解释下这个函数:

先获取当前时间,再获取文章发布时间。拿当前时间减去文章发布时间,除以86400秒也就是一整天,再把得出的数字向上舍入得出一个整数,最后判断这个整数是否小于1。如果小于1函数输出布尔值的“真”,反之输出布尔值的“假”。

函数写好了就可以去主题文件里面使用了,找到并打开你想显示当天发布文章标红的地方,例如“post-multi.php”文件,找到文章标题调用代码“{$article.Title}”,把它改成下面这样:

<span{if TX_Tagging_red($article)} style="color: red"{/if}>{$article.Title}</span>

保存文件再去后台首页清空下缓存,就能看到效果了。

第二种:更简单更粗糙的对比

这个方法简单粗暴有疗效,一样的以“post-multi.php”文件为例,找到文章标题调用代码“{$article.Title}”,把它改成下面这样:

<span{if $article.PostTime > strtotime(date("Y-m-d"))} style="color: red"{/if}>{$article.Title}</span>

代码解释:

获取文章发布时间戳,获取当前时间转换为时间戳,获取的当前时间只有年月日,默认时分秒全部是0,所以只要是当天发布的文章的时间戳都会比这个大,因此一个简单的对比就能对比出来。

安装zblog时提示“release.xml不存在!”的原因和解决办法

今天在安装zblog的时候出现了提示“release.xml不存在!”导致无法正常安装的问题:

1.png

解决后发篇文章分享下,如果遇到同样问题可以尝试按照本文操作下。


先说解决办法:

重新去zblog官方下载最新版的安装程序重新上传安装即可解决。


问题原因:

出现这个问题一般是用了之前老旧的在线安装文件导致的,最新的zblogphp1.6文件结构有些许改变,导致了之前老旧的安装文件出现了错误。

zblogphp调用网站的全部分类的名称、链接等代码汇总

我们在用zblogphp的时候,需要调用网站的全部分类名称或者链接啥的,对于这个需求zblogphp内置了三个函数。


第一个函数是“$zbp->GetCategoryList”,这个函数可以自定义获取的分类排序或者过滤,用法如下:

{foreach $array=$zbp->GetCategoryList(null,null,array('cate_Order'=>'ASC'),null,null) as $cate}
<a href="{$cate->Url}">{$cate->Name}</a>
{/foreach}

函数一共有5个参数,分别对应:“选择项”、“获取指定值”、“排序、“调用数量”、“附加选项”。这个函数的构造在“zblogphp.php”文件里面,具体用法可以在这个文件里面搜索。


第二个函数是“$zbp->categorysbyorder”,这个函数用法如下:

{foreach $zbp->categorysbyorder as $cate}
<a href="{$cate->Url}">{$cate->Name}</a>
{/foreach}

这个函数可自定义项没有那么多,如果你要自定义获取一些数据,推荐用第一个函数。


如果你想在主题配置里面使用,还有一个封装好的函数。这个函数已经集成好了“select”选择及选中效果,在主题的配置项文件里面只需要像下面这样就可以让用户选择指定的分类了。

<select name="字段名">
<?php echo OutputOptionItemsOfCategories('自定义字段名');?>
</select>

上面的三个函数就可以解决大部分的关于调用网站分类的需求了,如果还有更复杂的需求,欢迎联系我们定制。

zblogphp挂接口往文章正文插入指定内容

如果你想批量在每篇文章正文的前面或者后面插入指定内容的话,可以按照本文教程操作。

ps:需要有一定的动手能力,另外进行前请务必把网站数据备份到本地以免发生意外。


第一:打开你所使用的主题或者插件里面的include.php文件,在“ActivePlugin”函数里面挂上这个接口:

Add_Filter_Plugin('Filter_Plugin_ViewPost_Template', '应用ID_Main');

第二:写一个自己的函数,如下:

function 应用ID_Main(&$template) {
    global $zbp;
    $article = $template->GetTags('article');
    $article->Content = '这里就是插入到每篇文章正文前面的内容'. $article->Content . '这里是插入到每篇文章正文后面的内容';
}

保存文件后,打开后台首页清空下缓存。然后打开一篇文章即可看到效果了。

zblog内置的cookie调用代码

zblog内置了cookie函数,可以更方便的设置cookie和调用cookie,本文就来分享下zblog内置cookie的调用代码。

js cookie:

根据key得到cookie:

zbp.cookie.get(CookieKey)

设置cookie:

zbp.cookie.set(sCookieName, sCookieValue, iExpireDays)

setcookie三个值分别对应的是:“cookie名”“cookie值”“cookie时间”,可以根据自己要求设置。

举个栗子:

点击"btn"这个按钮就写入一个名字叫“bg”的cookie,值为“1”,时间为“365”天,代码如下:

$(".btn").click(function(){
    zbp.cookie.set("bg", "1" , 365);
});

php cookie

php获取cookie值和写入cookie值用的是php原生函数。

写入cookie用的是“setcookie()”;

获取cookie用的是“$_COOKIE['']”;

这两个函数具体的使用方法请访问php官方文档:http://php.net/manual/zh/function.setcookie.php

zblog语言包切换设置和模板代码设置

zblog从1.4版本后就支持语言包了,现在仅支持“中文简体”、“中文繁体”和“英文”三种语言。

用户直接在后台--网站设置--网站语言里面切换即可:

1.png

切换之后网站后台就会即时变化成你设置的语言了。

但是网站前台却还是需要主题模板的支持,如果你的主题不支持多语言,而你又有一定的动手能力,可以按照本文教程步骤操作:

第一步 编写语言包文件

请在你的主题文件目录下建立language目录,并根据语言版本命名文件,如en.phpzh-cn.phpzh-tw.php等,其内容格式如下:

zh-cn.php

<?php
return array(
    'closemenu'=>'收起菜单',
);
?>

zh-tw.php

<?php
return array(
    'closemenu'=>'收起選單',
);
?>

en.php

<?php
return array(
    'closemenu'=>'Stow menu',
);
?>

第二步 载入语言包

在主题的函数文件include.php里面挂上接口:

$zbp->LoadLanguage('theme', '主题id');

第三步 使用

在代码中可用 $lang[主题ID][KEY] 来引用,如上述第一步例子,引用如下(注意大小写):

{$lang['主题id']['closemenu']}//收起菜单

做完以上步骤后,即完成了在前台的语言切换设置,你在后台切换语言后前台的语言也就会跟随变化了。

zblog评论模块的邮箱和网址可以解除限制吗?可以换成别的选项吗?

zblog自带的评论模块有“名称”、“邮箱”、“网址”和“内容”四个选项可以填写,有很多用户会有这两个问题:

zblog评论模块的邮箱和网址可以解除限制吗?

可以换成别的选项吗?

最近帮一个用户测试了下这个问题,最后的答案是“不能”。

你只能让这两个选项不显示,或者显示了不填写也行(因为不是必填项),但是你要把这两项弄成别的就过不了检测验证限制这一关了,详细如下:


首先评论模块的模板文件是“commentpost.php”,可以直接修改里面邮箱和网址两个选项的提示,也可以让这两个选项不显示,但是就算你修改了系统还是会有验证的。

邮箱里面填写的内容如果不是邮箱地址就会弹出提示;

网址里面填写的内容也会自动给你加上“http//”头;

所以就算你把这两个选项改成其他作用,例如把邮箱改成了电话,但是用户填写了电话号码会被提示“邮箱格式不正确,可能过长或为空”。这就很尴尬了对吧。


我们在测试的时候发现这个限制在“/zb_system/script/c_html_js_add.php”这个文件里面,但是,但是:

这个文件里面的是前端的js限制,就算你修改了这个文件里面的限制,后端还有一重检测限制...

不得不说这个检测限制是很严格的了。

如果你铁了心要去除后端的限制那也不是不可以...

但是我们更建议用挂接口的方式新建其他字段来实现这个功能。

官方教程如下:

1:挂上Filter_Plugin_Html_Js_ZbpConfig接口

输出

echo "zbpConfig.comment.inputs.telphone = {selector: '#inpTel' , required: true};";

elphone就是提交时的$_POST的参数名,#inpTel就是表单名


2:提交评论后,就进入了PostComment()函数处理了

挂上Filter_Plugin_PostComment_Core接口

在自己的处理函数中,保存$_POST表单的数据进$cmt

$cmt->Metas->Telphone = $_POST['telphone'];

原文地址:https://bbs.zblogcn.com/thread-103010.html

PS:这个比较复杂,需要一点水平!(猪说的)。

zblog报错:Undefined index: ZC SIDEBAR6 ORDER的原因和解决办法

今天遇到了一个用户网站打开报错提示“Undefined index: ZC SIDEBAR6 ORDER”,具体报错页面如下图:

2.png

询问客户后得知是在后台升级最新的zblogphp1.6之后出现的这个问题,再结合这个报错提示(zblogphp1.6以下的版本只有5个侧栏模块,zblogphp1.6增加到了7个,这个报错提示就是说第六个侧栏模块的一个常量没有定义),可以判断是升级没有完全成功导致的。

解决办法

1、先将网站web文件全部备份到本地保存好;

2、去zblog官网下载完整版的zblogphp1.6文件包,将“zb_system”文件夹内容全部上传替换;

3、去后台首页清空下缓存,看下问题是否解决。


PS:最近有非常多的用户升级zblogphp1.6版后出现各种各样的问题,只要判断不是主题或者插件引起的,都可以按照此方法测试下。

PSSSS:操作前请务必做好备份!

zblog1.6版本固定域名后出错的解决办法

之前天兴工作室写过一篇“zblog固定域名绑定错误 后台打不开了怎么办?”,最近zblog版本升级到了1.6,官方对于zblog固定域名后出错这个问题给了一个新的解决办法。

注意:本文方法仅适用于zblog1.6版本,低于1.6的版本均不能使用。

ftp链接上服务器,打开zb_users/c_option.php这个文件。

在最后一行 ); 的前面加上如下代码:

'ZC_PERMANENT_DOMAIN_FORCED_URL' => 'https://你的固定域名/',

保存提交上传替换即可。

正确的完整的代码如下图:

1.png

<< < 1 2 3 4 5 6 7 8 9 10 > >>
«    2025年7月    »
123456
78910111213
14151617181920
21222324252627
28293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.4

天兴工作室主题演示站点,如遇到问题请联系我们的在线qq:207649916咨询