最新文章:

首页 笔记

emlog 修改搜索功能:增加按标签名模糊搜索

发布时间:2017年02月11日 评论数:0 阅读数:1742

    QQ截图20170211105912.png


    最近建了个个人壁纸分享的图站:http://img.ijglb.com/

    然后遇到了一个搜索上的问题,emlog的搜索是很简单的根据标题来搜索的,对于我的图站来说,标题的意义比较小,主要还是靠标签。

    只好自己凭借C#的经验和一点点PHP基础知识来实现能够搜索标签的功能了。

    贴一下实现的代码(emlog版本5.3.1):

    1、修改/include/model/tag_model.php增加:

    function searchTagByName($tagName) {
    		$tag = array();
    		$blogIdStr = "";
    		$query = $this->db->query("SELECT tagname,gid FROM ".DB_PREFIX."tag WHERE tagname like '%$tagName%'");
    		if(count($query)==0){
    			return false;
    		}
    		while ($row = $this->db->fetch_array($query)) {
    			$blogIdStr .= substr(trim($row['gid']),1);
    		}
    		//$blogIdStr = substr($blogIdStr),0,-1);
    		return $blogIdStr;
    	}
    2、修改/include/controller/search_controller.php


    找到:

    $sqlSegment = "and title like '%{$keyword}%' order by date desc";
    修改为:


                    $Tag_Model = new Tag_Model();
    		$blogIdStr = $Tag_Model->searchTagByName($keyword);
    		if ($blogIdStr == false) {
    			$sqlSegment = "and title like '%{$keyword}%' order by date desc";
    		}
    		else{
    			$idArr = substr($blogIdStr,0,-1);
    			$sqlSegment = "and title like '%{$keyword}%' or gid in ($idArr) order by date desc";
    		}


    以上为我的实现方法,就是不清楚效率如何。

    实现过程中遇到一个问题,就是注释掉的部分:

    $blogIdStr = substr($blogIdStr),0,-1);
    使用这个的话,所有用到Tag_Model的都会报500错误,由于不清楚PHP,所以不懂是什么原因。


    最后的曲线救国就是把截取放在search_controller.php里面来做:

    $idArr = substr($blogIdStr,0,-1);
    这个蛋疼的问题还是留到以后学PHP的时候了解吧...


二维码加载中...
本文作者:极光萝卜      文章标题: emlog 修改搜索功能:增加按标签名模糊搜索
本文地址:http://www.ijglb.com/post/46
版权声明:若无注明,本文皆为“极光萝卜丨某菜鸟的里世界”原创,转载请保留文章出处。