A5下载站:努力做内容最丰富最安全的下载站! 网站地图最新更新下载排行专题软件发布

热门软件

地铁跑酷

冒险迷岛

全民迷宫

连连消大作战

小河狸创客

阿里健康医鹿

支付宝app

番薯小说

MOMO陌陌

虾米音乐app

位置导航:A5下载 > 源码技巧 > 父类数据

phpcms v9最新全站搜索教程分享

时间:2015-05-25 09:54来源:未知作者:sa浏览:143
phpcms v9的搜索是根据模型来搜索的,今天分享一个不用模型搜索,直接全站搜索的代码,废话不多说了。看教程……

phpcms v9的搜索是根据模型来搜索的,今天分享一个不用模型搜索,直接全站搜索的代码,废话不多说了。看教程

第一步:需要在phpcms v9后台 模块=》全站搜索=》模块配置里开启全站搜索,如图:

第二步:替换代码(此步骤改变了phpcms v9 全站搜索的其它配置)

找到phpcmsmodulessearchindex.php 里的function init()函数

替换成

/**

* 关键词搜索

*/

public function init() {

//获取siteid

$siteid = isset($_REQUEST['siteid']) && trim($_REQUEST['siteid']) ? intval($_REQUEST['siteid']) : 1;

$SEO = seo($siteid);

//搜索配置

$search_setting = getcache('search');

$setting = $search_setting[$siteid];

$search_model = getcache('search_model_'.$siteid);

$type_module = getcache('type_module_'.$siteid);

if(isset($_GET['q'])) {

if(trim($_GET['q'])=='') {

header('Location: '.APP_PATH.'index.php?m=search');exit;

}

$typeid = emptyempty($_GET['typeid']) ? 0 : intval($_GET['typeid']);

$time = emptyempty($_GET['time']) || !in_array($_GET['time'],array('all','day','month','year','week')) ? 'all' : trim($_GET['time']);

$page = isset($_GET['page']) ? intval($_GET['page']) : 1;

$pagesize = 10;

$q = safe_replace(trim($_GET['q']));

$q = new_html_special_chars(strip_tags($q));

$q = str_replace('%', '', $q); //过滤'%',用户全文搜索

$search_q = $q; //搜索原内容

//全站搜索

$sql = "select ";

$sql_time = $sql_tid = '';

if($typeid) $sql_tid = ' AND typeid = '.$typeid;

//按时间搜索

if($time == 'day') {

$search_time = SYS_TIME - 86400;

$sql_time = ' AND adddate > '.$search_time;

} elseif($time == 'week') {

$search_time = SYS_TIME - 604800;

$sql_time = ' AND adddate > '.$search_time;

} elseif($time == 'month') {

$search_time = SYS_TIME - 2592000;

$sql_time = ' AND adddate > '.$search_time;

} elseif($time == 'year') {

$search_time = SYS_TIME - 31536000;

$sql_time = ' AND adddate > '.$search_time;

} else {

$search_time = 0;

$sql_time = '';

}

if($page==1 && !$setting['sphinxenable']) {

//精确搜索

$commend = $this->db->get_one("`siteid`= '$siteid' $sql_tid $sql_time AND `data` like '%$q%'");

} else {

$commend = '';

}

//如果开启sphinx

if($setting['sphinxenable']) {

$sphinx = pc_base::load_app_class('search_interface', '', 0);

$sphinx = new search_interface();

$offset = $pagesize*($page-1);

$res = $sphinx->search($q, array($siteid), array($typeid), array($search_time, SYS_TIME), $offset, $pagesize, '@weight desc');

$totalnums = $res['total'];

//如果结果不为空

if(!emptyempty($res['matches'])) {

$result = $res['matches'];

}

} else {

$sql = "`siteid`= '$siteid' $sql_tid $sql_time AND `data` like '%$q%'";

$result = $this->db->listinfo($sql, 'searchid DESC', $page, 10);

$das = $result;

}

ok,搞定,这个功能做项目中遇到的,客户非要全站搜索,没办法。