phpcmsv9全站搜尋,不限模型,今天又漲知識了。大家都知道,phpcms搜尋時按照模型來搜尋的,用了這個方法後,就可以全站搜尋
簡單修改一下v9預設的搜尋功能,可以不按模型搜尋全站內容
下面是被修改後的search模組中的index.php檔案
<?php
defined('in_phpcms') or exit('no permission resources.');
pc_base::load_sys_class('form','',0);
pc_base::load_sys_class('format','',0);
class index
/***/
public function init()
$typeid = empty($_get['typeid']) ? 0 : intval($_get['typeid']);
$time = empty($_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_time = $sql_tid = '';
if($typeid) $sql_tid = ' and typeid = '.$typeid;
//按時間搜尋
if($time == 'day') elseif($time == 'week') elseif($time == 'month') elseif($time == 'year') else
if($page==1 && !$setting['sphinxenable']) else
//如果開啟sphinx
if($setting['sphinxenable'])
} else
var_dump($result);
//如果結果不為空
if(!empty($result) || !empty($commend['id']))
if(!empty($commend['id']))
$model_type_cache = getcache('type_model_'.$siteid,'search');
$model_type_cache = array_flip($model_type_cache);
$data = array();
foreach($sids as $_k=>$_val)
$datas = $this->content_db->select($where, '*');
}$data = array_merge($data,$datas);
}$pages = $this->db->pages;
$totalnums = $this->db->number;
//如果分詞結果為空
if(!empty($segment_q))
foreach($data as $_k=>$_v)
} else }}
$execute_time = execute_time();
$pages = isset($pages) ? $pages : '';
$totalnums = isset($totalnums) ? $totalnums : 0;
$data = isset($data) ? $data : '';
include template('search','list');
} else
} public function public_get_suggest_keyword()
echo $res;
} /**
* 提示搜尋介面
* todo 暫時未啟用,用的是google的介面
*/public function public_suggest_search()
$this->keyword_db = pc_base::load_model('search_keyword_model');
$suggest = $this->keyword_db->select("pinyin like '$pinyin%'", '*', 10, 'searchnums desc');
foreach($suggest as $v)
}}?>
然後在header.html模板(不在這裡,就在其他的搜尋框頁面)上面增加乙個「不限」的搜尋條件,將typeid對應的值為0,search中的index.html和lists.html也做相同處理,效果就出來那,本文由程式設計師人生網www.wfuyu.com整理發布,這樣只要不選擇模型那麼搜尋出來的結果就是所有模型中符合條件的資料
PHPCMS V9呼叫全站資料
跨模型 跨欄目呼叫最新資料 param modelid 模型id 可以有多個用,隔開 param limit 要呼叫的數量 param siteid 站點id 預設為1 return array 返回乙個陣列 function news modelid 1,2 limit 20 siteid 1 f...
phpcms V9如何呼叫全站文章排行
想在首頁新增瀏覽排行功能,卻發現phpcms竟然不支援呼叫全站文章排行。仔細研究了phpcms原始碼,終於找到解決辦法。預設情況下,phpcms只支援呼叫當前文章排行,如下 其中 catid為待呼叫欄目的id,如果想實現全站呼叫,需要修改phpcms modules content classes ...
phpcms V9 全站文章點選排行榜標籤
開啟 phpcms modules content classes content tagwww.cppcns.com.class.php檔案 找個位置新增以下 首行時間可以自由修改,方便後期查詢 複製 如下 2013年4月23日 sitehits站點點選排行 param data fluxzqxf...