如何給phpcms v9增加類似于phpcms 2008中的關(guān)鍵詞表

字號:


    最近用phpcms v9二次開發(fā)一個(gè)人站點(diǎn),之前用2008中有個(gè)比較舒服的關(guān)鍵詞全部顯示出來功能,而v9將關(guān)鍵詞列表功能增加到了搜索中,如果搜索一個(gè)關(guān)鍵詞就會(huì)自動(dòng)產(chǎn) 生一個(gè)增加到了search_keyword表中,這一點(diǎn)不是很喜歡v9;站內(nèi)搜索功能,我覺得一般會(huì)用得比較少,而我們在增加文章的時(shí)候?qū)嶋H上就把關(guān)鍵 詞分隔開了,為什么還要多此一舉了,其實(shí)改起來也比較簡單
    在model文件夾中增加一個(gè)keyword_ext_model.class.php。keyword_model實(shí)際是存在model文件夾中的,不知道為什么沒有keyword這張表?
    所以還是不要在這個(gè)基本上增加,也許將來這個(gè)model會(huì)用上
    代碼如下:
    <?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 中增加一個(gè) 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);
    }
    這樣在文章增加關(guān)鍵詞的時(shí)候,會(huì)自動(dòng)增加到keyword_ext中一份,調(diào)用全站tags的時(shí)候直接調(diào)上這個(gè)表就行了。請得先清除全站緩存,否則修改后看不到效果。