最近在使用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>
    

  网上有建议直接将参数view=yes改为view=no,但尝试后发现,页面仍然会显示点击次数。为了解决这个问题,我决定深入研究/plus/count.php文件。

  打开count.php文件后,首先看到一段注释,说明了如何显示点击次数:


* 如果想显示点击次数,请增加view参数,即把下面JS调用放到文档模板适当位置
* <script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field name='id'/}&mid={dede:field name='mid'/}" language="javascript"></script>

* 普通计数器为
* <script src="{dede:field name='phpurl'/}/count.php?aid={dede:field name='id'/}&mid={dede:field name='mid'/}" language="javascript"></script>
    

  这段注释明确指出,如果需要显示点击次数,应使用带有view=yes的代码;否则,只需使用普通计数器的代码。

  继续查看代码逻辑,发现了与view参数相关的判断:


if(!empty($view))
{
    $row = $dsql->GetOne(" SELECT click FROM `{$maintable}` WHERE {$idtype}='$aid' ");
    ...
}
    

  通过这段代码可以看出,程序是通过判断$view是否为空来决定是否查询并显示点击次数。因此,无论view的具体值是什么,只要存在这个参数,就会触发显示点击次数的行为。

  为了实现只统计点击次数而不显示,我们需要移除view参数。最终的代码如下:


<script src="{dede:field name='phpurl'/}/count.php?aid={dede:field name='id'/}&mid={dede:field name='mid'/}" language="javascript"></script>
    

  这样修改后,页面的点击次数将不再显示,但后台仍会正常记录每次访问的数据。

  总结来说,对于希望隐藏点击次数显示的需求,直接去掉view参数即可。这种方法不仅简单易行,而且完全符合DedeCMS的设计逻辑。

以上内容详细介绍了如何在DedeCMS中调整点击次数的显示方式,希望对您有所帮助。