在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();
}
}
?>
然后創建一張表
復制代碼 代碼如下:
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的時候直接調上這個表就行了。請得先清除全站緩存,否則修改后看不到效果。
php技術:如何給phpcms v9增加類似于phpcms 2008中的關鍵詞表,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。