Heim CMS-Tutorial PHPCMS So richten Sie die unbegrenzte Modellsuche von phpcms ein

So richten Sie die unbegrenzte Modellsuche von phpcms ein

Feb 05, 2020 am 10:18 AM
phpcms

So richten Sie die unbegrenzte Modellsuche von phpcms ein

Durchsuchen Sie die gesamte phpcmsv9-Site, nicht nur Modelle!

So richten Sie die unbegrenzte Modellsuche in phpcms ein

phpcmsv9 vollständige Site-Suche, unbegrenztes Modell, heute habe ich mehr Wissen gewonnen. Wie wir alle wissen, sucht phpcms nach Modellen. Nachdem Sie diese Methode verwendet haben, können Sie die gesamte Website durchsuchen

Ändern Sie einfach die Standardsuchfunktion von Version 9 und Sie können den gesamten Websiteinhalt ohne Modelle durchsuchen

Das Folgende ist die Datei index.php im modifizierten Suchmodul

<?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";
    }
 
    
  }
}
?>
Nach dem Login kopieren

Fügen Sie dann für die Suchbedingungen ein „unbegrenztes“ zur Vorlage header.html hinzu (nicht hier, nur auf anderen Suchfeldseiten). Setzen Sie den entsprechenden Wert von typeid auf 0 und führen Sie die gleiche Verarbeitung für index.html undLISTS.html in der Suche durch. Auf diese Weise sind die Suchergebnisse vorhanden, solange das Modell nicht ausgewählt ist werden die Daten sein, die die Bedingungen in allen Modellen erfüllen.

PHP-Website für Chinesisch, eine große Anzahl kostenloser PHPCMS-Tutorials, willkommen zum Online-Lernen!

Das obige ist der detaillierte Inhalt vonSo richten Sie die unbegrenzte Modellsuche von phpcms ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So springen Sie zur Detailseite in phpcms So springen Sie zur Detailseite in phpcms Jul 27, 2023 pm 05:23 PM

So springen Sie zur Detailseite in phpcms: 1. Verwenden Sie die Header-Funktion, um einen Sprunglink zu generieren. 2. Durchlaufen Sie die Inhaltsliste. 3. Rufen Sie den Titel und den Detailseitenlink des Inhalts ab.

Welches Framework ist phpcms? Welches Framework ist phpcms? Apr 20, 2024 pm 10:51 PM

PHP CMS ist ein PHP-basiertes Open-Source-Content-Management-System zur Verwaltung von Website-Inhalten. Zu seinen Merkmalen gehören Benutzerfreundlichkeit, leistungsstarke Funktionalität, Skalierbarkeit, hohe Sicherheit und kostenloses Open Source. Es kann Zeit sparen, die Website-Qualität verbessern, die Zusammenarbeit verbessern und Entwicklungskosten senken und wird häufig auf verschiedenen Websites wie Nachrichten-Websites, Blogs, Unternehmenswebsites, E-Commerce-Websites und Community-Foren verwendet.

WeChat Login-Integrationsleitfaden: PHPCMS Practical Combat WeChat Login-Integrationsleitfaden: PHPCMS Practical Combat Mar 29, 2024 am 09:18 AM

Titel: WeChat Login-Integrationsleitfaden: PHPCMS in Aktion Im heutigen Internetzeitalter ist Social Login zu einer der wesentlichen Funktionen einer Website geworden. Als eine der beliebtesten sozialen Plattformen in China wird die Login-Funktion von WeChat auch von immer mehr Websites genutzt. In diesem Artikel wird erläutert, wie die WeChat-Anmeldefunktion in die PHPCMS-Website integriert wird, und es werden spezifische Codebeispiele bereitgestellt. Schritt 1: Registrieren Sie ein WeChat Open Platform-Konto. Zuerst müssen wir ein Entwicklerkonto auf der WeChat Open Platform registrieren und die entsprechenden Entwicklungsberechtigungen beantragen. Anmelden [Offene WeChat-Plattform]

Ist PHPCMS nicht kostenlos? Ist PHPCMS nicht kostenlos? Mar 01, 2023 am 10:24 AM

phpcms ist nicht völlig kostenlos. phpcms ist ein Open-Source-CMS-System, aber Open Source bedeutet nicht, dass es kostenlos ist. Es gibt zwei Versionen: die kostenlose Version und die kommerzielle Version. Die kostenlose Version ist auf den privaten, nicht kommerziellen Gebrauch beschränkt, während die kommerzielle Version den Erwerb einer Lizenz erfordert Verwenden Sie es für Forschungszwecke, und wenn es sich um eine kommerzielle Anwendung handelt, müssen Sie eine bestimmte Gebühr zahlen.

Was bedeutet phpcms? Was bedeutet phpcms? Apr 20, 2024 pm 10:39 PM

PHPCMS ist ein kostenloses Open-Source-Content-Management-System (CMS), das Folgendes bietet: Open Source, Modularität, Flexibilität, Benutzerfreundlichkeit und Community-Unterstützung. Es kann zum Erstellen verschiedener Arten von Websites verwendet werden, darunter Unternehmenswebsites, E-Commerce-Websites, Blogs und Community-Foren. Zu den technischen Anforderungen gehören: PHP 5.6 oder höher, MySQL-, MariaDB- oder PostgreSQL-Datenbank und Apache- oder Nginx-Webserver.

Welche PHPCMS-Versionen gibt es? Welche PHPCMS-Versionen gibt es? Jun 14, 2023 pm 01:13 PM

Es gibt zwei bekannte Versionen von PHPCMS, nämlich: 1. PHPCMS4, das benutzerdefinierte URL-Regeln unterstützt, ist schön und einfach zu verwenden und verfügt über viele Front-End-Plug-Ins, die Funktionen frei erweitern können . phpCMS2008R1, das die Verwaltung mehrerer Sprachen und mehrerer Standorte unterstützt. Der Manager ist praktisch, flexibel, sehr leichtgewichtig und läuft schnell.

Welche Datenbank verwendet phpcms? Welche Datenbank verwendet phpcms? Feb 21, 2023 pm 06:57 PM

phpcms verwendet eine MySQL-Datenbank. phpcms ist ein PHP-Open-Source-Website-Managementsystem, das auf PHP+MYSQL als technischer Basis entwickelt wurde. PHPCMS V9 verwendet die OOP-Methode zum Aufbau des grundlegenden Betriebssystems. Die unterstützte PHP-Version ist PHP5 und höher, und die unterstützte MYSQL-Version ist MySql 4.1 und höher.

So implementieren Sie die WeChat-Anmeldung in phpcms So implementieren Sie die WeChat-Anmeldung in phpcms Mar 09, 2023 am 09:33 AM

So implementieren Sie die WeChat-Anmeldung in phpcms: 1. Erstellen Sie eine neue „wechat.php“ im Stammverzeichnis. 2. Fügen Sie „public function wechat() {...}“ unter „\phpcms\modules\member\index.php“ hinzu "; 3. . Verwenden Sie einfach die Wechat-Funktion in der Datei „foreground.class.php“, um festzustellen, ob der Benutzer angemeldet ist.

See all articles