是否可以禁用内容类型?


8

我目前正在创建一个小型Drupal 7网站,但我不打算使用提供的Article内容类型。是否可以禁用它而不删除它?我的意思是确保没有用户会偶然创建文章。

我找不到这个选项。谢谢。

Answers:


16
  • 您不能禁用内容类型,但是可以阻止(几乎)每个人都创建/查看/修改等。通过相应地设置权限来创建文章。
  • 如果网站上没有文章内容,则将其删除是100%安全的。(检查默认和最小安装配置文件如何提供不同的内容类型集是很有趣的。article只是“库存”内容类型,而没有必要。)

7

对于不熟悉Drupal的人,您可以阻止他们使用(在7中)使用内容类型 People > Permissions (url: admin/people/permissions)

然后在“ 节点”下取消选中Article: Create new content所选角色的权限。:)

显然,您将更改为Article相关的内容类型。


您能想到任何原因,即使用户的角色禁止创建该内容类型,用户仍然可以访问其“创建”链接吗?我克隆了管理员用户角色,并创建了一个“ admin-lite”用户角色,该用户角色只能访问在我的网站上创建少数几种内容类型的权限。但是,那些admin-lite用户可以创建所有不同的内容类型...我尝试重建权限,但这也无济于事。
hockey2112 2013年

2
我发现了自己的问题...该角色仍然启用了“绕过内容访问控制”权限。我禁用了它,它解决了我的问题。
hockey2112 2013年

5

在您的.install文件中:

function YOURMODULE_disable() {

  // Disable content type MyContentType
  disable_content_type('MyContentType');


  //Activation message
  drupal_set_message(t('MyContentType is now disabled on your site.'));
}

现在在您的.module或.inc文件中:

function disable_content_type($type) {
  $type_info = node_type_load($type);
  $type_info->module = 'node';
  $type_info->custom = 1;
  $type_info->modified = 1;
  $type_info->locked = 0;
  $type_info->disabled = 1;
  node_type_save($type_info);
}

这是否有效地使节点类型以及该类型的任何内容不可见?我的用例是需要新内容类型的模块中的一个选项,但是仅当选择了该选项时。如果他们不选择该选项,我不希望他们看到内容类型,但是如果他们将选项切换为on / off / on / etc,我也希望保持数据的完整性。
UnsettlingTrend,2015年

@UnsettlingTrend是的。我有类似的需求,并尝试了此选项。我还必须在.install文件中创建一个名为enable_content_type('MyContentType')的_enable()函数。在.module(或.inc)文件中,$ type_info-> disabled设置为0。这样,当启用模块时,内容类型可用。禁用模块时,内容类型不可用。如果您需要访问内容(例如,以管理员身份),则可能需要考虑另一种更改内容类型权限的选项。那就是我最终要走的路。
sho


1

通过禁用使用内容的模块,可以“禁用”某些内容类型。例如:禁用关联模块时,民意调查,论坛,书籍和博客内容类型将从可用类型中消失。基本页面和文章是两个例外。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.