dede如何添加图片投票功能?

99ANYc3cd6
预计阅读时长 17 分钟
位置: 首页 DEDE建站 正文

使用现成的DedeCMS插件(最简单、最推荐)

这是最省时省力的方法,利用成熟的插件可以快速实现功能,并且通常比较稳定。

dede添加图片投票
(图片来源网络,侵删)

步骤 1:下载合适的投票插件

在DedeCMS的官方论坛、插件库或者一些第三方DedeCMS资源网站(如“织梦吧”、“源码时代”等)搜索关键词:“图片投票插件”“DedeCMS图片投票”

选择一个下载量高、评价好的插件,你可能找到一个名为 DedeCMS Image Vote 或类似名称的插件。

步骤 2:上传并安装插件

  1. 上传文件:将下载的插件包解压,通过FTP工具将文件上传到你的DedeCMS网站根目录下,注意,有些插件需要上传到 /dede/(后台目录)或 /include/ 目录,请仔细阅读插件的安装说明。
  2. 安装插件
    • 登录你的DedeCMS后台。
    • 在左侧菜单栏找到 “系统” -> “插件管理”
    • 点击 “上传新插件” 或类似按钮,然后选择你刚刚上传的插件安装包(通常是 .zip 文件)。
    • 根据向导完成安装,有些插件可能需要手动执行SQL语句,插件说明里会写清楚。

步骤 3:配置和使用插件

  1. 进入插件功能:安装成功后,通常会在后台的 发布”“互动功能” 菜单下出现一个“图片投票”或“投票管理”的选项,点击进入。
  2. 创建投票
    • 点击 “新增投票”“添加投票”
    • :填写你的投票主题,你最喜欢哪款手机?”。
    • 投票选项:这里是关键,你需要为每个图片选项填写:
      • 选项名称:iPhone 15”。
      • 选项图片:上传或填写图片的URL地址。
      • 初始票数:可以设置为0。
    • 根据需要填写其他设置,如是否允许重复投票、投票时间限制等。
  3. 保存投票:配置完成后,保存投票,系统会生成一个投票ID。
  4. 调用投票到前台页面
    • 在你需要显示投票的前台页面(例如文章页、首页),使用DedeCMS的标签 {dede:vote} 来调用。
    • 最简单的调用方式:{dede:vote voteid='你的投票ID'/}
    • 你可以查看插件的官方文档,了解如何自定义投票的样式,例如只显示图片、修改CSS等。

手动修改DedeCMS核心文件(较灵活,但有风险)

如果你不想用插件,或者找不到合适的插件,可以手动修改代码来实现。此方法需要你具备一定的PHP和HTML知识,并且修改前务必备份你的网站和数据库!

步骤 1:创建投票数据表(如果不存在)

你需要一个地方来存储投票项目和票数,我们可以复用DedeCMS自带的 dede_vote 表,或者创建一个新表 dede_imagevote

dede添加图片投票
(图片来源网络,侵删)

这里我们使用 dede_vote 表为例,它的结构是 tid (投票ID), voteid (选项ID), votename (选项名称), votenum (票数)。

步骤 2:在后台添加投票管理入口

  1. 修改菜单文件:打开 /dede/templets/index_menu2.htm 文件,在合适的位置添加一行代码来增加一个“图片投票管理”菜单项。
    <dl>
        <dt>图片投票管理</dt>
        <dd><a href="vote_main.php" target="main">图片投票管理</a></dd>
    </dl>
  2. 创建管理页面:复制 /dede/vote_main.php (普通投票管理) 文件,重命名为 imagevote_main.php,然后修改这个新文件,将其中的 dede_vote 表查询改为你的图片投票数据查询,并修改模板文件 /dede/templets/vote_main.htm 的副本 imagevote_main.htm 来适应图片显示。

步骤 3:创建投票发布页面

  1. 复制文件:复制 /dede/album_add.php (图集发布) 或 /dede/article_add.php (文章发布),重命名为 imagevote_add.php
  2. 修改表单:打开 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>
  3. 处理提交逻辑:在 imagevote_add.php 中编写PHP代码来接收表单数据,将上传的图片保存到指定目录,并将投票信息(标题、图片路径、选项名称)插入到 dede_vote 或你自定义的数据表中。

步骤 4:调用投票到前台

  1. 编写投票显示标签:在 /include/taglib/ 目录下创建一个新文件,vote.lib.php

  2. 编写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;
    }
  3. 在前台模板中使用

    {dede:vote voteid='1'/}
  4. 编写投票JS和后端处理

    • JavaScript:编写一个 vote() 函数,通过AJAX向一个处理投票的PHP文件(do_vote.php)发送请求。
    • PHP处理文件:创建 do_vote.php,接收AJAX传来的选项ID,更新数据库中对应选项的票数数。

使用第三方投票系统(最简单,但依赖外部服务)

如果你不想在自己的服务器上做任何修改,可以使用第三方的投票服务,然后通过iframe嵌入到你的DedeCMS页面中。

  1. 选择投票服务:在网上寻找提供免费投票服务的网站(如“腾讯投票”、“金数据”、“问卷星”等)。
  2. 创建投票:在这些网站上创建一个图片投票,上传你的图片,设置好选项。
  3. 获取嵌入代码:投票创建完成后,服务商会提供一段嵌入代码,通常是 <iframe>
  4. 嵌入到DedeCMS
    • 登录DedeCMS后台,进入需要显示投票的页面编辑模式(页面管理” -> “首页”)。
    • 切换到“HTML源码”或“代码”视图。
    • <iframe> 代码粘贴到你想要显示的位置。
    • 保存页面。

优点:完全不用修改DedeCMS,快速部署。 缺点:样式可能和你的网站不统一,依赖第三方服务,如果服务出问题,投票功能也会失效。


总结与建议

方法 优点 缺点 推荐人群
插件 简单、快速、稳定、功能完善 可能需要寻找合适的插件 所有用户,尤其是新手和不想折腾代码的开发者
手动修改 高度灵活,完全自定义 复杂、耗时、有风险(可能导致网站出错)、需要技术基础 有一定DedeCMS二次开发经验的用户
第三方服务 零技术门槛,无需修改网站 依赖外部服务、样式不统一、功能受限 急于使用,且对外观要求不高的用户

对于绝大多数用户来说,强烈推荐使用方法一(插件),这是最安全、最高效的解决方案,只有在找不到满意的插件,且你有足够的技术能力时,才考虑方法二,方法三则作为最后的备选方案。

-- 展开阅读全文 --
头像
dede树形菜单折叠
« 上一篇 04-28
织梦安全检查工具箱有何独特优势?
下一篇 » 04-28

相关文章

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