- 为软件模型的数据表添加一个新字段,用来存储图集信息。
- 修改后台软件模型的表单模板,让发布页面上出现图集上传按钮。
- 修改前台软件内容页的模板,让上传的图集能够正常显示。
下面是详细的图文步骤说明:
第一步:为软件模型的数据表添加新字段
织梦的每个模型都对应一个独立的数据表,软件模型默认的数据表是 #@__soft。
-
登录你的网站后台。

-
进入数据库管理:
- 在顶部菜单栏找到 “系统” -> “SQL命令行工具” -> “运行SQL查询”。
- 或者,如果你使用的是更专业的工具(如phpMyAdmin),可以直接登录数据库操作。
-
执行SQL语句: 在SQL查询框中,输入以下命令,然后点击“查询”或“执行”。
ALTER TABLE `#@__soft` ADD `litpicset` TEXT NOT NULL DEFAULT '';
语句解释:
ALTER TABLE ... ADD ...:这是修改表结构的命令。#@__soft:这是织梦前缀dede_的占位符,系统会自动替换成你自己的前缀。litpicset:这是我们为图集字段起的名字,你可以自定义,但最好用有意义的名称,且不要用系统已有的关键字。TEXT:表示这个字段用来存储文本,可以存放很长内容,足够用来存放图片路径的JSON字符串。NOT NULL DEFAULT '':表示这个字段不能为空,默认值为空字符串。
执行成功后,
#@__soft表里就多了一个名为litpicset的字段,用于存储图集数据。
第二步:修改后台软件模型的发布表单
现在我们需要让后台在发布或编辑软件时,能看到一个可以上传多张图片的图集区域。

-
找到后台模板文件: 织梦的后台模板文件通常位于
/dede/templets/目录下,我们需要修改的是软件模型的发布表单。- 这个文件通常叫做:
soft_add.htm(用于新增) 和soft_edit.htm(用于编辑)。 - 为了方便,你可以直接修改
soft_add.htm,然后将修改后的代码复制到soft_edit.htm中,或者两个文件都修改。
- 这个文件通常叫做:
-
编辑
soft_add.htm文件: 用文本编辑器(如 Notepad++、VS Code)打开这个文件。 -
添加图集上传代码: 在合适的位置(在“软件截图”字段的后面),插入以下代码块。
<tr> <td height="24" colspan="2" style="padding-left:10px;"> <strong>软件图集:</strong> <button type="button" name="set1" onclick="ShowImg('form1.litpicset','软件图集');"> <img src="images/channeladd.gif" border="0" /> 添加软件图集 </button> (建议尺寸:800x600 像素) </td> </tr> <tr> <td height="100" colspan="2" style="padding-left:10px;"> <textarea name="litpicset" id="litpicset" style="width:600px;height:100px;"></textarea> <div id='litpicset_div'></div> </td> </tr> -
保存文件: 将修改后的
soft_add.htm文件上传回你的服务器/dede/templets/目录下,覆盖原文件。soft_edit.htm也做同样修改。
现在去后台测试一下:进入“核心” -> “内容模型管理” -> “选择软件模型” -> “增加内容”,你应该就能看到“软件图集”的选项了,点击“添加软件图集”按钮,会弹出一个图片选择窗口,你可以选择多张图片上传。

第三步:修改前台内容页模板以显示图集
后台能上传了,接下来要让前台用户能看到这些图片。
-
找到前台内容页模板: 这个模板通常位于你的模板目录下,
/templets/default/或/templets/你的模板名称/。- 页的模板文件通常叫做:
soft_add.htm或者article_soft.htm,具体取决于你的网站模板结构,你可以通过后台的“模板” -> “默认模板管理”中查看软件内容页使用的是哪个模板文件。
- 页的模板文件通常叫做:
-
编辑模板文件: 用文本编辑器打开这个模板文件。
-
添加图集显示代码: 在
{dede:field.body/}标签附近(或者你认为合适的位置,比如软件截图的下方),添加以下代码来循环显示图集中的图片。<!-- 软件图集 --> {dede:field name='litpicset' runphp='yes'} $images = @me; $images = stripslashes($images); preg_match_all("/src=\"(.*?)\"/is", $images, $img_array); $img_array = array_unique($img_array[1]); @me = ''; foreach($img_array as $img){ @me .= "<li><img src='".$img."' width='800' height='600' /></li>"; } {/dede:field} <!-- 使用一个ul列表来展示图集 --> {dede:field.litpicset runphp='yes'} $images = @me; if($images){ $images = stripslashes($images); $img_array = json_decode($images, true); @me = ''; if(is_array($img_array)){ foreach($img_array as $img){ @me .= "<li><img src='".$img['url']."' alt='".$img['alt']."' /></li>"; } } }else{ @me = '<li>暂无图集</li>'; } {/dede:field} <!-- 如果上面的代码不显示,可能是因为数据格式问题,可以尝试下面这种更通用的解析方式 --> {dede:field name='litpicset' runphp='yes'} $images = @me; if(empty($images)) { @me = "<p>该软件暂无图集。</p>"; } else { // 织梦图集字段通常存储的是JSON格式的图片信息 $images = stripslashes($images); $images_array = json_decode($images, true); $html = '<div class="soft-gallery"><ul>'; if(is_array($images_array)) { foreach($images_array as $img) { // 根据实际情况调整图片路径和尺寸 $src = isset($img['url']) ? $img['url'] : ''; $alt = isset($img['alt']) ? $img['alt'] : ''; if(!empty($src)){ $html .= "<li><img src='{$src}' alt='{$alt}' /></li>"; } } } $html .= '</ul></div>'; @me = $html; } {/dede:field}代码解释:
{dede:field name='litpicset' runphp='yes'}:调用litpicset字段,并开启PHP运行。@me:这是一个变量,代表当前字段的原始值。stripslashes():移除可能由转义引起的反斜杠。json_decode():织梦的图集字段通常存储的是JSON格式的字符串,我们需要用这个函数把它转换成PHP数组。foreach($img_array as $img):循环遍历图片数组。@me .= ...:将拼接好的HTML代码赋值给@me,最终在页面上显示出来。<li><img ... /></li>:生成一个列表项,里面包含一张图片,你可以根据自己网站的样式调整img标签的width和height,或者用CSS来控制。
-
保存文件: 将修改后的模板文件上传回服务器。
总结与注意事项
- 缓存问题:修改完模板文件后,如果前台页面没有立即更新,请去后台的“系统” -> “一键更新网站” -> “更新HTML”,并勾选“更新所有”。
- CSS样式:图集显示出来后,可能样式很乱,你需要为图集的容器(如
.soft-gallery)和列表项(li)编写一些CSS样式,来控制布局、间距、缩略图效果等。 - **数据
