dede 自定义图片 安装

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

在 DedeCMS 中,实现这个功能最标准、最灵活的方法是创建一个自定义模型,这比直接修改核心文件更安全、更易于维护。

下面我将分步为你讲解整个过程,从安装到调用。


核心思路

  1. 创建数据表:在数据库中创建一个专门用来存储图片信息的表。
  2. 创建自定义模型:在后台“核心” -> “内容模型管理”中,创建一个新的模型,并关联到上一步的数据表。
  3. 添加自定义表单:在新模型中添加一个“图片”类型的表单字段,用于上传图片。
  4. 内容录入:通过后台“新增内容”功能,使用这个新模型来上传和管理你的图片。
  5. 前台调用:使用 DedeCMS 的标签(如 arclistsql)来调用这些图片并显示在页面上。

详细步骤

第一步:创建数据表

  1. 登录你的网站数据库管理工具(如 phpMyAdmin)。
  2. 选择你的 DedeCMS 数据库。
  3. 点击“SQL”选项卡,执行以下 SQL 语句来创建一个名为 dede_custom_image 的表,你可以根据需要修改表名和字段名。
CREATE TABLE `dede_custom_image` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  `typeid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '分类ID', varchar(100) NOT NULL DEFAULT '' COMMENT '图片标题',
  `litpic` varchar(255) NOT NULL DEFAULT '' COMMENT '图片路径',
  `url` varchar(255) NOT NULL DEFAULT '' COMMENT '图片链接地址',
  `addtime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '添加时间',
  `flag` set('c','h','p','j','a','b','s') DEFAULT NULL COMMENT '属性',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='自定义图片表';

字段说明:

  • id: 主键,唯一标识每一条记录。
  • typeid: 分类ID,方便以后按分类调用。: 图片的标题,用于显示和SEO。
  • litpic: 这是核心字段,用于存储上传图片的路径。
  • url: 可选,点击图片后跳转的链接地址。
  • addtime: 添加时间,用于排序。
  • flag: DedeCMS 的属性标记,可选。

第二步:创建自定义模型

  1. 登录 DedeCMS 后台。
  2. 进入 “核心” -> “内容模型管理”
  3. 点击右上角的 模型”
  4. 填写模型信息:
    • 模型名称:填写一个你容易识别的名字,自定义图片”。
    • 表前缀:选择你刚才创建的数据表 dede_custom_image
    • 模型标识:填写一个英文或数字的唯一标识,custom_image
    • 内容目录:可以留空或指定一个目录。
    • 图片目录:可以留空或指定一个目录。
    • 其他选项可以根据需要设置,通常保持默认即可。
  5. 点击“确定”保存,一个名为“自定义图片”的新模型已经创建成功。

第三步:添加自定义表单字段

这一步是让你的模型能够接收图片上传的关键。

  1. 在后台继续停留在 模型管理” 页面。
  2. 找到你刚刚创建的 “自定义图片” 模型,点击右侧的 “字段管理”
  3. 点击 “增加新字段”
  4. 填写字段信息:
    • 字段名称:必须是小写英文,litpic。(注意:必须和你在数据表中定义的字段名 litpic 完全一致!)
    • :填写一个在前台显示的标题,上传图片”。
    • 字段类型选择“图片”
    • 默认值:留空。
    • 字段说明:可选,请上传一张图片”。
    • 是否显示:选择“是”。
    • 是否为空:根据需要选择,如果要求必须上传,就选择“否”。
    • 其他选项:如“最大宽度”、“最大高度”等可以设置。
  5. 点击“保存”按钮,你的模型已经具备了上传图片的功能。

第四步:内容录入

  1. 回到 DedeCMS 后台首页。
  2. 进入
  3. 在“选择内容模型”的下拉菜单中,选择你刚刚创建的 “自定义图片”
  4. 你会看到一个类似文章编辑的界面,但只有一个“上传图片”字段(如果你只添加了一个字段的话)。
  5. 点击“上传图片”按钮,在弹出的窗口中选择本地图片上传,或者从媒体库中选择。
  6. title 字段)。
  7. 你还可以在扩展内容里填写“图片链接地址”(url 字段)。
  8. 选择一个分类(如果你设置了分类的话)。
  9. 点击“保存内容”。

你的图片数据已经成功存储在数据库中了。


第五步:前台调用

这是最后一步,将后台上传的图片显示在你的网站页面上,DedeCMS 提供了非常灵活的标签系统,这里介绍两种最常用的方法。

使用 arclist 标签(推荐,用于列表展示)

arclist 是 DedeCMS 最强大的列表标签,虽然主要用于文章,但也可以用来调用自定义模型的内容。

{dede:arclist row='10' titlelen='30' typeid='1' channelid='-3'}
    <li>
        <a href="[field:arcurl/]">
            <img src="[field:litpic/]" alt="[field:title/]" />
            <span>[field:title/]</span>
        </a>
    </li>
{/dede:arclist}

参数解释:

  • row='10':调用 10 条记录,len='30'`:标题长度限制为 30 个字符。
  • typeid='1':调用 ID 为 1 的分类下的内容。这个分类 ID 是你在后台“频道模型” -> “自定义分类目录”中为“自定义图片”模型创建的分类 ID。
  • channelid='-3'这是关键! -3 是 DedeCMS 中自定义模型的固定 ID,如果你的模型是后来创建的,这个 ID 可能会变,你可以在后台“内容模型管理”中查看你的模型 ID,然后用 channelid='你的模型ID' 来调用,如果你的模型 ID 是 5,就写 channelid='5'
  • [field:litpic/]:调用图片路径。
  • [field:title/]:调用图片标题。
  • [field:arcurl/]页链接,对于自定义模型,它会链接到一个内容详情页。

使用 sql 标签(最灵活,用于任何场景)

sql 标签可以直接执行 SQL 语句,让你完全控制数据的查询和显示。

{dede:sql sql='SELECT id, title, litpic FROM dede_custom_image ORDER BY id DESC LIMIT 10'}
    <li>
        <a href="[field:php]echo GetOneArcUrl(@me);[/field:php]">
            <img src="[field:litpic/]" alt="[field:title/]" />
            <span>[field:title/]</span>
        </a>
    </li>
{/dede:sql}

参数解释:

  • sql='...':这里直接写你的 SQL 查询语句。
  • ORDER BY id DESC LIMIT 10:按 ID 降序排列,并只取前 10 条。
  • [field:php]echo GetOneArcUrl(@me);[/field:php]:这是 DedeCMS 的一个技巧,用于生成自定义模型的内容页链接。@me 代表当前记录的 ID,GetOneArcUrl 函数会根据这个 ID 和模型信息生成正确的 URL。

总结与注意事项

  1. 安全第一:遵循以上步骤创建自定义模型,而不是直接修改 DedeCMS 的核心文件(如 article_add.php),这样在升级系统时你的修改不会被覆盖。
  2. 模型 ID:使用 arclist 时,channelid 的值一定要正确,如果不确定,就去后台“内容模型管理”里查一下。
  3. 权限问题:确保你的网站目录(/uploads/ 等)有正确的写入权限,否则无法上传图片。
  4. 模板路径:确保你的前台模板文件路径正确,DedeCMS 才能正确解析标签。
  5. 分类功能:如果你需要按分类管理图片,记得在后台“频道模型” -> “自定义分类目录”中为你的新模型创建分类,并在调用时指定 typeid

通过以上五个步骤,你就可以在 DedeCMS 中成功安装并使用一个功能完整的“自定义图片”模块了。

-- 展开阅读全文 --
头像
织梦反馈,如何高效优化用户体验?
« 上一篇 今天
没有更多啦!
下一篇 »

相关文章

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

目录[+]