emlog添加tag访问计数器,用于清理tag标签,文章越来越多,标签也越来多,需要清理标签提升emlog的性能。看着后台一大片的标签无从下手,所以我就想到添加个计数器,清理不经常被访问的标签。这是对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;
 }
谢谢赞赏
(微信扫一扫或长按识别)
 
				
 iT猫itcat.cn
iT猫itcat.cn