Maison Tutoriel CMS PHPCMS Comment configurer la recherche de modèles illimitée phpcms

Comment configurer la recherche de modèles illimitée phpcms

Feb 05, 2020 am 10:18 AM
phpcms

Comment configurer la recherche de modèles illimitée phpcms

Recherchez sur tout le site phpcmsv9, sans vous limiter aux modèles !

Comment configurer la recherche de modèle illimitée phpcms

Recherche de site complet phpcmsv9, modèle illimité, aujourd'hui j'ai acquis plus de connaissances. Comme nous le savons tous, les recherches phpcms basées sur des modèles. Après avoir utilisé cette méthode, vous pouvez rechercher sur l'ensemble du site

Modifiez simplement la fonction de recherche par défaut de la v9 et vous pouvez rechercher sur tout le contenu du site sans modèles

Ce qui suit est le fichier index.php dans le module de recherche modifié

<?php
defined(&#39;IN_PHPCMS&#39;) or exit(&#39;No permission resources.&#39;);
pc_base::load_sys_class(&#39;form&#39;,&#39;&#39;,0);
pc_base::load_sys_class(&#39;format&#39;,&#39;&#39;,0);
class index {
  function __construct() {
    $this->db = pc_base::load_model(&#39;search_model&#39;);
    $this->content_db = pc_base::load_model(&#39;content_model&#39;);
  }
  
  /**
   * 关键词搜索
   */
  public function init() {
    //获取siteid
    $siteid = isset($_REQUEST[&#39;siteid&#39;]) && trim($_REQUEST[&#39;siteid&#39;]) ? intval($_REQUEST[&#39;siteid&#39;]) : 1;
    $SEO = seo($siteid);
 
    //搜索配置
    $search_setting = getcache(&#39;search&#39;);
    $setting = $search_setting[$siteid];
 
    $search_model = getcache(&#39;search_model_&#39;.$siteid);
    $type_module = getcache(&#39;type_module_&#39;.$siteid);
 
    if(isset($_GET[&#39;q&#39;])) {
      if(trim($_GET[&#39;q&#39;])==&#39;&#39;) {
        header(&#39;Location: &#39;.APP_PATH.&#39;index.php?m=search&#39;);exit;
      }
      $typeid = empty($_GET[&#39;typeid&#39;]) ? 0 : intval($_GET[&#39;typeid&#39;]);
      $time = empty($_GET[&#39;time&#39;]) || !in_array($_GET[&#39;time&#39;],array(&#39;all&#39;,&#39;day&#39;,&#39;month&#39;,&#39;year&#39;,&#39;week&#39;)) ? &#39;all&#39; : trim($_GET[&#39;time&#39;]);
      $page = isset($_GET[&#39;page&#39;]) ? intval($_GET[&#39;page&#39;]) : 1;
      $pagesize = 10;
      $q = safe_replace(trim($_GET[&#39;q&#39;]));
      $q = new_html_special_chars(strip_tags($q));
      $q = str_replace(&#39;%&#39;, &#39;&#39;, $q);//过滤&#39;%&#39;,用户全文搜索
      $search_q = $q;//搜索原内容
 
      $sql_time = $sql_tid = &#39;&#39;;
      if($typeid) $sql_tid = &#39; AND typeid = &#39;.$typeid;
      //按时间搜索
      if($time == &#39;day&#39;) {
        $search_time = SYS_TIME - 86400;
        $sql_time = &#39; AND adddate > &#39;.$search_time;
      } elseif($time == &#39;week&#39;) {
        $search_time = SYS_TIME - 604800;
        $sql_time = &#39; AND adddate > &#39;.$search_time;
      } elseif($time == &#39;month&#39;) {
        $search_time = SYS_TIME - 2592000;
        $sql_time = &#39; AND adddate > &#39;.$search_time;
      } elseif($time == &#39;year&#39;) {
        $search_time = SYS_TIME - 31536000;
        $sql_time = &#39; AND adddate > &#39;.$search_time;
      } else {
        $search_time = 0;
        $sql_time = &#39;&#39;;
      }
      if($page==1 && !$setting[&#39;sphinxenable&#39;]) {
        //精确搜索
        $commend = $this->db->get_one("`siteid`= &#39;$siteid&#39; $sql_tid $sql_time AND `data` like &#39;%$q%&#39;");
      } else {
        $commend = &#39;&#39;;
      }
      //如果开启sphinx
      if($setting[&#39;sphinxenable&#39;]) {
        $sphinx = pc_base::load_app_class(&#39;search_interface&#39;, &#39;&#39;, 0);
        $sphinx = new search_interface();
        
        $offset = $pagesize*($page-1);
        $res = $sphinx->search($q, array($siteid), array($typeid), array($search_time, SYS_TIME), $offset, $pagesize, &#39;@weight desc&#39;);
        $totalnums = $res[&#39;total&#39;];
        //如果结果不为空
        if(!empty($res[&#39;matches&#39;])) {
          $result = $res[&#39;matches&#39;];
        }
      } else {
        
        $sql = "`siteid`= &#39;$siteid&#39; $sql_tid $sql_time AND `data` like &#39;%$q%&#39;";
        
 
        $result = $this->db->listinfo($sql, &#39;searchid DESC&#39;, $page, 10);
      }
       var_dump($result);
      //如果结果不为空
      if(!empty($result) || !empty($commend[&#39;id&#39;])) {
        foreach($result as $_v) {
          if($_v[&#39;typeid&#39;]) $sids[$_v[&#39;typeid&#39;]][] = $_v[&#39;id&#39;];
        }
 
        if(!empty($commend[&#39;id&#39;])) {
          if($commend[&#39;typeid&#39;]) $sids[$commend[&#39;typeid&#39;]][] = $commend[&#39;id&#39;];
        }
        $model_type_cache = getcache(&#39;type_model_&#39;.$siteid,&#39;search&#39;);
        $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, &#39;&#39;, &#39;id&#39;);
          //获取模型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(&#39;yp_content_model&#39;);
              $this->content_db->set_model($modelid);
 
            }
            $datas = $this->content_db->select($where, &#39;*&#39;);
          }
          $data = array_merge($data,$datas);
        }
        $pages = $this->db->pages;
        $totalnums = $this->db->number;
       
        //如果分词结果为空
        if(!empty($segment_q)) {
          $replace = explode(&#39; &#39;, $segment_q);
          foreach($replace as $replace_arr_v) {
            $replace_arr[] =  &#39;<font color=red>&#39;.$replace_arr_v.&#39;</font>&#39;;
          }
          foreach($data as $_k=>$_v) {
            $data[$_k][&#39;title&#39;] = str_replace($replace, $replace_arr, $_v[&#39;title&#39;]);
            $data[$_k][&#39;description&#39;] = str_replace($replace, $replace_arr, $_v[&#39;description&#39;]);
          }
        } else {
          foreach($data as $_k=>$_v) {
            $data[$_k][&#39;title&#39;] = str_replace($q, &#39;<font color=red>&#39;.$q.&#39;</font>&#39;, $_v[&#39;title&#39;]);
            $data[$_k][&#39;description&#39;] = str_replace($q, &#39;<font color=red>&#39;.$q.&#39;</font>&#39;, $_v[&#39;description&#39;]);
          }
        }
      }
      $execute_time = execute_time();
      $pages = isset($pages) ? $pages : &#39;&#39;;
      $totalnums = isset($totalnums) ? $totalnums : 0;
      $data = isset($data) ? $data : &#39;&#39;;
      
      includetemplate(&#39;search&#39;,&#39;list&#39;);
    } else {
      includetemplate(&#39;search&#39;,&#39;index&#39;);
    }
  }
 
  
  public function public_get_suggest_keyword() {
    $url = $_GET[&#39;url&#39;].&#39;&q=&#39;.$_GET[&#39;q&#39;];
    $trust_url = array(&#39;c8430fcf851e85818b546addf5bc4dd3&#39;);
    $urm_md5 = md5($url);
    if (!in_array($urm_md5, $trust_url)) exit;
    
    $res = @file_get_contents($url);
    if(CHARSET != &#39;gbk&#39;) {
      $res = iconv(&#39;gbk&#39;, CHARSET, $res);
    }
    echo $res;
  }
  
  /**
   * 提示搜索接口
   * TODO 暂时未启用,用的是google的接口
   */
  public function public_suggest_search() {
    //关键词转换为拼音
    pc_base::load_sys_func(&#39;iconv&#39;);
    $pinyin = gbk_to_pinyin($q);
    if(is_array($pinyin)) {
      $pinyin = implode(&#39;&#39;, $pinyin);
    }
    $this->keyword_db = pc_base::load_model(&#39;search_keyword_model&#39;);
    $suggest = $this->keyword_db->select("pinyin like &#39;$pinyin%&#39;", &#39;*&#39;, 10, &#39;searchnums DESC&#39;);
    
    foreach($suggest as $v) {
      echo $v[&#39;keyword&#39;]."\n";
    }
 
    
  }
}
?>
Copier après la connexion

Ajoutez ensuite un "illimité" au modèle header.html (pas ici, juste sur d'autres pages du champ de recherche) Pour les conditions de recherche , définissez la valeur correspondante de typeid sur 0 et effectuez le même traitement pour index.html et lists.html dans la recherche, et l'effet sera là, tant que le modèle n'est pas sélectionné, les résultats de la recherche. seront les données qui répondent aux conditions dans tous les modèles.

Site Web PHP chinois, un grand nombre de Tutoriels PHPCMS gratuits, bienvenue pour apprendre en ligne !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment accéder à la page de détails dans phpcms Comment accéder à la page de détails dans phpcms Jul 27, 2023 pm 05:23 PM

Comment accéder à la page de détails dans phpcms : 1. Utilisez la fonction d'en-tête pour générer un lien de saut ; 2. Parcourez la liste de contenu ; 3. Obtenez le lien de la page de titre et de détails du contenu ;

Quel framework est phpcms ? Quel framework est phpcms ? Apr 20, 2024 pm 10:51 PM

PHP CMS est un système de gestion de contenu open source basé sur PHP pour gérer le contenu de sites Web. Ses fonctionnalités incluent la facilité d'utilisation, des fonctionnalités puissantes, l'évolutivité, une haute sécurité et un open source gratuit. Il permet de gagner du temps, d'améliorer la qualité des sites Web, d'améliorer la collaboration et de réduire les coûts de développement. Il est largement utilisé dans divers sites Web tels que les sites Web d'actualités, les blogs, les sites Web d'entreprise, les sites Web de commerce électronique et les forums communautaires.

Guide d'intégration de connexion WeChat : Combat pratique PHPCMS Guide d'intégration de connexion WeChat : Combat pratique PHPCMS Mar 29, 2024 am 09:18 AM

Titre : Guide d'intégration de la connexion WeChat : PHPCMS en action À l'ère d'Internet d'aujourd'hui, la connexion sociale est devenue l'une des fonctions essentielles d'un site Web. En tant que l’une des plateformes sociales les plus populaires en Chine, la fonction de connexion de WeChat est également utilisée par de plus en plus de sites Web. Cet article expliquera comment intégrer la fonction de connexion WeChat dans le site Web PHPCMS et fournira des exemples de code spécifiques. Étape 1 : Enregistrez un compte WeChat Open Platform Tout d'abord, nous devons enregistrer un compte de développeur sur WeChat Open Platform et demander les autorisations de développement correspondantes. Connectez-vous [Plateforme ouverte WeChat]

Est-ce que phpcms n'est pas gratuit ? Est-ce que phpcms n'est pas gratuit ? Mar 01, 2023 am 10:24 AM

phpcms n'est pas totalement gratuit. phpcms est un système cms open source, mais open source ne signifie pas gratuit. Il existe en deux versions : la version gratuite et la version commerciale. La version gratuite est limitée à un usage personnel non commercial, tandis que la version commerciale nécessite l'achat d'une licence par les particuliers. utilisez-le pour la recherche, et s’il s’agit d’une application commerciale, vous devez payer certains frais.

Que signifie phpcms ? Que signifie phpcms ? Apr 20, 2024 pm 10:39 PM

PHPCMS est un système de gestion de contenu (CMS) gratuit et open source qui propose : open source, modularité, flexibilité, convivialité et support communautaire. Il peut être utilisé pour créer différents types de sites Web, notamment des sites Web d'entreprise, des sites Web de commerce électronique, des blogs et des forums communautaires. Les exigences techniques incluent : PHP 5.6 ou supérieur, base de données MySQL, MariaDB ou PostgreSQL et serveur Web Apache ou Nginx.

Quelles versions de phpcms existe-t-il ? Quelles versions de phpcms existe-t-il ? Jun 14, 2023 pm 01:13 PM

Il existe deux versions bien connues de phpcms, à savoir : 1. phpCMS4, qui prend en charge les règles d'URL personnalisées. L'arrière-plan de gestion du site Web est beau et facile à utiliser, et dispose de nombreux plug-ins frontaux, qui peuvent étendre librement les fonctions. .phpCMS2008R1, qui prend en charge la gestion multilingue et multi-sites et le gestionnaire de pages est pratique, flexible, très léger et fonctionne rapidement.

Quelle base de données phpcms utilise-t-il ? Quelle base de données phpcms utilise-t-il ? Feb 21, 2023 pm 06:57 PM

phpcms utilise la base de données MySQL. phpcms est un système de gestion de site Web open source PHP, développé en utilisant PHP+MYSQL comme base technique. PHPCMS V9 adopte la méthode POO pour créer le cadre d'exploitation de base. La version PHP prise en charge est PHP5 et supérieure, et la version MYSQL prise en charge est MySql 4.1 et supérieure.

Comment changer le nom du site dans phpcms Comment changer le nom du site dans phpcms Feb 24, 2023 am 09:29 AM

Comment modifier le nom du site dans phpcms : 1. Utilisez l'administrateur pour vous connecter à la page backend ; 2. Recherchez l'option "Paramètres" dans la barre de menu supérieure et cliquez dessus, puis recherchez "Gestion du site" dans le menu du à gauche ; 3. Recherchez l'élément qui doit être modifié, cliquez sur le lien Modifier à droite du nom de domaine du site. 4. Modifiez le nom du site dans la fenêtre contextuelle ;

See all articles