织梦自定义联动类别如何创建与使用?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 织梦建站 正文
  1. 理解联动类别的原理
  2. 如何手动创建和配置联动类别
  3. 如何在模板和内容页中调用联动类别

第一部分:理解联动类别的原理

织梦的联动类别主要由三个部分组成:

织梦自定义联动类别
(图片来源网络,侵删)
  1. 后台数据表

    • #@sys_enum:这是核心表,用来存储所有的联动类别项,它包含以下关键字段:
      • enid:项目ID(主键)。
      • evalue:项目值,通常用于表单提交和数据库存储。
      • ename:项目名称,这是用户在前端看到的名字。
      • egroup:组名,用于区分不同的联动类别,所有地区相关的项egroup都可能是nativeplace,所有学历相关的项egroup都可能是education
      • orderkey:排序,决定项目在前端的显示顺序。
  2. 后台管理

    • 在织梦后台,有一个专门的“联动类别”管理模块,你可以在这里添加、修改、删除不同组(egroup)下的项目。
  3. 前端调用

    • 织梦提供了专门的标签{dede:enum}来遍历和显示联动类别,你可以通过指定group参数来调用不同的联动类别组。
    • 模型中,你可以将一个字段设置为“联动类型”,这样在前台发布内容时,就会自动生成一个下拉选择框(或多级联动菜单),数据来源于你配置好的egroup

第二部分:如何手动创建和配置联动类别

假设我们要创建一个“职位”联动类别,结构为:技术 -> 前端开发, 后端开发, 运维

织梦自定义联动类别
(图片来源网络,侵删)

步骤 1:进入联动类别管理

登录织梦后台,找到菜单栏的 【核心】 -> 【联动类别】,点击进入。

步骤 2:添加新的联动类别组

  1. 在联动类别管理页面,点击右上角的 【增加联动类别】 按钮。
  2. 在弹出的表单中填写信息:
    • 组名jobposition (这个是唯一的标识符,在模板调用时需要用到,建议用英文或拼音,不要用中文和特殊符号)。
    • 组别名称职位 (这个是后台显示的名称,可以中文)。
    • 是否启用:选择“是”。
    • 内容显示格式:可以选择“下拉列表”或“多级联动”,对于职位这种层级不深的,下拉列表就足够了,如果像“省/市/区”这种多级,就选“多级联动”。
    • 枚举值:这里暂时不填,我们先保存这个组。
  3. 点击 【确定】,一个名为 jobposition 的联动类别组已经创建好了,但它里面还没有任何数据项。

步骤 3:向联动类别组中添加数据项

  1. 回到“联动类别”管理列表页面,你应该能看到刚才创建的 职位 组。

  2. 点击该组所在行的 【管理】【增加项目】

  3. 现在开始添加数据:

    织梦自定义联动类别
    (图片来源网络,侵删)
    • 添加一级项“技术”
      • 在“枚举值”输入框中输入:技术 (这里的ename是显示名)
      • 在“枚举值”输入框旁边的“值”输入框中输入:tech (这里的evalue是存储值,最好用英文)
      • 点击 【新增】 按钮。
    • 添加二级项“前端开发”
      • 在“枚举值”输入框中输入:前端开发
      • 在“值”输入框中输入:frontend
      • 关键一步:在“父id”下拉框中选择 技术 对应的ID(通常是1,因为它是第一个)。
      • 点击 【新增】 按钮。
    • 添加二级项“后端开发”
      • 在“枚举值”输入框中输入:后端开发
      • 在“值”输入框中输入:backend
      • 在“父id”下拉框中选择 技术 对应的ID。
      • 点击 【新增】 按钮。
    • 添加二级项“运维”
      • 在“枚举值”输入框中输入:运维
      • 在“值”输入框中输入:devops
      • 在“父id”下拉框中选择 技术 对应的ID。
      • 点击 【新增】 按钮。
  4. 调整顺序:你可以通过拖动项目或修改 orderkey 字段来调整它们的显示顺序。

至此,后台的联动类别数据已经配置完成。#@sys_enum 表中已经插入了相应的数据。


第三部分:如何在模板和内容页中调用联动类别

联动类别的调用分为两种场景:在普通模板中调用模型中作为字段调用

在普通模板中调用(在“联系我们”页面显示职位选择)

假设你想在首页的某个位置直接展示一个职位选择的下拉菜单。

使用 {dede:enum}

<select name="jobposition">
    <option value="0">请选择职位</option>
    {dede:enum group='jobposition' type='son'}
        <option value="[field:evalue/]">[field:ename/]</option>
    {/dede:enum}
</select>

标签解析

  • group='jobposition':指定调用我们刚才创建的“职位”联动类别组。
  • type='son':这是一个重要参数,它表示只调用父级(技术)下的子级(前端开发等),如果省略type,则会调用该组下的所有顶级项(在这里就是“技术”),对于多级联动(如省市区),你需要使用 type='sun' 来获取所有子孙项。
  • [field:evalue/]:输出该项的存储值(如 frontend)。
  • [field:ename/]:输出该项的显示名称(如 前端开发)。

模型中作为字段调用(最常用的方式)

这是联动类别的核心应用,让用户在发布内容时可以选择。

  1. 创建/修改内容模型

    • 进入后台 【核心】 -> 【内容模型管理】
    • 如果要给现有模型(如“文章”)添加,点击其后的 【字段管理】
    • 如果要新建模型,点击 模型】
  2. 添加联动类型字段

    • 点击 【增加新字段】
    • 填写字段信息:
      • 字段名jobposition (与后台egroup保持一致,方便调用)。
      • 字段标识职位 (前台显示的名称)。
      • 字段类型选择“联动类型”
      • 联动类型:在下拉框中选择我们之前创建的 职位
      • 是否为必填项:根据需要选择。
      • 其他选项(如默认值、提示文字等)可以按需填写。
    • 点击 【保存】
  3. 更新缓存

    • 保存字段后,系统会提示你更新缓存,请务必在 【系统】 -> 【一键更新网站】 中,勾选“更新数据库”并执行。
  4. 页面查看效果

    现在去发布一篇内容(文章、产品等),你应该能看到表单中多出了一个“职位”的下拉选择框,里面包含了我们配置的“前端开发”、“后端开发”等选项。

  5. 页模板中调用

    • 页的模板文件(通常是 article_article.htm)。
    • 在需要显示职位信息的地方,使用以下标签:
    <p>您的职位是:{dede:field name='jobposition'/}</p>
    • 注意:默认情况下,{dede:field name='jobposition'} 输出的是 存储值(如 frontend)。
    • 如果你想输出 显示名称(如 前端开发),你需要使用自定义函数或修改系统文件(不推荐),一个更简单的方法是在发布内容时,手动将显示名也填入一个普通文本字段,或者使用更高级的二次开发。

    一个更好的显示方法(推荐): 你可以在后台SQL查询#@sys_enum表,根据存储值找到对应的显示名,但这在模板里比较麻烦。

    最直接的方法是,在发布内容时,用户选择的值是evalue,我们通过evalue#@sys_enum表里查ename,织梦本身没有提供直接转换的标签,通常我们会通过修改arc.archives.class.php文件来实现,但这属于二次开发范畴。

    对于大多数情况,直接显示存储值{dede:field name='jobposition'}也是可以接受的,只要前后端约定好即可。

总结与最佳实践

  1. 命名规范egroup(组名)和字段名建议使用英文、数字或下划线,避免使用中文和特殊符号,以防出错。
  2. 数据规划:在创建联动类别前,想好你的数据结构和层级关系,避免后期频繁修改。
  3. 多级联动:对于“省/市/区”这种经典多级联动,创建顶级项(如“广东省”),然后为其添加子项(如“广州市”),再为“广州市”添加子项(如“天河区”),在模板中调用时,使用{dede:enum group='nativeplace' type='sun'}来获取所有层级的选项,并配合JavaScript实现动态联动效果。
  4. 权限:确保操作后台的账号有足够的权限来管理内容模型和系统设置。

通过以上步骤,你就可以熟练地在织梦CMS中创建和使用自定义联动类别了。

-- 展开阅读全文 --
头像
织梦数据库备份内容如何安全存储与恢复?
« 上一篇 04-20
织梦做网站到底要不要钱?
下一篇 » 04-20

相关文章

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