在Dedecms系统中,独立模型的文章页点击次数调用是一个常见的需求。然而,普通的点击次数调用代码可能无法直接适用于独立模型。本文将详细介绍如何正确调用独立模型文章页的点击次数。
首先,我们需要了解Dedecms系统中调用点击次数的基本原理。普通文章页的点击次数调用代码如下:
<script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field name='id'/}&mid={dede:field name='mid'/}" type="text/javascript" language="javascript"></script>
然而,这个代码在独立模型的文章页中无法正常工作。原因在于独立模型的表结构与默认文章模型不同,因此需要额外传递参数来指定模型的ID。
打开文件/plus/count.php,我们可以看到以下关键代码段:
// UpdateStat();
if(!empty($maintable))
{
$dsql->ExecuteNoneQuery(" Update `{$maintable}` set click=click+1 where {$idtype}='$aid' ");
}
if(!empty($mid))
{
$dsql->ExecuteNoneQuery(" Update `jcode_member_tj` set pagecount=pagecount+1 where mid='$mid' ");
}
if(!empty($view))
{
$row = $dsql->GetOne(" Select click From `{$maintable}` where {$idtype}='$aid' ");
if(is_array($row))
{
echo"document.write('".$row['click']."');\\\\r\\\\n";
}
}
从代码中可以看出,点击次数的增加是通过SQL语句Update `{$maintable}` set click=click+1 where {$idtype}='$aid'实现的。其中,{$maintable}表示新建的独立模型表。而$maintable的值取决于$cid,即独立模型的ID。
继续查看代码,我们发现$cid的值是从页面GET参数中获取的:
$cid = empty($cid)? 1 : intval(preg_replace("/[^-\\d]+[^\\\\d]/", '', $cid));
因此,在调用点击次数时,我们需要为$cid传递正确的值。在文章页中,可以通过{dede:field name='channel'/}来获取独立模型的ID。
综上所述,Dedecms独立模型的文章页点击次数调用代码应修改为:
<script src="/plus/count.php?view=yes&aid={dede:field name='id'/}&mid={dede:field name='mid'/}&cid={dede:field name='channel'/}" type="text/javascript" language="javascript"></script>
通过以上方法,您可以成功在Dedecms独立模型的文章页中调用点击次数。这种方法不仅解决了独立模型的特殊性问题,还保证了系统的稳定性和数据的准确性。
希望本文对您有所帮助!如果您有其他关于Dedecms的问题,欢迎随时咨询。
--- 请注意,本文已按照SEO要求进行了改写,同时保留了必要的技术细节和代码示例,便于读者理解和应用。