溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么給phpcms v9增加類似于phpcms 2008中的關鍵詞表

發(fā)布時間:2021-02-08 10:13:45 來源:億速云 閱讀:139 作者:小新 欄目:開發(fā)技術

這篇文章給大家分享的是有關怎么給phpcms v9增加類似于phpcms 2008中的關鍵詞表的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

最近用phpcms v9二次開發(fā)一個人站點,之前用2008中有個比較舒服的關鍵詞全部顯示出來功能,而v9將關鍵詞列表功能增加到了搜索中,如果搜索一個關鍵詞就會自動產生一個增加到了search_keyword表中,這一點不是很喜歡v9;站內搜索功能,我覺得一般會用得比較少,而我們在增加文章的時候實際上就把關鍵詞分隔開了,為什么還要多此一舉了,其實改起來也比較簡單

在model文件夾中增加一個keyword_ext_model.class.php。keyword_model實際是存在model文件夾中的,不知道為什么沒有keyword這張表?

所以還是不要在這個基本上增加,也許將來這個model會用上

<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_sys_class('model', '', 0);
class keyword_ext_model extends model {
    public $table_name = '';
    public function __construct() {
        $this->db_config = pc_base::load_config('database');
        $this->db_setting = 'default';
        $this->table_name = 'keyword_ext';
        parent::__construct();
    }
}
?>

然后創(chuàng)建一張表

CREATE TABLE `t_v9_keyword_ext` (
  `tagid` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `tag` char(50) NOT NULL,
  `style` char(5) NOT NULL,
  `usetimes` smallint(5) unsigned NOT NULL DEFAULT '0',
  `lastusetime` int(10) unsigned NOT NULL DEFAULT '0',
  `hits` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `lasthittime` int(10) unsigned NOT NULL DEFAULT '0',
  `listorder` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `modelid` smallint(6) DEFAULT '0',
  PRIMARY KEY (`tagid`),
  UNIQUE KEY `tag` (`tag`),
  KEY `usetimes` (`usetimes`,`listorder`),
  KEY `hits` (`hits`,`listorder`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

最后一步在phpcms/modules/content/fields/keyword 中增加一個 input.inc.php

function tags($field, $value)
    {
        if(!$value) return '';
        if(strpos($value, ','))
        {
            $s = ',';
        }
        else
        {
            $s = ',';
        }
        $keywords = isset($s) ? array_unique(array_filter(explode($s, $value))) : array($value);
        $keyword_db = pc_base::load_model('keyword_ext_model');
        foreach($keywords as $tag)
        {
            $tag = trim($tag);
            $keyword_db->delete(array("tag"=>$tag,"modelid"=>$this->modelid));
            $c=$this->db->count("keywords like '%".$tag."%'");
            $keyword_db->insert(array("modelid"=>$this->modelid,"tag"=>$tag,"usetimes"=>$c,"lastusetime"=>SYS_TIME),false,true);
        }
        return implode($s, $keywords);
}

這樣在文章增加關鍵詞的時候,會自動增加到keyword_ext中一份,調用全站tags的時候直接調上這個表就行了。請得先清除全站緩存,否則修改后看不到效果。

感謝各位的閱讀!關于“怎么給phpcms v9增加類似于phpcms 2008中的關鍵詞表”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI