修改自(sf_praise_sdk)插件;
该插件主要面向主题制作者,方便主题制作者快速生成点赞、支持、顶踩功能!
新增点赞加1特效
新增后台设置赞过提示
新增停用插件可选择是否删表
使用说明:
安装并启用该插件后,主题制作者无需编写php后台代码,在模板文件中插入指定标签即可。
一、文章页调用方法( 在post-single.php里使用)
{$san_praise_sdk.value1}输出第一个数值
{$san_praise_sdk.value5}输出第五个数值。
本插件最多支持5个数值。实现点击支持加1功能时,使用{$san_praise_sdk.value1},其他不用即可。实现顶踩功能,可以使用2个数值。
{$san_praise_sdk.check}输出是否已经投过票 0未投票/1已投过
二、列表页调用方法
首先加入{$san_praise_sdk=SAN_praise_sdk::findPostCount($article->ID);}
随后可以像文章页一样调用输出数值。例如在列表页文章处显示多少人顶多少人踩。
版本 1.1 更新说明
新增列表批量查询功能,减少了数据库查询次数。调用方式如下:
{php}
// 获取所有文章ID
$postIds = array_map(function($article) {
return $article->ID;
}, $articles);
// 执行批量查询
SAN_praise_sdk::findPostCountsBatch($postIds);
{/php}
在 foreach 列表循环之前,先批量获取文章的 ID。
{foreach $articles as $article}
{if $article.IsTop}
{template:post-istop}
{else}
{template:post-multi}
{/if}
{/foreach}
原有的单篇文章点赞数查询代码无需修改,仍放在 istop 或 multi 文件中使用:
{$san_praise_sdk=SAN_praise_sdk::findPostCount($article->ID, true);}
批量查询时,确保调用 findPostCount 时添加 true 参数。
三、html标签
在需要投票的标签中加上class:san-praise-sdk 同时附上sfa='click' data-postid='文章id' data-value='第几个数值' 属性,此标签会自动捕获click事件,并提交一次投票!
回调函数(非必须):在标签上增加data-ok、data-check、data-error属性,属性值为函数名,回调时带入2个参数,第一个是文章id,第二个是第几个数值。
成功回调data-ok,已经投过票回调data-check,错误回调data-error。
更新数值方法:回写时会获取标签内html数据(整数),然后+1写入。回写标记为 class:san-praise-sdk 同时附上data-postid='文章ID' data-value='第几个数值' sfa='num' 属性。切记改标签内只能填写整数,不得有其他字符。
关于回调的其他说明,
成功调用后更新数值一定会执行,当然可以没有响应标签,js不会出错。如果有data-ok回调,会调用。
如果没有data-check回调,会调用默认的提示信息,如果想什么都不做,请设置一个空方法。
所有事件在整个网站都有效果,所以列表页也是可以点击投票的,如果不想有点击效果,去掉sfa='click' 即可。
四、示例
<div class="san-praise-sdk" sfa='click' data-postid='{$san_praise_sdk.postid}' data-value="1" data-ok='zijiqugemingzi'>
顶(<span class="san-praise-sdk" sfa='num' data-value='1' data-postid='{$san_praise_sdk.postid}'>{$san_praise_sdk.value1}</span>)
</div>
<div class="san-praise-sdk" sfa='click' data-postid='{$san_praise_sdk.postid}' data-value="2">
踩<span class="san-praise-sdk" sfa='num' data-value='2' data-postid='{$san_praise_sdk.postid}'>{$san_praise_sdk.value2}</span>)
</div>
data-ok回调函数示例
function zijiqugemingzi(postid,index){
//你的代码
}
本文由隔壁老李于2024-10-16发表在极致时空,如有疑问,请联系我们。
本文链接:https://www.jz52.com/post/2324.html