在使用phpcms程序制作网站的时候,我们会发现文章模型新建一篇文章后会自动向数据库中插入关键词,但如果删除文章后,数据库中的关键词表中字段中还存在之前文章的关键词,那么怎样才能在phpcms后台中删除文章后自动删除添加的tag关键词呢?
一,首先在phpcms文件夹、modules/content/fields/keyword/updata.inc.php 文件中找到如下代码:
$keyword_data_db->insert(array('tagid'=>$tagid, 'siteid'=>$siteid, 'contentid'=>$contentid));
修改代码为:
if (!$keyword_data_db->get_one(array('tagid'=>$tagid, 'siteid'=>$siteid, 'contentid'=>$contentid))) {
$keyword_data_db->insert(array('tagid'=>$tagid, 'siteid'=>$siteid, 'contentid'=>$contentid));
}
二,修改完成后保存,然后继续在网站根目录中找到 phpcms/modules/content/content.php 文件:
找到代码:
/**
* 删除
*/
public function delete() {
在代码下方添加如下代码,位置下图有:
$this->keyword_db = pc_base::load_model('keyword_model');
$this->keyword_data_db = pc_base::load_model('keyword_data_model');
$keyword_all=$this->keyword_data_db->listinfo(array('contentid'=>$id.'-'.$modelid));
$this->keyword_data_db->delete(array('contentid'=>$id.'-'.$modelid));
foreach($keyword_all as $keyword_a){
$same_keyword=$this->keyword_data_db->listinfo(array('tagid'=>$keyword_a[tagid]));
if(empty($same_keyword)){
$this->keyword_db->delete(array('id'=>$keyword_a[tagid]));
}
}
修改完成后保存即可,在网站后台中更新网站所有缓存后就可以在删除文章的时候自动删除数据表中添加文章时的tag字段值了.