当前位置:首页 > 原创作品 > emlog添加tag计数器

emlog添加tag计数器

作者:星之宇 ┊ 时间:2014-8-23 16:19 ┊ 分类: 原创作品 ┊ 阅读:9884 ┊ 评论:0

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;
	}
目前有 0 条评论