织梦DedeCMS如何添加图集模型选项?

99ANYc3cd6
预计阅读时长 18 分钟
位置: 首页 织梦建站 正文
  1. 为软件模型的数据表添加一个新字段,用来存储图集信息。
  2. 修改后台软件模型的表单模板,让发布页面上出现图集上传按钮。
  3. 修改前台软件内容页的模板,让上传的图集能够正常显示。

下面是详细的图文步骤说明:


第一步:为软件模型的数据表添加新字段

织梦的每个模型都对应一个独立的数据表,软件模型默认的数据表是 #@__soft

  1. 登录你的网站后台

    织梦DedeCMS如何添加图集模型选项?

  2. 进入数据库管理

    • 在顶部菜单栏找到 “系统” -> “SQL命令行工具” -> “运行SQL查询”。
    • 或者,如果你使用的是更专业的工具(如phpMyAdmin),可以直接登录数据库操作。
  3. 执行SQL语句: 在SQL查询框中,输入以下命令,然后点击“查询”或“执行”。

    ALTER TABLE `#@__soft` ADD `litpicset` TEXT NOT NULL DEFAULT '';

    语句解释

    • ALTER TABLE ... ADD ...:这是修改表结构的命令。
    • #@__soft:这是织梦前缀dede_的占位符,系统会自动替换成你自己的前缀。
    • litpicset:这是我们为图集字段起的名字,你可以自定义,但最好用有意义的名称,且不要用系统已有的关键字。
    • TEXT:表示这个字段用来存储文本,可以存放很长内容,足够用来存放图片路径的JSON字符串。
    • NOT NULL DEFAULT '':表示这个字段不能为空,默认值为空字符串。

    执行成功后,#@__soft 表里就多了一个名为 litpicset 的字段,用于存储图集数据。


第二步:修改后台软件模型的发布表单

现在我们需要让后台在发布或编辑软件时,能看到一个可以上传多张图片的图集区域。

织梦DedeCMS如何添加图集模型选项?

  1. 找到后台模板文件: 织梦的后台模板文件通常位于 /dede/templets/ 目录下,我们需要修改的是软件模型的发布表单。

    • 这个文件通常叫做:soft_add.htm (用于新增) 和 soft_edit.htm (用于编辑)。
    • 为了方便,你可以直接修改 soft_add.htm,然后将修改后的代码复制到 soft_edit.htm 中,或者两个文件都修改。
  2. 编辑 soft_add.htm 文件: 用文本编辑器(如 Notepad++、VS Code)打开这个文件。

  3. 添加图集上传代码: 在合适的位置(在“软件截图”字段的后面),插入以下代码块。

    <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>
  4. 保存文件: 将修改后的 soft_add.htm 文件上传回你的服务器 /dede/templets/ 目录下,覆盖原文件。soft_edit.htm 也做同样修改。

现在去后台测试一下:进入“核心” -> “内容模型管理” -> “选择软件模型” -> “增加内容”,你应该就能看到“软件图集”的选项了,点击“添加软件图集”按钮,会弹出一个图片选择窗口,你可以选择多张图片上传。

织梦DedeCMS如何添加图集模型选项?


第三步:修改前台内容页模板以显示图集

后台能上传了,接下来要让前台用户能看到这些图片。

  1. 找到前台内容页模板: 这个模板通常位于你的模板目录下,/templets/default//templets/你的模板名称/

    • 页的模板文件通常叫做:soft_add.htm 或者 article_soft.htm,具体取决于你的网站模板结构,你可以通过后台的“模板” -> “默认模板管理”中查看软件内容页使用的是哪个模板文件。
  2. 编辑模板文件: 用文本编辑器打开这个模板文件。

  3. 添加图集显示代码: 在 {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 标签的 widthheight,或者用CSS来控制。
  4. 保存文件: 将修改后的模板文件上传回服务器。


总结与注意事项

  1. 缓存问题:修改完模板文件后,如果前台页面没有立即更新,请去后台的“系统” -> “一键更新网站” -> “更新HTML”,并勾选“更新所有”。
  2. CSS样式:图集显示出来后,可能样式很乱,你需要为图集的容器(如 .soft-gallery)和列表项(li)编写一些CSS样式,来控制布局、间距、缩略图效果等。
  3. **数据

-- 展开阅读全文 --
头像
dede如何获取文章传递的request id?
« 上一篇 11-26
dede common.inc.php包含漏洞如何防范?
下一篇 » 11-26

相关文章

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

目录[+]