phpcmsv9全站搜尋,不限模型!
phpcms不限模型搜尋的設(shè)定方法
phpcmsv9全站搜尋,不限模型,今天又漲知識了。大家都知道,phpcms搜尋時(shí)按照模型來搜尋的,用了這個(gè)方法後,就可以全站搜尋
#簡單修改一下v9預(yù)設(shè)的搜尋功能,可以不按模型搜尋全站內(nèi)容?
下面是被修改後的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 { function __construct() { $this->db = pc_base::load_model('search_model'); $this->content_db = pc_base::load_model('content_model'); } /** * 關(guān)鍵詞搜索 */ 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 = 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;//搜索原內(nèi)容 $sql_time = $sql_tid = ''; if($typeid) $sql_tid = ' AND typeid = '.$typeid; //按時(shí)間搜索 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']; //如果結(jié)果不為空 if(!empty($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); } var_dump($result); //如果結(jié)果不為空 if(!empty($result) || !empty($commend['id'])) { foreach($result as $_v) { if($_v['typeid']) $sids[$_v['typeid']][] = $_v['id']; } if(!empty($commend['id'])) { if($commend['typeid']) $sids[$commend['typeid']][] = $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) { $tid = $_k; $ids = array_unique($_val); $where = to_sqls($ids, '', 'id'); //獲取模型id $modelid = $model_type_cache[$tid]; //是否讀取其他模塊接口 if($modelid) { $this->content_db->set_model($modelid); /** * 如果表名為空,則為黃頁模型 */ if(empty($this->content_db->model_tablename)) { $this->content_db = pc_base::load_model('yp_content_model'); $this->content_db->set_model($modelid); } $datas = $this->content_db->select($where, '*'); } $data = array_merge($data,$datas); } $pages = $this->db->pages; $totalnums = $this->db->number; //如果分詞結(jié)果為空 if(!empty($segment_q)) { $replace = explode(' ', $segment_q); foreach($replace as $replace_arr_v) { $replace_arr[] = '<font color=red>'.$replace_arr_v.'</font>'; } foreach($data as $_k=>$_v) { $data[$_k]['title'] = str_replace($replace, $replace_arr, $_v['title']); $data[$_k]['description'] = str_replace($replace, $replace_arr, $_v['description']); } } else { foreach($data as $_k=>$_v) { $data[$_k]['title'] = str_replace($q, '<font color=red>'.$q.'</font>', $_v['title']); $data[$_k]['description'] = str_replace($q, '<font color=red>'.$q.'</font>', $_v['description']); } } } $execute_time = execute_time(); $pages = isset($pages) ? $pages : ''; $totalnums = isset($totalnums) ? $totalnums : 0; $data = isset($data) ? $data : ''; includetemplate('search','list'); } else { includetemplate('search','index'); } } public function public_get_suggest_keyword() { $url = $_GET['url'].'&q='.$_GET['q']; $trust_url = array('c8430fcf851e85818b546addf5bc4dd3'); $urm_md5 = md5($url); if (!in_array($urm_md5, $trust_url)) exit; $res = @file_get_contents($url); if(CHARSET != 'gbk') { $res = iconv('gbk', CHARSET, $res); } echo $res; } /** * 提示搜索接口 * TODO 暫時(shí)未啟用,用的是google的接口 */ public function public_suggest_search() { //關(guān)鍵詞轉(zhuǎn)換為拼音 pc_base::load_sys_func('iconv'); $pinyin = gbk_to_pinyin($q); if(is_array($pinyin)) { $pinyin = implode('', $pinyin); } $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) { echo $v['keyword']."\n"; } } } ?>
然後在header.html模板(不在這裡,就在其他的搜尋框頁面)上面增加一個(gè)「不限」的搜尋條件,將typeid對應(yīng)的值為0,search中的index.html和lists.html也做相同處理,效果就出來那,這樣只要不選擇模型那麼搜尋出來的結(jié)果就是所有模型中符合條件的資料。
PHP中文網(wǎng),大量的免費(fèi)PHPCMS教學(xué),歡迎線上學(xué)習(xí)!
以上是phpcms不限模型搜尋的設(shè)定方法的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

phpcms跳到詳情頁方法:1、使用header函數(shù)來產(chǎn)生跳轉(zhuǎn)連結(jié);2、循環(huán)遍歷內(nèi)容清單;3、取得內(nèi)容的標(biāo)題和詳情頁連結(jié);4、產(chǎn)生跳轉(zhuǎn)連結(jié)即可。

PHP CMS 是一種基於 PHP 的開源內(nèi)容管理系統(tǒng),用於管理網(wǎng)站內(nèi)容,其特點(diǎn)包括易用性、強(qiáng)大功能、可擴(kuò)充性、安全性高和免費(fèi)開源。它可以節(jié)省時(shí)間、提升網(wǎng)站品質(zhì)、增強(qiáng)協(xié)作並降低開發(fā)成本,廣泛應(yīng)用於新聞網(wǎng)站、部落格、企業(yè)網(wǎng)站、電子商務(wù)網(wǎng)站和社群論壇等各種網(wǎng)站。

phpcms不是完全免費(fèi)的。 phpcms屬於開源cms系統(tǒng),但開源並不等於免費(fèi),它有兩個(gè)版本:免費(fèi)版和商業(yè)版,免費(fèi)版僅限於個(gè)人非商業(yè)用途,而商業(yè)版需要購買授權(quán);個(gè)人可以作為研究使用,如果商業(yè)應(yīng)用,需要支付一定費(fèi)用。

標(biāo)題:微信登入整合指南:PHPCMS實(shí)戰(zhàn)在今日的網(wǎng)路時(shí)代,社群化登入已成為網(wǎng)站必備的功能之一。微信作為國內(nèi)最受歡迎的社群平臺之一,其登入功能也被越來越多的網(wǎng)站所採用。本文將介紹如何在PHPCMS網(wǎng)站中整合微信登入功能,並提供具體的程式碼範(fàn)例。第一步:註冊微信開放平臺帳號首先,我們需要在微信開放平臺上註冊一個(gè)開發(fā)者帳號,申請對應(yīng)的開發(fā)權(quán)限。登入[微信開放平臺]

PHPCMS使用者名稱安全設(shè)定策略大揭密在網(wǎng)站開發(fā)中,使用者帳戶安全一直是開發(fā)者十分重視的一個(gè)面向。而使用者名稱的安全設(shè)定也是至關(guān)重要的,因?yàn)槭褂谜呙Q不僅僅是使用者登入的憑證,還可能暴露使用者的個(gè)人訊息,甚至造成安全隱患。本文將揭秘PHPCMS中的使用者名稱安全設(shè)定策略,並給予具體的程式碼範(fàn)例供開發(fā)者參考。 1.防止常見使用者名為了提高使用者名稱的安全性,開發(fā)者應(yīng)該避免使用者使用過於

PHPCMS 是一款免費(fèi)開源的內(nèi)容管理系統(tǒng) (CMS),特色包括:開放原始碼、模組化、靈活、用戶友好和社群支援。它可用於創(chuàng)建各種類型的網(wǎng)站,包括企業(yè)網(wǎng)站、電子商務(wù)網(wǎng)站、部落格和社群論壇。技術(shù)需求包括:PHP 5.6 或更高版本、MySQL、MariaDB 或 PostgreSQL 資料庫以及 Apache 或 Nginx Web 伺服器。

phpcms有兩個(gè)版本比較知名,分別是:1、phpCMS4,支援自訂URL 規(guī)則,網(wǎng)站管理後臺美觀易用,前端外掛許多,可自由擴(kuò)充功能;2、phpCMS2008R1,支援多語言、多網(wǎng)站管理,頁面管理器便捷靈活方便,非常輕量,運(yùn)轉(zhuǎn)速度快。

phpcms用mysql資料庫。 phpcms是PHP開源網(wǎng)站管理系統(tǒng),採用PHP+MYSQL做為技術(shù)基礎(chǔ)來開發(fā)。 PHPCMS V9採用OOP方式進(jìn)行基礎(chǔ)運(yùn)行框架搭建,支援的PHP版本是PHP5以上、支援的MYSQL版本是MySql 4.1以上版本。
