使用现成的DedeCMS插件(最简单、最推荐)
这是最省时省力的方法,利用成熟的插件可以快速实现功能,并且通常比较稳定。

(图片来源网络,侵删)
步骤 1:下载合适的投票插件
在DedeCMS的官方论坛、插件库或者一些第三方DedeCMS资源网站(如“织梦吧”、“源码时代”等)搜索关键词:“图片投票插件” 或 “DedeCMS图片投票”。
选择一个下载量高、评价好的插件,你可能找到一个名为 DedeCMS Image Vote 或类似名称的插件。
步骤 2:上传并安装插件
- 上传文件:将下载的插件包解压,通过FTP工具将文件上传到你的DedeCMS网站根目录下,注意,有些插件需要上传到
/dede/(后台目录)或/include/目录,请仔细阅读插件的安装说明。 - 安装插件:
- 登录你的DedeCMS后台。
- 在左侧菜单栏找到 “系统” -> “插件管理”。
- 点击 “上传新插件” 或类似按钮,然后选择你刚刚上传的插件安装包(通常是
.zip文件)。 - 根据向导完成安装,有些插件可能需要手动执行SQL语句,插件说明里会写清楚。
步骤 3:配置和使用插件
- 进入插件功能:安装成功后,通常会在后台的 发布” 或 “互动功能” 菜单下出现一个“图片投票”或“投票管理”的选项,点击进入。
- 创建投票:
- 点击 “新增投票” 或 “添加投票”。
- :填写你的投票主题,你最喜欢哪款手机?”。
- 投票选项:这里是关键,你需要为每个图片选项填写:
- 选项名称:iPhone 15”。
- 选项图片:上传或填写图片的URL地址。
- 初始票数:可以设置为0。
- 根据需要填写其他设置,如是否允许重复投票、投票时间限制等。
- 保存投票:配置完成后,保存投票,系统会生成一个投票ID。
- 调用投票到前台页面:
- 在你需要显示投票的前台页面(例如文章页、首页),使用DedeCMS的标签
{dede:vote}来调用。 - 最简单的调用方式:
{dede:vote voteid='你的投票ID'/}。 - 你可以查看插件的官方文档,了解如何自定义投票的样式,例如只显示图片、修改CSS等。
- 在你需要显示投票的前台页面(例如文章页、首页),使用DedeCMS的标签
手动修改DedeCMS核心文件(较灵活,但有风险)
如果你不想用插件,或者找不到合适的插件,可以手动修改代码来实现。此方法需要你具备一定的PHP和HTML知识,并且修改前务必备份你的网站和数据库!
步骤 1:创建投票数据表(如果不存在)
你需要一个地方来存储投票项目和票数,我们可以复用DedeCMS自带的 dede_vote 表,或者创建一个新表 dede_imagevote。

(图片来源网络,侵删)
这里我们使用 dede_vote 表为例,它的结构是 tid (投票ID), voteid (选项ID), votename (选项名称), votenum (票数)。
步骤 2:在后台添加投票管理入口
- 修改菜单文件:打开
/dede/templets/index_menu2.htm文件,在合适的位置添加一行代码来增加一个“图片投票管理”菜单项。<dl> <dt>图片投票管理</dt> <dd><a href="vote_main.php" target="main">图片投票管理</a></dd> </dl> - 创建管理页面:复制
/dede/vote_main.php(普通投票管理) 文件,重命名为imagevote_main.php,然后修改这个新文件,将其中的dede_vote表查询改为你的图片投票数据查询,并修改模板文件/dede/templets/vote_main.htm的副本imagevote_main.htm来适应图片显示。
步骤 3:创建投票发布页面
- 复制文件:复制
/dede/album_add.php(图集发布) 或/dede/article_add.php(文章发布),重命名为imagevote_add.php。 - 修改表单:打开
imagevote_add.php,修改其中的HTML表单,增加图片上传和投票选项的字段。<form name="form1" action="imagevote_add.php" method="post" enctype="multipart/form-data"> <input type="text" name="title" placeholder="投票标题"> <!-- 循环添加图片选项 --> <div> <input type="file" name="pic1"> <input type="text" name="option1" placeholder="选项1名称"> </div> <!-- ... 更多选项 ... --> <button type="submit">提交</button> </form> - 处理提交逻辑:在
imagevote_add.php中编写PHP代码来接收表单数据,将上传的图片保存到指定目录,并将投票信息(标题、图片路径、选项名称)插入到dede_vote或你自定义的数据表中。
步骤 4:调用投票到前台
-
编写投票显示标签:在
/include/taglib/目录下创建一个新文件,vote.lib.php。 -
编写PHP逻辑:在这个文件里编写代码,从数据库中读取投票数据(包括图片URL),并生成HTML代码。
// vote.lib.php function lib_vote(&$ctag, &$refObj) { global $dsql; $voteid = $ctag->GetAtt('voteid'); $html = ''; // 从数据库查询投票选项 $dsql->SetQuery("SELECT * FROM dede_vote WHERE tid = $voteid ORDER BY voteid ASC"); $dsql->Execute(); while ($row = $dsql->GetArray()) { $html .= '<div class="vote-item">'; $html .= '<img src="' . $row['picurl'] . '" alt="' . $row['votename'] . '">'; $html .= '<span>' . $row['votename'] . '</span>'; $html .= '<a href="javascript:vote('.$row['voteid'].', '.$voteid.');">投票</a>'; $html .= '</div>'; } return $html; } -
在前台模板中使用:
{dede:vote voteid='1'/} -
编写投票JS和后端处理:
- JavaScript:编写一个
vote()函数,通过AJAX向一个处理投票的PHP文件(do_vote.php)发送请求。 - PHP处理文件:创建
do_vote.php,接收AJAX传来的选项ID,更新数据库中对应选项的票数数。
- JavaScript:编写一个
使用第三方投票系统(最简单,但依赖外部服务)
如果你不想在自己的服务器上做任何修改,可以使用第三方的投票服务,然后通过iframe嵌入到你的DedeCMS页面中。
- 选择投票服务:在网上寻找提供免费投票服务的网站(如“腾讯投票”、“金数据”、“问卷星”等)。
- 创建投票:在这些网站上创建一个图片投票,上传你的图片,设置好选项。
- 获取嵌入代码:投票创建完成后,服务商会提供一段嵌入代码,通常是
<iframe>- 嵌入到DedeCMS:
- 登录DedeCMS后台,进入需要显示投票的页面编辑模式(页面管理” -> “首页”)。
- 切换到“HTML源码”或“代码”视图。
- 将
<iframe>代码粘贴到你想要显示的位置。 - 保存页面。
- 嵌入到DedeCMS:
优点:完全不用修改DedeCMS,快速部署。 缺点:样式可能和你的网站不统一,依赖第三方服务,如果服务出问题,投票功能也会失效。
总结与建议
| 方法 | 优点 | 缺点 | 推荐人群 |
|---|---|---|---|
| 插件 | 简单、快速、稳定、功能完善 | 可能需要寻找合适的插件 | 所有用户,尤其是新手和不想折腾代码的开发者 |
| 手动修改 | 高度灵活,完全自定义 | 复杂、耗时、有风险(可能导致网站出错)、需要技术基础 | 有一定DedeCMS二次开发经验的用户 |
| 第三方服务 | 零技术门槛,无需修改网站 | 依赖外部服务、样式不统一、功能受限 | 急于使用,且对外观要求不高的用户 |
对于绝大多数用户来说,强烈推荐使用方法一(插件),这是最安全、最高效的解决方案,只有在找不到满意的插件,且你有足够的技术能力时,才考虑方法二,方法三则作为最后的备选方案。
