建站幫助

誠信合作, 高質專業!

Phpcms v9刪除文章不能同步刪除相關關鍵詞數據的修正方法

2018-11-07 22:23:48 瀏覽 我要評論

最近在項目中發現,Phpcms v9內容模型刪除文章不能同步刪除關鍵詞數據表v9_keyword、v9_keyword_data的相關數據,導致文章刪除了而關鍵詞還在,以至于相關tag列表頁的文章造成錯誤鏈接,今晚CMSYOU在這里分享這一修正方法,希望對大家有所幫助。

首先我們看下關鍵詞tag會在什么地方出現?以CMSYOU官方的幫助欄目(http://www.lfduem.tw/support/)為例:Tag標簽出現的位置有:列表頁和文章頁的右側欄【隨機標簽】,以及文章內頁的文章末尾的【相關標簽】。而默認Phpcms v9的標簽tag功能則是通過v9_keyword、v9_keyword_data兩個表關聯文章模型的文章。具體關聯的方法:

$keyword_db = pc_base::load_model('keyword_model');
$keyword_data_db = pc_base::load_model('keyword_data_model');
pc_base::load_sys_func('iconv');
if (is_array($data) && !empty($data)) {
$siteid = get_siteid();
foreach ($data as $v) {
$v = defined('IN_ADMIN') ? $v : safe_replace(addslashes($v));
$v = str_replace(array('//','#','.'),' ',$v);
if (!$r = $keyword_db->get_one(array('keyword'=>$v, 'siteid'=>$siteid))) {
$letters = gbk_to_pinyin($v);
$letter = strtolower(implode('', $letters));
$tagid = $keyword_db->insert(array('keyword'=>$v, 'siteid'=>$siteid, 'pinyin'=>$letter, 'videonum'=>1), true);
} else {
$keyword_db->update(array('videonum'=>'+=1'), array('id'=>$r['id']));
$tagid = $r['id'];
}
$contentid = $this->id.'-'.$this->modelid;
if (!$keyword_data_db->get_one(array('tagid'=>$tagid, 'siteid'=>$siteid, 'contentid'=>$contentid))) {
$keyword_data_db->insert(array('tagid'=>$tagid, 'siteid'=>$siteid, 'contentid'=>$contentid));
}
unset($contentid, $tagid, $letters);
}
}

具體見phpcms\modules\content\fields\keyword\update.inc.php文件。

但是Phpcms v9默認程序存在一個bug,刪除文章的方法里邊卻忘記了同步刪除關鍵詞數據表v9_keyword、v9_keyword_data的相關數據。

我們具體找到phpcms\modules\content\content.php中的delete()函數,在大約332行【刪除全站搜索中數據$this->search_db->delete_search($typeid,$id);】的下面加入以下代碼:

Phpcms v9刪除文章不能同步刪除相關關鍵詞數據的修正方法

這樣,達到自動減少tag的使用數【$keyword_db->update(array('videonum'=>'-=1'), array('id'=>$k_v['tagid']));】,以及刪除線管關聯的目的【$keyword_data_db->delete(array('siteid'=>$siteid, 'contentid'=>$id.'-'.$modelid));】。

希望這一分享對碰到此類問題的朋友有所幫助,估計一般用戶還沒留意這個問題吧~

最后分享下:最近cmsyou的tag標簽采用了靜態化,比如Phpcms這一個標簽的網址為:http://www.lfduem.tw/tags/phpcms.html,不止到大家留意到沒有?

歡迎留言探討!

我要收藏
點個贊吧

相關閱讀

本月熱門

精選推薦

在線客服

掃一掃,關注我們

掃一掃,關注我們
金牌单双中特王