织梦CMS联动功能如何正确使用?

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

联动类别是织梦一个非常强大且实用的功能,它类似于网站的省市区三级联动、商品分类、品牌列表等,它的核心思想是建立一个有层级关系的数据字典,然后在网站的任何地方(包括前后台)都可以方便地调用和展示。

织梦cms联动怎样用
(图片来源网络,侵删)

联动类别是什么?有什么用?

联动类别就是一个可以无限分级(通常最多支持三级)的选项列表。

  • 地区联动: 中国 -> 广东省 -> 广州市
  • 行业联动: IT互联网 -> 前端开发 -> JavaScript
  • 汽车品牌: 宝马 -> 3系 -> 320i

主要用途:

  1. 内容模型字段: 作为自定义字段,让用户在发布信息时可以选择,发布房产信息时,联动选择“省份-城市-区县”。
  2. 网站导航: 制作带有下拉菜单的分类导航,如“产品中心”下有“产品A”、“产品B”等。
  3. 表单调用: 在自定义表单中使用,收集用户的选择信息。
  4. 展示: 在前台模板中调用联动类别,生成列表或筛选功能。

联动类别的使用流程(分步详解)

使用联动类别主要分为三大步:

  1. 后台创建: 在织梦后台创建并配置联动类别。
  2. 关联字段: 将创建好的联动类别关联到内容模型的自定义字段上。
  3. 前台调用: 在前台模板中调用并展示联动类别数据。

第一步:在后台创建联动类别

  1. 登录织梦后台,进入「核心」 -> 「联动类别管理」。

    织梦cms联动怎样用
    (图片来源网络,侵删)
  2. 添加顶级类别(大分类):

    • 点击左上角的「[增加顶级类别]」按钮。
    • 类别名称: 填写你想要的分类名称,如“地区”、“行业”等。
    • 类别目录: 系统会自动生成,也可以自定义,主要用于调用时的识别。
    • 是否开启: 选择“是”。
    • 是否开启选择: 选择“是”,表示在前台可以选择。
    • 设置项: 这里是关键!
      • 父级: 默认为“无”,因为这是顶级类别。
      • 类别名称: 这里填写的是第一级的选项名称,北京,上海,广东,江苏”。注意: 选项之间用英文逗号 分隔。
      • 是否允许发布: 根据需要选择。
    • 点击「提交」。
  3. 添加子类别(二级、三级):

    • 在左侧的类别列表中,找到你刚刚创建的顶级类别(如“地区”),点击它前面的「+」号展开。
    • 点击「[增加子类别]」按钮。
    • 类别名称: 填写二级分类的名称,如“省份”。
    • 类别目录: 填写 省份
    • 是否开启/选择: 同样选择“是”。
    • 设置项:
      • 父级: 这里会自动关联到顶级类别“地区”。
      • 类别名称: 这里填写的是第二级的选项,但需要用 顶级选项:本级选项 的格式,顶级是“广东”,那么这里就填写 广东:广州,广东:深圳,广东:珠海,如果顶级是“江苏”,就填写 江苏:南京,江苏:苏州
    • 点击「提交」。
  4. 添加三级类别:

    • 操作同上,选择一个二级类别(如“广东”),点击「[增加子类别]」。
    • 类别名称: 填写“城市”。
    • 设置项:
      • 父级: 自动关联到“广东”。
      • 类别名称: 格式为 二级选项:本级选项广州:天河区,广州:越秀区,深圳:南山区,深圳:福田区

至此,一个“地区”联动类别就创建完成了。 你可以按照同样的方法创建“行业”、“品牌”等其他联动类别。

织梦cms联动怎样用
(图片来源网络,侵删)

第二步:将联动类别关联到内容模型

联动类别创建好后,需要让它“活”起来,通常是通过内容模型的字段来实现。

  1. 进入模型管理: 「核心」 -> 模型管理」

  2. 选择并修改模型:

    • 找到你想要添加联动字段的内容模型,文章模型”、“产品模型”等,点击其后面的「修改」按钮。
    • 如果是给新的分类使用,你也可以点击「增加新模型」。
  3. 添加联动字段:

    • 在模型字段管理页面,点击「[增加新字段]」按钮。
    • 字段名称: 填写英文字母,如 diqu (地区),这个名称在模板调用时需要用到。
    • 字段说明: 填写中文说明,如“所在地区”。
    • 字段类型: 选择“联动类型”
    • 所属联动类别: 从下拉列表中选择你刚才创建的“地区”联动类别。
    • 是否显示: 选择“是”。
    • 其他选项: 根据需要设置,是否必填”、“前台提交表单是否显示”等。
    • 点击「保存」。
  4. 更新栏目缓存:

    • 添加完字段后,返回模型管理列表,点击右上角的「更新系统缓存」按钮,确保新字段生效。

去对应模型的后台发布页面,你就会发现多了一个“所在地区”的联动选择框,发布内容时就可以像选择省市区一样进行选择了。


第三步:在前台模板中调用联动类别

联动类别数据可以在前台以多种形式展示。

调用当前内容的联动值

这是最常见的情况,在文章详情页、产品详情页等模板中,显示该内容选择的联动值。

模板代码: 假设你的字段名是 diqu,那么在内容页模板(如 article_article.htm)中使用:

{dede:field name='diqu'/}

显示效果: 这会直接显示存储在数据库中的ID值,如 1,5,12,这显然不是我们想要的。

要显示名称,需要使用 GetInfos 函数进行转换:

{dede:field name='diqu' function='GetInfos(@me, "联动类别目录", " ")'/}
  • @me:表示当前字段的值(即ID字符串)。
  • 联动类别目录:指你在创建联动类别时填写的“类别目录”,地区”。
  • 表示各级名称之间的连接符,这里是空格,你也可以改成 或 >

示例: diqu 字段的值是 1,5,12,对应“中国-广东省-广州市”,那么调用后会显示:中国 广东省 广州市

调用联动类别生成下拉菜单

你可以制作一个联动筛选表单,让用户选择后进行筛选。

模板代码: 在列表页模板(如 list_article.htm)中:

<form name="formsearch" action="{dede:global name='cfg_phpurl'/}/search.php">
    <input type="hidden" name="kwtype" value="0" />
    <input type="hidden" name="searchtype" value="keyword" />
    <!-- 调用顶级类别 -->
    <select name="typeid" id="typeid" onchange="changeType(this)">
        <option value='0'>请选择省份</option>
        {dede:channelartlist typeid='0' cacheid='channelson'}
            <option value='{dede:field name='id'/}'>{dede:field name='typename'/}</option>
        {/dede:channelartlist}
    </select>
    <!-- 调用二级类别(通过JS动态加载) -->
    <select name="typeid2" id="typeid2">
        <option value='0'>请选择城市</option>
    </select>
    <!-- 调用三级类别(通过JS动态加载) -->
    <select name="typeid3" id="typeid3">
        <option value='0'>请选择区县</option>
    </select>
    <button type="submit">搜索</button>
</form>
<script language="javascript" type="text/javascript">
    //联动菜单
    function changeType(sel)
    {
        var taget_obj = document.getElementById('typeid2');
        var taget_obj2 = document.getElementById('typeid3');
        taget_obj.length = 1;
        taget_obj.options[0] = new Option('请选择城市',0);
        taget_obj2.length = 1;
        taget_obj2.options[0] = new Option('请选择区县',0);
        //这里假设你的二级分类ID是固定的,你需要根据实际情况修改
        //更通用的做法是使用AJAX从后台获取数据
        //下面是一个简化的示例,实际项目中需要配合AJAX
        if(sel.value == '5'){ // 假设5是广东的ID
            taget_obj.options[1] = new Option('广州',10);
            taget_obj.options[2] = new Option('深圳',11);
        }
    }
</script>

注意: 上面是一个简化版的JS联动,在实际项目中,更推荐使用织梦自带的AJAX联动机制或结合jQuery来实现更流畅的无刷新联动效果,这需要你对织梦的标签和JS有一定了解。

直接调用联动类别生成列表

如果你想直接在页面上展示所有的联动选项,热门地区”列表。

模板代码: 使用 {dede:global name='listlink'/}

<h3>热门地区</h3>
<ul>
    {dede:global name='listlink' function='GetInfos(@me, "地区", " | ")'/}
</ul>
  • listlink:这是一个固定的全局变量,用于获取顶级联动类别。
  • GetInfos 函数:同上,用于将ID转换为名称。
  • 用竖线分隔各个顶级选项。

显示效果: 北京 | 上海 | 广东 | 江苏


总结与常见问题

  • 核心流程: 创建联动类别 -> 关联到模型字段 -> 在模板中调用。
  • 关键点:
    • 创建联动类别时,顶级和子级的“类别名称”格式是关键,务必用逗号分隔同级选项,用冒号 分隔父子关系。
    • 在模板中调用名称时,必须使用 GetInfos 函数,否则只会显示ID。
    • 记住联动类别的“类别目录”,这是调用时的重要参数。
  • 常见问题:
    • Q:为什么前台调用只显示数字?
      • A: 因为你没有使用 function='GetInfos()' 进行转换,直接 {dede:field name='your_field'/} 只会输出ID。
    • Q:联动类别最多支持几级?
      • A: 织梦的联动类别通常支持三级,超过三级需要更复杂的开发或使用其他方案。
    • Q:如何实现前后台联动的AJAX效果?
      • A: 这需要结合织梦的标签和JavaScript,可以参考网上现成的“织梦联动菜单AJAX”教程,通常是在选择父级后,通过JS向 ajax.php 发送请求,获取子级数据并动态填充到下拉框中。

希望这份详细的教程能帮助你完全掌握织梦CMS联动类别的使用!

-- 展开阅读全文 --
头像
织梦批量加内链插件,如何自动添加且不重复?
« 上一篇 今天
织梦网站空间如何高效清理?
下一篇 » 今天

相关文章

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