• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-26) 24次浏览 已收录 0个评论

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

在model文件夹中增加一个keyword_ext_model.class.php。keyword_model实际是存在model文件夹中的,不知道为什么没有keyword这张表?

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

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


然后创建一张表

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


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

function tags($field, $value)<BR>    {<BR>        if(!$value) return '';<BR>        if(strpos($value, ','))<BR>        {<BR>            $s = ',';<BR>        }<BR>        else<BR>        {<BR>            $s = ',';<BR>        }<br><br>        $keywords = isset($s) ? array_unique(array_filter(explode($s, $value))) : array($value);<BR>        $k<em style="color:transparent">本文来源gao.dai.ma.com搞@代*码#网</em><a>搞代gaodaima码</a>eyword_db = pc_base::load_model('keyword_ext_model');<br><br>        foreach($keywords as $tag)<BR>        {<BR>            $tag = trim($tag);<BR>            $keyword_db->delete(array("tag"=>$tag,"modelid"=>$this->modelid));<BR>            $c=$this->db->count("keywords like '%".$tag."%'");<BR>            $keyword_db->insert(array("modelid"=>$this->modelid,"tag"=>$tag,"usetimes"=>$c,"lastusetime"=>SYS_TIME),false,true);<BR>        }<br><br>        return implode($s, $keywords);<BR>}<BR>


这样在文章增加关键词的时候,会自动增加到keyword_ext中一份,调用全站tags的时候直接调上这个表就行了。请得先清除全站缓存,否则修改后看不到效果。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何给phpcms v9增加类似于phpcms 2008中的关键词表_php技巧
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址