網(LieHuo.Net)教程 PHPCMS 添加欄目獲取關鍵字的功能,第一步:增加名為category_tag的數據表(前綴與你的PHPCMS程序安裝時選用的前綴相同,例如:phpcms_category_tag)
表的結構如下
索引類型
第二步:找到include/admin/文件夾下的content.class.php
以下為引用的內容: function add($data, $cat_selected = 0, $isimport = 0) { global $_userid, $_username,$CATEGORY; if(!$this->set_catid($data['catid'])) return false; ..... } 將第一行 global $_userid, $_username,$CATEGORY, $MODEL; 改為 global $_userid, $_username,$CATEGORY, $MODEL,$action_add; $action_add=__FUNCTION__; |
第二步找到找到/include/fields/keyword文件夾下的input.inc.php
這個步驟由于改變內容比較多,請直接將如下代碼覆蓋原來的代碼:
以下為引用的內容: function keyword($field, $value) { global $catid, $action_add; if (! $value) { if (extension_loaded ( 'scws' )) { $data = $this->data ['title'] . $this->data ['description']; require_once PHPCMS_ROOT . 'api/keyword.func.php'; $value = get_keywords ( $data, 2 ); } if (! $value) return ''; } if (strpos ( $value, ' ' )) { $s = ' '; } elseif (strpos ( $value, ',' )) { $s = ','; } $keywords = isset ( $s ) ? array_unique ( array_filter ( explode ( $s, $value ) ) ) : array ($value ); foreach ( $keywords as $tag ) { $tag = trim ( $tag ); $existtag = $this->db->get_one ( "SELECT `tagid` FROM `" . DB_PRE . "keyword` WHERE `tag`='$tag'" ); $catexisttag = $this->db->get_one ( "SELECT `tag` FROM `" . DB_PRE . "category_tag` WHERE `tag`='$tag' AND `catid`='$catid'" ); $replace_into_existtag = "REPLACE INTO `" . DB_PRE . "keyword` (`tag`,`usetimes`,`lastusetime`) VALUES('$tag','1','" . TIME . "')"; $replace_into_catexisttag = "REPLACE INTO `" . DB_PRE . "category_tag` (`tag`,`catid`,`usetimes`,`lastusetime`) VALUES('$tag','$catid','1','" . TIME . "')"; $update_existtag = "UPDATE `" . DB_PRE . "keyword` SET `usetimes`=`usetimes`+1,`lastusetime`=" . TIME . " WHERE `tag`='$tag'"; $update_catexisttag = "UPDATE `" . DB_PRE . "category_tag` SET `usetimes`=`usetimes`+1,`lastusetime`=" . TIME . " WHERE `tag`='$tag' AND `catid`='$catid'"; if (! $existtag) { $this->db->query ( $replace_into_existtag ); $this->db->query ( $replace_into_catexisttag ); } else { if ($action_add) { $this->db->query ( $update_existtag ); if ($catexisttag) { $this->db->query ( $update_catexisttag ); } else { $this->db->query ( $replace_into_catexisttag ); } } else { if (!$catexisttag) $this->db->query ( $replace_into_catexisttag ); } } } return implode ( ' ', $keywords ); } |
說明:
1.由于PHPCMS程序本身的關鍵字計數方法不合理,對于已經存在于keyword表中的關鍵字,如果編輯有相應關鍵字的文章,它的usetimes(使用次數)仍然會增加,而事實上,關鍵字所包含的文章并未增加。
這里提供的修改文件已經修復了這個問題,但是不會影響原來數據表中的計數。
2.本修改不改變PHPCMS數據表其它表的結構,程序文件改動也非常少,請放心使用,但萬一使用過程中出現錯誤,直接用原來的文件覆蓋就可以了。