织梦授权更新三级栏目如何操作?

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

织梦CMS本身没有内置“三级栏目”这个概念,织梦的栏目系统是无限分级的,但它的后台栏目管理默认只支持两级的展开显示(一级栏目 -> 二级栏目),三级及以下的栏目在后台会折叠在二级栏目下面,点击二级栏目才能看到。

织梦授权更新三级栏目
(图片来源网络,侵删)

“授权更新三级栏目”通常指的是以下两种情况之一:

  1. 场景一(最常见): 你拥有一个商业授权的织梦网站,你希望后台的用户或管理员能够更新到三级栏目(比如发布文章、修改文章),而不是只能操作到二级栏目。
  2. 你想让后台的用户能够管理和更新整个无限级栏目结构,并能看到清晰的三级栏目列表。

下面,我将针对这两种场景,提供详细的解决方案。


授权用户管理三级栏目下的内容

这是最常见的需求,默认情况下,如果你给一个用户分配了某个二级栏目,他只能管理这个二级栏目及其直接下属(即三级栏目)的内容,但如果他想管理更深层的栏目(如四级、五级),就需要进行额外配置。

解决方案:通过用户组权限和栏目权限精确控制

织梦的权限系统非常灵活,可以通过“用户组”和“栏目权限”来实现。

织梦授权更新三级栏目
(图片来源网络,侵删)

创建或编辑用户组

  1. 登录织梦后台,进入【系统】-> 【用户组管理】。
  2. 选择一个需要授权的用户组(内容编辑员”),点击“编辑”。
  3. 在“栏目权限管理”部分,你会看到一个树形结构的栏目列表。
  4. 关键操作:
    • 勾选“所有栏目”:如果希望该用户组能管理所有栏目下的内容,直接勾选即可,但这通常不安全。
    • 精确授权(推荐):
      • 找到你需要授权的一级栏目,点击它前面的 号展开。
      • 继续展开到二级栏目
      • 你会看到每个二级栏目下面还有它的子栏目(即三级栏目)。
      • 勾选你需要授权的那个三级栏目
      • 重要: 你需要勾选 “添加”“编辑”**“审核”“删除” 这四个核心权限。

将用户添加到该用户组

  1. 进入【系统】-> 【用户管理】。
  2. 找到需要授权的用户,点击“编辑”。
  3. 在“所属用户组”中,勾选你在步骤一中配置好的用户组(如“内容编辑员”)。
  4. 保存。

效果:

这个用户登录后台后,进入【核心】-> 【内容发布管理】-> 【普通文章】,在“选择栏目”的下拉框中,他只会看到你为他授权的那个三级栏目(以及它的上级栏目),他无法看到或操作其他未授权的栏目。

小结: 这种方法的核心是权限的精细化分配,通过在用户组权限中精确勾选到三级栏目,并赋予相应的操作权限,就实现了“授权更新三级栏目”的目标。


在后台栏目管理中清晰显示三级栏目

默认情况下,后台左侧的【栏目管理】只显示两级,如果栏目很多,查找和管理三级栏目会非常不便。

解决方案一:修改后台模板文件(简单粗暴,不推荐)

这个方法可以实现强制展开所有层级,但会降低后台性能,且升级后可能被覆盖。

  1. 打开织梦后台模板文件:/dede/templets/catalog_main.htm
  2. 找到类似这样的代码:
    function ShowMenu(id)
    {
        var obj = document.getElementById(id);
        if (obj.style.display != "block")
        {
            obj.style.display = "block";
        }
        else
        {
            obj.style.display = "none";
        }
    }
  3. 将其修改为,强制所有子菜单都显示:
    function ShowMenu(id)
    {
        var obj = document.getElementById(id);
        // 强制显示,不隐藏
        obj.style.display = "block";
    }
  4. 保存文件并覆盖服务器上的原文件。

效果: 刷新后台【栏目管理】页面,所有层级的栏目都会被强制展开,看起来会非常长,但确实能看到三级、四级栏目。

缺点:

  • 性能问题: 如果栏目有成千上万个,页面会变得异常卡顿。
  • 不美观: 布局混乱。
  • 升级风险: 织梦升级后,这个文件会被覆盖,需要重新修改。

解决方案二:使用第三方增强模块(推荐)

这是最推荐的方法,有很多开发者提供了“无限级栏目管理”或“后台栏目增强”的模块。

操作流程:

  1. 寻找模块: 在织梦的官方论坛、插件市场(如:织梦堂、Dedecms8等)搜索关键词“无限级栏目管理”、“后台栏目增强”、“栏目展开”等。
  2. 下载安装: 下载合适的模块,按照模块说明进行上传和安装。
  3. 使用: 安装后,通常无需复杂配置,直接进入【栏目管理】即可看到所有层级的栏目被清晰地展开或通过更友好的方式(如树形控件)展示。

优点:

  • 安全稳定: 经过开发者测试,不会破坏核心系统。
  • 功能强大: 通常还附带了批量操作、快速查找等实用功能。
  • 升级无忧: 升级织梦核心时,只要不覆盖模块文件,功能依然保留。

通过代码修改,实现特定需求(如“授权更新”)

如果你指的是开发一个功能,让有权限的用户可以一键更新某个三级栏目及其所有子栏目的内容(比如更新缓存、更新缩略图等),这需要修改PHP代码。

这是一个比较高级的开发操作,以下是一个简单的思路示例,比如实现一个“更新栏目缓存”的功能:

目标: 在【栏目管理】中,为三级栏目增加一个“更新缓存”的按钮。

步骤:

  1. 找到并修改模板文件:

    • 打开 /dede/templets/catalog_add.htm/dede/templets/catalog_edit.htm
    • 在栏目列表的操作按钮区域(<td> 标签内),找到类似 [<a href='catalog_do.php?dopost=edit&cid={dede:field.id/}'>修改</a>] 的代码。
    • 在旁边增加一个新的链接:
      [<a href='javascript:;' onclick="UpdateCache({dede:field.id/})">更新缓存</a>]
  2. 编写JavaScript函数:

    • 在页面底部的 <script> 标签内,添加以下JS函数:
      function UpdateCache(cid) {
          if (!confirm('确定要更新此栏目及其所有子栏目的缓存吗?')) {
              return;
          }
          window.location.href = 'catalog_do.php?dopost=updateCache&cid=' + cid;
      }
  3. 处理PHP请求:

    • 打开 /dede/catalog_do.php 文件。

    • 在文件顶部的 require_once(dirname(__FILE__)."/config.php"); 下面,添加一个 switch-case 分支来处理新的请求:

      // ... 其他代码 ...
      require_once(dirname(__FILE__)."/config.php");
      require_once(DEDEINC."/typelink.class.php");
      // 添加新的处理逻辑
      if ($dopost == 'updateCache') {
          $cid = isset($cid) ? intval($cid) : 0;
          if ($cid > 0) {
              // 调用织梦自带的更新栏目缓存函数
              // 注意:这里需要递归更新所有子栏目
              $dsql->Execute('me', "SELECT id FROM `#@__arctype` WHERE reid='$cid'");
              while ($row = $dsql->GetArray('me')) {
                  // 先更新子栏目
                  UpdateCache($row['id']);
              }
              // 最后更新当前栏目
              $type = new TypeLink($cid);
              $type->GetOptionArray($cid, $type->TypeInfos['typename'], 0);
              ShowMsg("成功更新栏目ID为 {$cid} 的缓存!", "catalog_main.php");
              exit();
          }
      }
      // ... 原有的 switch-case 代码 ...

注意: 以上代码仅为示例,实际开发中需要更严谨的错误处理和逻辑判断,这展示了如何通过修改模板和PHP逻辑来增加新的后台功能。

需求场景 推荐解决方案 优点 缺点
授权用户管理三级栏目内容 用户组权限管理 官方支持,安全、精确、标准 需要手动为每个用户组配置
在后台清晰显示三级栏目 使用第三方增强模块 功能强大、稳定、不影响核心 需要寻找和安装可靠的模块
为三级栏目添加特定更新功能 修改PHP代码 灵活,可实现定制化需求 需要一定的PHP开发能力,有升级风险

对于绝大多数用户来说,场景一使用“用户组权限管理”,场景二使用“第三方模块” 是最简单、最安全、最有效的解决方案。

-- 展开阅读全文 --
头像
dede图片尺寸不一致,如何统一调整?
« 上一篇 02-25
织梦文章页点击数如何正确调用?
下一篇 » 02-25

相关文章

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

目录[+]