织梦显示软件下载次数怎么统计?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 织梦建站 正文

核心原理

  1. 数据存储:织梦默认的软件模型中,有一个字段 click (或类似名称,如 downnums),专门用来存储下载次数,这个字段的类型通常是 int
  2. 显示次数:在模板文件(list_artlist.htm, article_article.htm 等)中,通过调用织梦的标签 {field.click/} 来读取并显示这个字段的值。
  3. 增加次数:当用户点击下载链接时,不能直接指向软件文件,而是要指向一个织梦的专门处理下载的PHP脚本(通常是 plus/download.php),这个脚本在执行真正的文件下载操作前,会先找到对应文章的 click 字段,将其值 +1,然后再进行下载。

第一步:在模板中显示下载次数

这是最简单的一步,您需要修改您当前使用的模板文件。

织梦显示软件下载次数
(图片来源网络,侵删)

在列表页显示下载次数

打开您的列表模板文件,通常位于 /templets/您的栏目目录/list_artlist.htm

找到您希望显示下载次数的位置,加入以下织梦标签:

[field:click/]

示例:

假设您的列表项模板代码是这样的:

织梦显示软件下载次数
(图片来源网络,侵删)
<li>
    <a href="[field:arcurl/]">[field:title/]</a>
    <span>大小:[field:filesize/] | 格式:[filetype]</span>
</li>

您可以将其修改为:

<li>
    <a href="[field:arcurl/]">[field:title/]</a>
    <span>大小:[field:filesize/] | 格式:[filetype] | 下载:[field:click/] 次</span>
</li>

这样,在列表的每一项后面都会显示该软件的下载次数。

页显示下载次数

打开您的文章内容页模板文件,通常位于 /templets/您的栏目目录/article_article.htm

在您希望显示下载次数的位置(软件信息列表区域),加入同样的标签:

下载次数:{field.click/} 次

示例:

<div class="software-info">
    <p>软件名称:{title}</p>
    <p>软件大小:{filesize}</p>
    <p>软件版本:{version}</p>
    <p>更新时间:{pubdate}</p>
    <p>下载次数:<strong>{field.click/}</strong> 次</p>
    <!-- 下载按钮 -->
    <a href="{dede:field name='phpurl'/}/download.php?aid={dede:field.id/}" target="_blank">立即下载</a>
</div>

注意页的下载按钮链接,我们推荐使用 plus/download.php 的形式,这比直接指向附件链接更规范,也方便后续扩展。


第二步:确保下载功能正常工作(增加次数)

这一步是关键,确保每次点击下载,次数都能正确增加。

检查并修改下载链接

页的下载链接应该指向 plus/download.php,请确保您的模板中的下载链接是正确的格式:

<a href="{dede:field name='phpurl'/}/download.php?aid={dede:field.id/}" target="_blank">立即下载</a>
  • {dede:field name='phpurl'/}:会自动解析为您的网站根目录下的 plus 文件夹。
  • aid={dede:field.id/}:将当前文章的ID传递给下载脚本。

检查 plus/download.php 文件

织梦默认自带的 plus/download.php 文件已经包含了增加下载次数的逻辑,您需要检查一下这个文件是否存在,并且没有被误删或修改。

打开 /plus/download.php 文件,找到类似下面的代码块:

//更新下载次数
$dsql->ExecuteNoneQuery("UPDATE `#@__downloads` SET `click`=`click`+1 WHERE `id`=$aid");

或者在某些版本中可能是:

//更新下载次数
$dsql->ExecuteNoneQuery("UPDATE `#@__archives` SET `click`=`click`+1 WHERE `id`=$aid");

重要提示:

  • 确保这段代码没有被注释掉(即前面没有 或 )。
  • 如果您的织梦版本比较旧,或者经过二次开发,这段代码可能不存在或位置不同,如果不存在,您需要手动添加。
  • #@__downloads 是织梦系统用来记录下载次数的表,如果您在后台模型中没有使用这个表,而是直接在 #@__archives(主表)中记录,那么就需要使用 #@__archives

检查附件是否正确上传

  • 进入后台 [核心] -> 模型管理] -> [软件模型] (或您使用的模型)。
  • 检查字段设置,确保有一个“下载地址”类型的字段,并且您上传的软件文件已经正确关联到文章中。
  • 次数不增加是因为文章根本没有关联任何附件,导致 download.php 找不到文件而提前退出。

第三步:如果下载次数不增加,如何排查?

如果按照以上步骤操作,下载次数仍然不增加,可以按照以下思路排查:

  1. 检查数据库

    • 进入您的网站数据库管理(如 phpMyAdmin)。
    • 找到 dede_archives 表(主表),找到对应的软件文章,查看 click 字段的值。
    • 再找到 dede_downloads 表,看是否有对应 aid 的记录,以及 click 字段的值。
    • 尝试手动将 click 的值加一,然后重新下载,看是否变化,这样可以判断问题出在数据库层面还是PHP脚本层面。
  2. 检查文件权限

    • 确保 /plus/download.php 文件有可执行权限(通常是 755)。
    • 确保您的软件附件所在的目录(如 /uploads/soft/)有正确的读取权限。
  3. 检查JS或缓存问题

    • 有时下载链接被前端JS重写或拦截,导致实际点击的不是 download.php,请检查浏览器开发者工具的“网络”面板,看实际请求的URL是什么。
    • 清理浏览器缓存和织梦的后台缓存 ([系统] -> [一键生成] -> [更新缓存)。
  4. 检查PHP错误日志

    • 如果服务器开启了错误日志,查看 /plus/download.php 是否有报错,导致脚本执行中断。

总结与最佳实践

步骤 操作 文件/位置 关键代码/标签
显示次数 在列表页模板中添加显示标签 /templets/.../list_artlist.htm [field:click/]
显示次数 页模板中添加显示标签 /templets/.../article_article.htm {field.click/}
修改下载链接 确保下载指向PHP脚本 内容页模板 href="{dede:field name='phpurl'}/download.php?aid={dede:field.id/}"
检查核心脚本 确保download.php逻辑完整 /plus/download.php UPDATE ... SET click=click+1 WHERE id=$aid

通过以上步骤,您就可以在织梦CMS中完美地实现并显示软件下载次数了,这个功能对于评估软件的受欢迎程度非常有用。

-- 展开阅读全文 --
头像
dede noflag
« 上一篇 今天
dede 自定义文件名
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]