这里为您提供三种主流的实现方法,从简单直接到功能强大,您可以根据自己的技术能力和需求选择最适合的一种。

利用“自定义表单”功能(推荐,最灵活)
这是最推荐的方法,因为它不修改核心文件,升级方便,并且功能强大,我们可以创建一个独立的视频留言表单,然后在页面中调用它。
操作步骤:
第一步:创建一个自定义表单
- 登录DedeCMS后台,进入【核心】 -> 【频道模型】 -> 【自定义表单】。
- 点击【增加自定义表单】,填写表单信息:
- 表单名称:
视频留言(可以自定义,方便识别) - 数据表:
dede_addonvideo(系统会自动生成,以dede_addon开头,后面跟表单名称) - 默认列表模板:
list_video.htm(留空,我们后面手动创建) - 发布页模板:
post_video.htm(留空,我们后面手动创建) - 默认排序:
id(按ID倒序,让最新的留言在上面) - 其他选项保持默认,点击【确定】。
- 表单名称:
第二步:添加表单字段
-
在刚刚创建的“视频留言”管理页面,点击【字段管理】。
(图片来源网络,侵删) -
点击【添加新字段】,我们需要添加几个必要的字段:
- 字段名:
title(系统默认已有,用于留言标题) - 字段名:
vtype(用于区分视频类型,如youku,youtube,local) - 字段名:
video_url(用于存放视频地址) - 字段名:
video_img(用于存放视频封面图地址) - 字段名:
dtime(系统默认已有,用于留言时间)
详细配置每个字段:
-
vtype字段 (视频类型):- 字段名称:
视频类型 - 字段类型:
radio(单选按钮) - 字段值:
youku,优酷;youtube,YouTube;local,本地视频 - 其他保持默认。
- 字段名称:
-
video_url字段 (视频地址):- 字段名称:
视频地址 - 字段类型:
textarea(文本域) - 提示文字:
请输入视频链接,如优酷、YouTube分享地址,或本地视频相对路径。 - 其他保持默认。
- 字段名称:
-
video_img字段 (视频封面):- 字段名称:
视频封面 - 字段类型:
media(媒体类型,可以上传图片) - 其他保持默认。
- 字段名称:
-
dtime字段 (留言时间):- 字段名称:
发布时间 - 字段类型:
datetime(日期时间) - 勾选【后台增加内容时自动更新时间】
- 其他保持默认。
- 字段名称:
- 字段名:
-
所有字段添加完毕后,点击【保存字段】。
第三步:创建留言发布页面
-
在网站根目录的
templets/plus/文件夹下,创建一个新文件,命名为post_video.htm。 -
在文件中编写表单HTML代码,用于让用户提交视频留言。
<!DOCTYPE html> <html> <head> <meta charset="utf-8">发表视频留言</title> <link href="{dede:global.cfg_cmsurl/}/templets/style/dedecms.css" rel="stylesheet" type="text/css" /> </head> <body class="bg-f4"> <div class="container"> <div class="cont"> <form name="myform" action="/plus/diy.php" enctype="multipart/form-data" method="post"> <input type="hidden" name="action" value="post" /> <input type="hidden" name="diyid" value="在这里填写你的自定义表单ID" /> <input type="hidden" name="do" value="2" /> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="table maintable"> <tr> <td width="150" align="right" valign="top">留言标题:</td> <td><input name="title" type="text" id="title" class="intxt" style="width:300px" /></td> </tr> <tr> <td align="right" valign="top">视频类型:</td> <td>{dede:field.vtype function='GetMkHtml(@me)'/}</td> </tr> <tr> <td align="right" valign="top">视频地址:</td> <td><textarea name="video_url" id="video_url" rows="3" style="width:300px"></textarea> <span style="color:#999">请输入优酷、YouTube等平台的分享链接。</span> </td> </tr> <tr> <td align="right" valign="top">视频封面:</td> <td>{dede:field.video_img function='GetHtml(@me)'/}</td> </tr> <tr> <td align="right" valign="top">验证码:</td> <td> <input name="validate" type="text" id="vdcode" style="width:50px;text-transform:uppercase;" /> <img id="vdimgck" src="/include/vdimgck.php" alt="看不清?点击换一张" align="absmiddle" style="cursor:pointer" onclick="this.src='/include/vdimgck.php?t='+Math.random()" /> </td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="50" align="center"> <button type="submit" class="btn btn-primary">提交留言</button> <button type="reset" class="btn">重置</button> </td> </tr> </table> </form> </div> </div> </body> </html>注意:
post_video.htm中的{dede:field.vtype function='GetMkHtml(@me)'/}和{dede:field.video_img function='GetHtml(@me)'/}是DedeCMS自定义表单的标准调用标签,用于生成表单元素。diyid的值请回到【自定义表单】列表中查看。
第四步:创建留言列表页面
-
在网站根目录的
templets/plus/文件夹下,创建一个新文件,命名为list_video.htm。 -
在文件中编写代码,用于循环显示视频留言。
<!DOCTYPE html> <html> <head> <meta charset="utf-8">视频留言板</title> <link href="{dede:global.cfg_cmsurl/}/templets/style/dedecms.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="container"> <h2 class="tith02">视频留言板</h2> <div class="guestbook"> <!-- 调用视频留言列表 --> {dede:loop table='dede_addonvideo' sort='id' row='10' titlelen='30'} <div class="msg"> <div class="msgtitle"> <span class="name">[field:title function='htmlspecialchars(@me)'/]</span> <span class="date">[field:pubdate function='GetDateTimeMK(@me)'/]</span> </div> <div class="msgcon"> <!-- 根据视频类型调用不同的播放器 --> [field:vtype runphp='yes'] $vtype = @me; $video_url = trim(@me); if($vtype == 'youku') { // 优酷iframe代码,注意替换VIDEO_ID @me = '<iframe height="498" width="510" src="http://player.youku.com/embed/VIDEO_ID" frameborder="0" allowfullscreen></iframe>'; } elseif($vtype == 'youtube') { // YouTube iframe代码,注意替换VIDEO_ID @me = '<iframe width="510" height="498" src="https://www.youtube.com/embed/VIDEO_ID" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'; } elseif($vtype == 'local') { // 本地视频使用HTML5 video标签 @me = '<video controls width="510" height="498" poster="[field:video_img/]"><source src="[field:video_url/]" type="video/mp4">您的浏览器不支持 video 标签。</video>'; } else { @me = '<p>暂不支持此类型视频。</p>'; } [/field:vtype] </div> </div> {/dede:loop} <!-- 分页 --> <div class="page"> {dede:pagelist listsize='4' listitem='info,index,end,pre,next,pageno'} </div> </div> </div> </body> </html>注意:
loop table='dede_addonvideo'中的dede_addonvideo是你第一步创建的自定义表单对应的数据表名。- 优酷和YouTube的代码中,
VIDEO_ID需要替换成实际的视频ID,优酷ID是分享链接中id_=后面的部分,YouTube ID是v=后面的部分,这个可以通过PHP进一步解析,但为了简单,这里先手动替换。 [field:video_url/]是你上传的本地视频的相对路径,如/uploads/video/myvideo.mp4。
第五步:在前台页面调用
你可以在任何页面通过链接访问你的视频留言板了。
链接格式为:你的网站域名/plus/diy.php?action=list&diyid=你的自定义表单ID
http://www.yoursite.com/plus/diy.php?action=list&diyid=1
你可以在模板页面中用一个按钮或链接指向这个地址。
修改默认留言表(不推荐,有风险)
这种方法是直接修改DedeCMS默认的留言数据表 dede_guestbook,为其增加视频相关的字段。
操作步骤:
- 备份数据库! 这是最重要的一步。
- 进入phpMyAdmin,找到你的DedeCMS数据库。
- 找到
dede_guestbook表,点击“结构” -> “添加列”。 - 增加字段,如
vtype(varchar),video_url(text),video_img(varchar)。 - 修改
/plus/guestbook.php文件,在保存留言的SQL语句中加入新字段。 - 修改留言发布模板
/templets/plus/guestbook.htm,增加视频上传或输入的表单。 - 修改留言列表模板
/templets/plus/guestbook_list.htm,使用{dede:field.video/}等标签来调用和播放视频。
缺点:
- 修改核心文件,升级DedeCMS时需要重新修改,非常麻烦。
- 容易与官方更新产生冲突。
- 操作复杂,容易出错。
强烈不推荐普通用户使用此方法。
利用第三方留言插件(最简单)
市面上有很多功能强大的第三方留言插件,如“多说”、“畅言”(已停止服务)、“友言”等,这些插件本身就支持视频、图片等多媒体内容。
操作步骤:
- 选择一个你喜欢的第三方留言服务提供商,并注册账号。
- 获取你的站点ID或App Key。
- 在DedeCMS后台,找到该插件的安装说明,通常是上传文件、在模板中调用JS代码。
- 将JS代码粘贴到你的留言板模板文件(如
/templets/plus/guestbook.htm或/templets/plus/guestbook_list.htm)中。
优点:
- 无需修改DedeCMS核心,安全无忧。
- 功能强大,通常自带反垃圾、社交分享等功能。
- 升级DedeCMS不受影响。
缺点:
- 依赖第三方服务,如果服务关闭,你的留言板也会失效。
- 数据存储在第三方服务器,不是在自己的数据库里。
总结与建议
| 方法 | 优点 | 缺点 | 推荐度 |
|---|---|---|---|
| 自定义表单 | 灵活、强大、不修改核心、升级方便 | 需要一定的动手能力,步骤稍多 | ★★★★★ (强烈推荐) |
| 修改默认表 | 数据统一在一个表里 | 风险高、升级麻烦、易出错 | ★☆☆☆☆ (不推荐) |
| 第三方插件 | 最简单、功能丰富、安全 | 依赖第三方、数据不在本地 | ★★★★☆ (适合不想折腾的用户) |
对于绝大多数用户来说,方法一(自定义表单)是最佳选择,它在功能灵活性和系统安全性之间取得了最好的平衡,如果你只是想要一个快速、简单的解决方案,并且不介意数据在第三方,那么方法三(第三方插件)也是一个不错的选择。
