用DedeCms做的模板需要在分类信息里支持Digg功能,但是原程序里,只能对系统模型和自由模型Digg,即使用@#__archives当作主表的模型。而DedeCms里,分类信息模型是作为独立模型设置的。
这个功能的实现,只需要修改一个文件,即/plus/Digg_ajax.php:
$maintable = ‘dede_archives’;原程序的这行决定了不能为独立update。
可以修改为:
$row=$dsql->GetOne(”Select id,channel from `dede_arctiny` where id=$id”);
//改取arctiny表,取得该id的文章所属的模型
if($row['channel']==-8)
{
//为分类信息模型时,更新的表为addoninfos,其它类推
$maintable=’dede_addoninfos’;
$idname=’aid’;
//由于独立模型id不同,所以需要一个变量来存id名称,该id为aid
}
else
{
$maintable = ‘dede_archives’;
$idname=’id’;
}
然后把下面用到的三条SQL语句中的id修改为$idname,即:
$dsql->ExecuteNoneQuery(”Update `$maintable` set scores = scores + {$cfg_caicai_add},goodpost=goodpost+1,lastpost=”.time().” where $idname=$id”);
$dsql->ExecuteNoneQuery(”Update `$maintable` set scores = scores – {$cfg_caicai_sub},badpost=badpost+1,lastpost=”.time().” where $idname=$id”);
$row = $dsql->GetOne(”Select goodpost,badpost,scores From `$maintable` where $idname=$id “);
经过上述的修改,再为article_infos.htm模板增加Digg的模板,可以从文章模板复制,就可以为分类信息等独立模型增加Digg功能了。