【问题标题】:How to hide new content type from create content menu如何从创建内容菜单中隐藏新的内容类型
【发布时间】:2010-08-04 15:44:32
【问题描述】:

我是 drupal 的新手,我创建了一个新的内容类型“新”,我有两种类型的角色编辑器和经理。编辑器必须能够将内容添加到新的内容类型中,但经理不会。我在模块代码中指定了

function new_access($op, $node, $account) {
  switch ($op) {
    case 'create':
    return user_access('create NEW', $account);
  }
}

现在编辑器获得了这个权限,他可以添加内容,但是当管理登录时也查看新的内容类型但在菜单上单击会显示“拒绝访问”

我想以这样一种方式制作此内容类型,当管理登录时,内容类型“新建”不得出现在创建内容链接中

请帮忙

谢谢

【问题讨论】:

  • 为什么不用 Drupal 权限系统?您可以按角色定义对所有内容类型的创建/编辑/删除/...的访问权限。
  • Drupal 核心代码已经定义了现有内容类型的权限,包括从第三方模块实现的权限;特别是,它定义了以下权限:“创建 CONTENT_TYPE”、“编辑 CONTENT_TYPE”、“删除 CONTENT_TYPE”、“编辑自己的 CONTENT_TYPE”、“删除自己的 CONTENT_TYPE”。 CONTENT_TYPE 是内容类型的标识符。

标签: php drupal drupal-6


【解决方案1】:

如果您通过 Drupal 界面而不是通过自定义模块创建了新的内容类型(也就是说,您转到 Content management -> Content types 和将它添加到那里),限制它要容易得多。

只需转到用户管理 -> 权限,在节点标题下查看,然后取消选中创建新内容Editor 角色下。

如果您通过使用自定义模块创建了内容类型,您仍然会转到 Permissions 页面,但在您的自定义模块中,您还需要实现 hook_perm()hook_access()

function new_perm() {
  return array('create NEW');
}

然后您可以使用user_access('create NEW', $account); 来检查create NEW 权限。

【讨论】:

  • 我这样做了,但是新内容类型的链接在那里,当我点击它时显示拒绝访问,我不想要这个链接,谢谢
  • 您是否在进行更改后重建了菜单?
猜你喜欢
  • 2016-11-16
  • 2020-12-19
  • 1970-01-01
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-02
  • 2016-11-11
相关资源
最近更新 更多