如何给phpcms v9增加类似于phpcms 2008中的关键词表

前端之家收集整理的这篇文章主要介绍了如何给phpcms v9增加类似于phpcms 2008中的关键词表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近用PHPcms v9二次开发一个人站点,之前用2008中有个比较舒服的关键词全部显示出来功能,而v9将关键词列表功能增加到了搜索中,如果搜索一个关键词就会自动产生一个增加到了search_keyword表中,这一点不是很喜欢v9;站内搜索功能,我觉得一般会用得比较少,而我们在增加文章的时候实际上就把关键词分隔开了,为什么还要多此一举了,其实改起来也比较简单在model文件夹中增加一个keyword_ext_model.class.PHP。keyword_model实际是存在model文件夹中的,不知道为什么没有keyword这张表?

所以还是不要在这个基本上增加,也许将来这个model会用上

<div class="codetitle"><a style="CURSOR: pointer" data="73319" class="copybut" id="copybut73319" onclick="doCopy('code73319')"> 代码如下:
<div class="codebody" id="code73319">
<?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();
}
}
?>

然后创建一张表

<div class="codetitle"><a style="CURSOR: pointer" data="65033" class="copybut" id="copybut65033" onclick="doCopy('code65033')"> 代码如下:
<div class="codebody" id="code65033">
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

<div class="codetitle"><a style="CURSOR: pointer" data="43007" class="copybut" id="copybut43007" onclick="doCopy('code43007')"> 代码如下:
<div class="codebody" id="code43007">
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的时候直接调上这个表就行了。<FONT style="COLOR: #ff0000">请得先清除全站缓存,否则修改后看不到效果

原文链接:https://www.f2er.com/php/25911.html
phpcms2008phpcmsv9关键词表

猜你在找的PHP相关文章