织梦dedecms5.7栏目如何添加缩略图?

99ANYc3cd6
预计阅读时长 24 分钟
位置: 首页 织梦建站 正文

第一步:修改数据库结构 (为 dede_arctype 表添加缩略图字段)

这是最关键的一步,我们需要在栏目表 dede_arctype 中增加一个字段来存储缩略图的路径。

织梦dedecms5.7栏目添加缩略图
(图片来源网络,侵删)
  1. 登录你的网站数据库管理工具,phpMyAdmin。

  2. 选择你的 dedecms 数据库。

  3. 点击 dede_arctype 表,选择“结构”或“SQL”选项卡。

  4. 使用SQL语句 (推荐)

    织梦dedecms5.7栏目添加缩略图
    (图片来源网络,侵删)
    • 在SQL输入框中执行以下语句:

      ALTER TABLE `dede_arctype` ADD `typeimg` CHAR(255) NOT NULL DEFAULT '';
      • ALTER TABLE ... ADD ... 是添加字段的标准SQL语法。
      • dede_arctype 是表名,如果你的表前缀不是 dede_,请修改成你的表前缀。
      • typeimg 是我们为缩略图字段起的名字。
      • CHAR(255) 是数据类型,用于存储图片路径。
      • NOT NULL DEFAULT '' 表示该字段不能为空,默认值为空字符串。
    • 点击“执行”按钮。

  5. 使用phpMyAdmin图形界面

    • dede_arctype 表的结构页面,点击“添加”字段按钮。
    • 在“字段名”输入框中填写 typeimg
    • 在“类型”下拉框中选择 varchar
    • 在“长度/值”中填写 255
    • 其他选项保持默认。
    • 点击“执行”或“保存”完成。

执行成功后,你的 dede_arctype 表就多了一个名为 typeimg 的字段,用于存放栏目缩略图路径。

织梦dedecms5.7栏目添加缩略图
(图片来源网络,侵删)

第二步:修改后台栏目管理文件 (添加上传和保存功能)

我们需要修改后台添加/编辑栏目的模板文件,让界面多出一个上传缩略图的输入框。

  1. 找到并打开文件dede/templets/catalog_add.htm (添加栏目模板) dede/templets/catalog_edit.htm (编辑栏目模板)

    这两个文件都需要修改,操作方法完全一样。

  2. 在合适的位置添加代码: 打开 catalog_add.htm 文件,找到类似 <tr> 的表格行,在“栏目名称”、“栏目目录”等字段后面添加一个新行。

    找到这段代码(或类似结构):

    <tr>
      <td height="26" style="padding-left:10px;">栏目名称:</td>
      <td>
        <input name="typename" type="text" id="typename" value="<?php echo $myrow['typename']?>"
          class="iptxt" style="width:250px" />
        <font color='red'>*</font>
      </td>
    </tr>

    在它后面,添加以下代码:

    <tr>
      <td height="26" style="padding-left:10px;">缩略图:</td>
      <td>
        <input name="typeimg" type="text" id="typeimg" value="<?php echo $myrow['typeimg']?>"
          class="iptxt" style="width:250px" />
        <input type="button" name="set1" value="上传图片" style="width:70px;cursor:pointer;"
          onclick="ShowImg('form1.typeimg','bigimg')"/>
        <input type="button" name="use1" value="使用" style="width:40px;cursor:pointer;"
          onclick="document.form1.typeimg.value='<?php echo $myrow['typeimg']?>'"/>
      </td>
    </tr>
    • name="typeimg":这个 name 属性必须与数据库中的字段名 完全一致,这样提交表单时数据才能正确保存。
    • value="<?php echo $myrow['typeimg']?>":用于在编辑栏目时,显示已经上传的缩略图路径。
    • onclick="ShowImg(...)":这是织梦自带的图片上传和选择弹窗函数,会调用 /include/dialog/select_images.php 这个文件。
  3. catalog_edit.htm 做完全相同的操作


第三步:修改栏目保存处理文件 (让数据能入库)

当你在后台填写完信息并点击“确定”或“保存”时,需要有一个PHP文件来接收和处理这些数据,并存入数据库。

  1. 找到并打开文件dede/catalog_add.php (添加栏目处理文件) dede/catalog_edit.php (编辑栏目处理文件)

    同样,这两个文件都需要修改。

  2. 修改代码: 在这两个文件中,找到SQL插入或更新语句,确保将 typeimg 字段包含进去。

    • catalog_add.php: 找到类似这样的代码:

      $query = "INSERT INTO `dede_arctype`(
        `reid`, `topid`, `sortrank`, `typename`, `typedir`, `isdefault`, `defaultname`, `issystem`,
        `ishidden`, `channeltype`, `corank`, `description`, `keywords`, `seotitle`, `moresite`,
        `siteurl`, `sitepath`, `modname`, `maxpage`, `isdefaultpage`, `description`
      ) VALUES (
        '$reid', '$topid', '$sortrank', '$typename', '$typedir', '$isdefault', '$defaultname', '$issystem',
        '$ishidden', '$channeltype', '$corank', '$description', '$keywords', '$seotitle', '$moresite',
        '$siteurl', '$sitepath', '$modname', '$maxpage', '$isdefaultpage', '$description'
      );";

      VALUES 的括号里,最后添加 $typeimg,在 INSERT INTO 的字段列表里也添加 typeimg

      修改后应该是这样:

      // ... 前面的代码 ...
      $typeimg = isset($typeimg) ? stripslashes($typeimg) : '';
      $query = "INSERT INTO `dede_arctype`(
        `reid`, `topid`, `sortrank`, `typename`, `typedir`, `isdefault`, `defaultname`, `issystem`,
        `ishidden`, `channeltype`, `corank`, `description`, `keywords`, `seotitle`, `moresite`,
        `siteurl`, `sitepath`, `modname`, `maxpage`, `isdefaultpage`, `description`, `typeimg`
      ) VALUES (
        '$reid', '$topid', '$sortrank', '$typename', '$typedir', '$isdefault', '$defaultname', '$issystem',
        '$ishidden', '$channeltype', '$corank', '$description', '$keywords', '$seotitle', '$moresite',
        '$siteurl', '$sitepath', '$modname', '$maxpage', '$isdefaultpage', '$description', '$typeimg'
      );";
      // ... 后面的代码 ...
    • catalog_edit.php: 找到 UPDATE 语句,做类似的操作。

      // ... 前面的代码 ...
      $typeimg = isset($typeimg) ? stripslashes($typeimg) : '';
      $query = "UPDATE `dede_arctype` SET
        `reid`='$reid',
        `topid`='$topid',
        `sortrank`='$sortrank',
        `typename`='$typename',
        `typedir`='$typedir',
        `isdefault`='$isdefault',
        `defaultname`='$defaultname',
        `issystem`='$issystem',
        `ishidden`='$ishidden',
        `channeltype`='$channeltype',
        `corank`='$corank',
        `description`='$description',
        `keywords`='$keywords',
        `seotitle`='$seotitle',
        `moresite`='$moresite',
        `siteurl`='$siteurl',
        `sitepath`='$sitepath',
        `modname`='$modname',
        `maxpage`='$maxpage',
        `isdefaultpage`='$isdefaultpage',
        `description`='$description',
        `typeimg`='$typeimg'
        WHERE id='$id';
      ";
      // ... 后面的代码 ...

第四步:在前台模板中调用栏目缩略图

现在后台功能已经完成,最后一步是在你的网站前台模板文件中调用并显示这个缩略图。

  1. 找到你的栏目列表模板,通常是: templets/default/list_channel.htm (频道封面页) templets/default/list_category.htm (栏目列表页)

  2. 在需要显示缩略图的位置,加入以下代码

    {dede:field name='typeimg' /}
    • 这个标签会直接输出该栏目的缩略图路径,/uploads/image/20251018/123456.jpg
  3. 为了更好的效果,通常会把它嵌入 <img> 标签中

    <img src="{dede:field name='typeimg' /}" alt="{dede:field name='typename' function='html2text(@me)'/}" />
    • src 属性用来显示图片。
    • alt 属性用于图片描述,这里我们使用了 {dede:field name='typename'} 来获取栏目名称作为 alt 文本,并用 function='html2text' 过滤掉HTML标签,使其更规范。

第五步:更新缓存

完成所有修改后,登录DedeCMS后台。

  1. 点击顶部菜单的“系统” -> “清除缓存”。
  2. 选择“一键更新网站”,然后点击“开始更新”,这一步会重新生成所有页面,确保你的修改生效。

总结与注意事项

  1. 表前缀:如果你的数据库表前缀不是 dede_,请务必修改所有SQL语句中的表名。
  2. 文件权限:确保你修改的文件(catalog_add.htm, catalog_edit.php 等)有写入权限。
  3. 模板标签{dede:field name='typeimg' /} 是调用核心字段,如果你使用了自定义模型,可能需要调整。
  4. 上传目录:上传的图片会保存在你网站后台设置的“附件目录”中,默认是 /uploads/

按照以上五个步骤操作,你就可以成功地为织梦DedeCMS 5.7的栏目添加并使用缩略图功能了。

-- 展开阅读全文 --
头像
C语言如何实现帕斯卡三角形?
« 上一篇 12-01
dede extend.func.php 有何作用?如何使用?
下一篇 » 12-01

相关文章

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

目录[+]