为文章点赞:TeStat插件(2015.11.25更新)
2015.11.25更新
为点赞添加了样式及js(依赖Jquery);
调用代码示例:
<a class="btn-like" data-cid="<?php $this->cid();?>" data-num="<?php $this->likesNum();?>">喜欢 <span class="post-likes-num"><?php $this->likesNum();?></span></a>
其中:class="btn-like"
以及data-cid=""
为必须
2015.10.21更新
经常想看看TE的性能到底怎么样,却没有很直观的手段,所以找了找Tp的源码,拷贝了Trace
中部分统计的功能
- 增加加载时间的统计
- 增加内存占用的统计
- 增加加载文件数的统计
使用<?php TeStat_Plugin::runtime(); ?>
,即可调用
具体效果请见本页页底
最近又折腾了一下主题,其中希望用到点赞的功能,网上也能找到现成的插件,不过这里还是记录一下吧
一般情况下点赞的步骤
- 点击赞按钮
- ajax发布请求并获取结果
- 解析请求结果并提示
前端因为是配合主题的,这里就不多说了
插件解决的就是ajax请求的地址的问题
Helper::addAction('likes', 'TeStat_Action');
通过Helper::addAction
添加一个动作,第一个参数是动作名称,效果就是siteUrl/action/likes
,第二个参数标识执行次动作的类/函数。TeStat_Action
表示的就是TeStat插件目录下的Action.php
文件。Action.php
文件写法类似:
class TeStat_Action extends Typecho_Widget implements Widget_Interface_Do{
public function action(){
//todo
}
}
最终的请求就发送到了action
方法上,处理具体的业务逻辑。
在具体的处理的过程中,用户的赞过的文章的id会存储在cookie中,避免用户重复点赞。用户浏览数也是使用相同的策略
(当用户禁用cookie或清除cookie后,能够继续点赞,不够严谨,但是综合考虑还是使用的cookie)
使用方法:
$this->viewsNum(); //浏览数
$this->likesNum(); //点赞数
最后
因为是主题配套的插件,想要使用的话还需要自己写前端的代码……
下载地址:TeStat.rar