资源描述
如何给phpcms v9增加类似于phpcms 2021中的关键词表_ 最近用phpcms v9二次开发一个人站点,之前用2021中有个比较舒适的关键词全部显示出来功能,而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(); ? 然后创建一张表 代码如下: 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的时候挺直调上这个表就行了。请得先清除全站缓存,否则修改后看不到效果。 更多信息请查看IT技术专栏 .
展开阅读全文