Emlog添加tag计数器
看着后台一大片的标签无从下手,所以我就想到添加个计数器,清理不经常被访问的标签。
这是对emlog程序进行HACK,而且涉及到数据库,请先备份数据库,请谨慎修改操作!!!
1、运行数据库添加对tag表添加字段,建议使用phpmyadmin修改,其中的emlog_tag的前缀改为你当前使用的前缀;
ALTER TABLE emlog_tag ADD count int(10) NOT NULL default '0' AFTER gid;
2、在tag_model.php添加计数函数;
function updateTagViewCount($tagName) { $this->db->query("UPDATE " . DB_PREFIX . "tag SET count=count+1 WHERE tagname='$tagName'"); }
3、在tag_controller.php增加每次访问标签次数增加
$blogIdStr = $Tag_Model->getTagByName($tag);//在这个代码下面添加下面的代码 $Tag_Model->updateTagViewCount($tag);
4、修改tag_model.php的getTag函数,后台标签排序修改(以数量倒序,以标签的添加顺序倒序)
/** * 获取标签 * * @param int $blogId * @return array */ function getTag($blogId = '') { $tags = array(); $condition = $blogId ? "WHERE gid LIKE '%,$blogId,%'" : ''; $query = $this->db->query("select tagname,tid,gid from ".DB_PREFIX."tag $condition ORDER BY count DESC,tid DESC");//添加ORDER BY count DESC,tid DESC以数量倒序,以标签的添加顺序倒序 while ($row = $this->db->fetch_array($query)) { $row['tagname'] = htmlspecialchars($row['tagname']); $row['tid'] = intval($row['tid']); $row['nums'] = count(explode(',', trim($row['gid'], ","))); $tags[] = $row; } return $tags; }