dede文档缩略图自定义属性如何添加?

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

整体思路

整个过程分为四个主要步骤:

dede添加文档缩略图自定义属性
(图片来源网络,侵删)
  1. 数据库层面:在 dede_archives 表(文章表)中添加一个新的字段来存储自定义缩略图的路径。
  2. 后台界面:修改后台的文章添加/编辑模板,为新添加的字段生成一个输入框。
  3. 数据处理:修改后台处理文章添加/编辑的PHP文件,将新字段的数据保存到数据库。
  4. 前台调用:修改前台模板文件,使用新的字段标签来调用自定义缩略图。

第一步:数据库层面添加新字段

这是最基础也是最关键的一步,我们需要向文章数据表中增加一个列。

  1. 登录你的网站数据库管理工具:通常是 phpMyAdmin。
  2. 选择正确的数据库:选择你的DedeCMS所使用的数据库名。
  3. 找到并编辑 dede_archives
    • 在左侧列表中找到 dede_archives 表(如果你的表前缀不是 dede_,请使用你自己的前缀)。
    • 点击“结构”或“操作” -> “结构”。
  4. 添加新字段
    • 在表结构列表下方,找到“添加新字段”的选项。
    • 填写以下信息:
      • 字段名thumb_custom (这个名称可以自定义,建议使用英文,不要用空格或特殊字符)
      • 类型VARCHAR (和系统自带的 litpic 字段类型一致)
      • 长度/值255 (设置一个足够长的长度,以存放完整的图片URL)
      • 排序规则utf8_general_ci (保持和数据库其他字段一致)
      • 属性utf8_general_ci (保持和数据库其他字段一致)
      • Null:勾选 (允许为空)
      • 默认值:留空 (不填写)
    • 点击“执行”或“保存”按钮。

至此,数据库层面的修改已经完成,你的 dede_archives 表现在有了一个名为 thumb_custom 的新字段,用于存储自定义缩略图。


第二步:后台界面添加输入框

我们需要让编辑者在发布文章时能够填写这个新字段的值,这需要修改DedeCMS的后台模板文件。

  1. 找到文章编辑模板文件: 文章添加和编辑共用一个模板文件,路径通常是: /dede/templets/article_add.htm (同样,如果你的后台目录不是 dede,请自行调整路径)

    dede添加文档缩略图自定义属性
    (图片来源网络,侵删)
  2. 编辑 article_add.htm 文件: 用代码编辑器(如 VS Code, Sublime Text, Notepad++)打开这个文件。

  3. 添加自定义输入框: 在文件中找到合适的位置插入新的表单元素,系统自带的 litpic(缩略图)字段附近是一个不错的选择,你可以参考 litpic 的代码来创建一个新的输入框。

    找到类似这样的代码段(用于系统缩略图):

    <tr>
      <td height="24" colspan="2" bgcolor="#f7f7f7"> &nbsp;缩略图:</td>
    </tr>
    <tr>
      <td height="80" colspan="2" bgcolor="#f7f7f7">
        <table width="100%" border="0" cellspacing="1" cellpadding="1">
          <tr>
            <td width="250">
              <input name="litpic" type="text" id="litpic" value="<?php echo $arcRow['litpic']; ?>" style="width:150px" />
              <input type="button" name="set1" value="选择..." style="width:60px" onClick="SelectImage('form1.litpic','small');" />
            </td>
            <td>推荐尺寸:280px * 200px (文章封面)</td>
          </tr>
        </table>
      </td>
    </tr>

    在它后面,模仿它的结构,添加我们自己的自定义缩略图输入框

    dede添加文档缩略图自定义属性
    (图片来源网络,侵删)
    <!-- 在上面的 </tr> 后面添加如下代码 -->
    <tr>
      <td height="24" colspan="2" bgcolor="#f7f7f7"> &nbsp;自定义缩略图:</td>
    </tr>
    <tr>
      <td height="80" colspan="2" bgcolor="#f7f7f7">
        <table width="100%" border="0" cellspacing="1" cellpadding="1">
          <tr>
            <td width="250">
              <input name="thumb_custom" type="text" id="thumb_custom" value="<?php echo $arcRow['thumb_custom']; ?>" style="width:150px" />
              <input type="button" name="set2" value="选择..." style="width:60px" onClick="SelectImage('form1.thumb_custom','small');" />
            </td>
            <td>请输入自定义缩略图的URL,或点击“选择”按钮上传/选择图片。</td>
          </tr>
        </table>
      </td>
    </tr>

    代码解释

    • name="thumb_custom":这个 name 属性至关重要,它必须与我们第一步在数据库中创建的字段名完全一致,后台PHP程序会通过这个 name 来获取提交的数据。
    • id="thumb_custom":元素的唯一标识,方便JavaScript操作。
    • value="<?php echo $arcRow['thumb_custom']; ?>":这行代码用于在编辑文章时,显示当前文章已保存的自定义缩略图路径。$arcRow 是一个包含文章所有信息的数组。
    • onClick="SelectImage('form1.thumb_custom','small');":这是DedeCMS内置的图片选择器调用代码,它会弹出一个窗口让你选择本站已上传的图片,选中的图片路径会自动填充到 thumb_custom 输入框中。'form1.thumb_custom' 指定了要填充的表单元素。
  4. 保存文件:将修改后的 article_add.htm 文件上传回服务器。

登录你的DedeCMS后台,进入“核心” -> “内容发布” -> “添加文档”或“编辑文档”,你应该能看到新增的“自定义缩略图”输入框了。


第三步:后台数据处理

后台界面已经有了输入框,但提交的数据还需要被正确地处理并保存到数据库,这需要修改对应的PHP处理文件。

  1. 找到文章发布处理文件

    • 添加文章/dede/archives_add.php
    • 编辑文章/dede/archives_edit.php
  2. archives_add.php 中修改

    • 找到处理 litpic 字段的代码段,通常在SQL插入语句附近,它看起来可能像这样:
      // ... 其他代码 ...
      $inquery = "INSERT INTO `dede_archives`( ... , `litpic`, ... ) VALUES ( ... , '$litpic', ... )";
      // ... 其他代码 ...
    • 在SQL语句的 VALUES 部分和 INSERT INTO 的字段列表部分,都加入 thumb_custom
      // ... 其他代码 ...
      $inquery = "INSERT INTO `dede_archives`( ... , `litpic`, `thumb_custom`, ... ) VALUES ( ... , '$litpic', '$thumb_custom', ... )";
      // ... 其他代码 ...
    • 注意:PHP会自动通过 $_POST['thumb_custom'] 获取到表单提交的值,你需要确保变量 $thumb_custom 已经被定义,在文件的开头会有类似 $title = cn_substrR($title, $cfg_title_maxlen); 的代码,你可以在那里添加一行:$thumb_custom = isset($_POST['thumb_custom']) ? trim($_POST['thumb_custom']) : ''; 来确保变量存在且被过滤。
  3. archives_edit.php 中修改

    • 这个文件用于更新已有文章,找到更新 dede_archives 表的SQL语句。
    • 它通常是一个 UPDATE 语句,
      // ... 其他代码 ...
      $upquery = "UPDATE `dede_archives` SET ... , `litpic`='$litpic', ... WHERE id='$aid'";
      // ... 其他代码 ...
    • SET 子句中添加 thumb_custom 字段:
      // ... 其他代码 ...
      $upquery = "UPDATE `dede_archives` SET ... , `litpic`='$litpic', `thumb_custom`='$thumb_custom', ... WHERE id='$aid'";
      // ... 其他代码 ...
    • 同样,确保在文件开头定义了 $thumb_custom 变量。
  4. 保存文件:将修改后的 archives_add.phparchives_edit.php 文件上传回服务器。

当你通过后台添加或编辑文章并填写“自定义缩略图”后,数据就能被正确保存到数据库了。


第四步:前台模板调用

最后一步,就是在我们需要显示这个自定义缩略图的前台模板中调用它。

  1. 找到前台模板文件: 根据你的网站结构,找到需要显示缩略图的模板文件。

    • 首页文章列表:/templets/default/index.htm
    • 栏目页文章列表:/templets/default/list_栏目ID.htm
    • 页:/templets/default/article_article.htm
  2. 添加新的标签调用: DedeCMS的模板引擎使用 {dede:} 标签,我们使用 field 标签来调用文章的任意自定义字段。

    假设我们要在首页文章列表中显示自定义缩略图,并把它放在系统缩略图 {dede:field name='litpic'/} 的位置。

    修改前(只显示系统缩略图)

    <a href="[field:arcurl/]"><img src="[field:litpic/]" alt="[field:title function='html2text(@me)'/]" /></a>

    修改后(优先显示自定义缩略图,如果没有则显示系统缩略图): 这是最推荐的做法,通过一个简单的 if 判断来实现。

    {dede:field name='thumb_custom' runphp='yes'}
    if(@me != '') {
        @me = '<img src="' . @me . '" alt="[field:title function='html2text(@me)'/]" />';
    } else {
        @me = '<img src="[field:litpic/]" alt="[field:title function='html2text(@me)'/]" />';
    }
    {/dede:field}

    或者,如果你想用更简洁的 if 语法(如果PHP版本支持):

    {dede:field name='thumb_custom' runphp='yes'}
    @me = (@me != '') ? '<img src="' . @me . '" alt="[field:title function='html2text(@me)'/]" />' : '<img src="[field:litpic/]" alt="[field:title function='html2text(@me)'/]" />';
    {/dede:field}

    代码解释

    • {dede:field name='thumb_custom' runphp='yes'}:调用 thumb_custom 字段的值,并启用PHP运行。
    • if(@me != ''):判断 thumb_custom 的值是否为空。
    • @me = '...':如果条件成立(不为空),就将 @me 变量的值设置为自定义缩略图的 <img>
    • else { @me = '...' }:如果条件不成立(为空),就将 @me 变量的值设置为系统自带的 litpic<img>
    • [field:arcurl/][field:title function='html2text(@me)'/] 等是嵌套的标签,用于获取文章链接、标题等信息。
  3. 保存模板文件:将修改后的模板文件上传到服务器,并更新网站缓存(后台的“系统” -> “一键更新网站” -> “更新HTML”)。


通过以上四个步骤,你就可以成功地在DedeCMS中为文档添加一个自定义的缩略图属性了。

  • 数据库:添加字段 thumb_custom
  • 后台:修改 article_add.htm,添加 name="thumb_custom" 的输入框。
  • 处理:修改 archives_add.phparchives_edit.php,将 thumb_custom 写入SQL语句。
  • 前台:在模板中使用 {dede:field name='thumb_custom' runphp='yes'} 进行调用。

这个过程不仅适用于“缩略图”,也可以推广到添加任何其他自定义文章属性,只需将字段名和 name 属性统一即可。

-- 展开阅读全文 --
头像
织梦dedecms数据库文件是什么?
« 上一篇 2025-12-20
织梦php单页面模板下载地址哪里找?
下一篇 » 2025-12-20

相关文章

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