phpcms不限模型搜索的设置方法
phpcmsv9全站搜索,不限模型!
phpcms不限模型搜索的设置方法
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 { function __construct() { $this->db = pc_base::load_model('search_model'); $this->content_db = pc_base::load_model('content_model'); } /** * 关键词搜索 */ 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;//搜索原内容 $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(!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); //如果结果不为空 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; //如果分词结果为空 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 暂时未启用,用的是google的接口 */ public function public_suggest_search() { //关键词转换为拼音 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模板(不在这里,就在其他的搜索框页面)上面增加一个“不限”的搜索条件,将typeid对应的值为0,search中的index.html和lists.html也做相同处理,效果就出来那,这样只要不选择模型那么搜索出来的结果就是所有模型中符合条件的数据。
PHP中文网,大量的免费PHPCMS教程,欢迎在线学习!
Atas ialah kandungan terperinci phpcms不限模型搜索的设置方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Bagaimana untuk melompat ke halaman butiran dalam phpcms: 1. Gunakan fungsi pengepala untuk menjana pautan lompat;

PHP CMS ialah sistem pengurusan kandungan sumber terbuka berasaskan PHP untuk mengurus kandungan tapak web Ciri-cirinya termasuk kemudahan penggunaan, kefungsian berkuasa, berskala, keselamatan tinggi dan sumber terbuka percuma. Ia boleh menjimatkan masa, meningkatkan kualiti laman web, meningkatkan kerjasama dan mengurangkan kos pembangunan, dan digunakan secara meluas dalam pelbagai laman web seperti laman web berita, blog, laman web korporat, laman web e-dagang dan forum komuniti.

Tajuk: Panduan Integrasi Log Masuk WeChat: PHPCMS dalam Tindakan Dalam era Internet hari ini, log masuk sosial telah menjadi salah satu fungsi penting laman web. Sebagai salah satu platform sosial yang paling popular di China, fungsi log masuk WeChat juga digunakan oleh semakin banyak laman web. Artikel ini akan memperkenalkan cara untuk mengintegrasikan fungsi log masuk WeChat dalam tapak web PHPCMS dan memberikan contoh kod khusus. Langkah 1: Daftar Akaun Platform Terbuka WeChat Pertama, kita perlu mendaftar akaun pembangun pada Platform Terbuka WeChat dan memohon kebenaran pembangunan yang sepadan. Log masuk [WeChat open platform]

phpcms tidak sepenuhnya percuma. phpcms ialah sistem cms sumber terbuka, tetapi sumber terbuka tidak bermakna ia mempunyai dua versi: versi percuma dan versi komersil gunakannya untuk penyelidikan, dan jika ia adalah aplikasi komersial, anda perlu membayar yuran tertentu.

PHPCMS ialah sistem pengurusan kandungan (CMS) percuma dan sumber terbuka yang menampilkan: sumber terbuka, modulariti, fleksibiliti, mesra pengguna dan sokongan komuniti. Ia boleh digunakan untuk mencipta pelbagai jenis tapak web, termasuk tapak web korporat, tapak web e-dagang, blog dan forum komuniti. Keperluan teknikal termasuk: PHP 5.6 atau lebih tinggi, pangkalan data MySQL, MariaDB atau PostgreSQL dan pelayan web Apache atau Nginx.

Terdapat dua versi phpcms yang terkenal, iaitu: 1. phpCMS4, yang menyokong peraturan URL tersuai Latar belakang pengurusan laman web adalah cantik dan mudah digunakan, dan mempunyai banyak pemalam bahagian hadapan, yang boleh mengembangkan fungsi secara bebas .phpCMS2008R1, yang menyokong pengurusan berbilang bahasa, berbilang tapak dan halaman Pengurus adalah mudah, fleksibel, sangat ringan dan berjalan pantas.

phpcms menggunakan pangkalan data mysql. phpcms ialah sistem pengurusan laman web sumber terbuka PHP, dibangunkan menggunakan PHP+MYSQL sebagai asas teknikal. PHPCMS V9 menggunakan kaedah OOP untuk membina rangka kerja operasi asas Versi PHP yang disokong ialah PHP5 dan ke atas, dan versi MYSQL yang disokong ialah MySql 4.1 dan ke atas.

Strategi tetapan keselamatan nama pengguna PHPCMS didedahkan Dalam pembangunan laman web, keselamatan akaun pengguna sentiasa menjadi aspek yang amat dititikberatkan oleh pembangun. Tetapan keselamatan nama pengguna juga penting, kerana nama pengguna bukan sahaja bukti kelayakan log masuk pengguna, tetapi mungkin juga mendedahkan maklumat peribadi pengguna dan juga menyebabkan risiko keselamatan. Artikel ini akan mendedahkan strategi tetapan keselamatan nama pengguna dalam PHPCMS dan memberikan contoh kod khusus untuk dirujuk oleh pembangun. 1. Halang nama pengguna biasa Untuk meningkatkan keselamatan nama pengguna, pembangun harus menghalang pengguna daripada menggunakan secara berlebihan
