Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Permissions drupal 7-限制对完整节点的访问_Permissions_Drupal 7_Nodes - Fatal编程技术网

Permissions drupal 7-限制对完整节点的访问

Permissions drupal 7-限制对完整节点的访问,permissions,drupal-7,nodes,Permissions,Drupal 7,Nodes,我有一个叫做“logo”的内容类型,所有这些都在一个网格视图中,并作为一个块输出 我不希望用户查看完整节点,只查看视图。我尝试了内容访问模块,但我的网格视图也消失了,有没有办法限制对特定内容类型的完整节点的访问?我刚刚在“重新处理页面”功能中做了一个错误修复 if ($variables['node']->type == "logos") { drupal_goto('404'); } 一定有更好的办法。谷歌忽略这个节点又如何?你能澄清一下吗。您正在显示

我有一个叫做“logo”的内容类型,所有这些都在一个网格视图中,并作为一个块输出


我不希望用户查看完整节点,只查看视图。我尝试了内容访问模块,但我的网格视图也消失了,有没有办法限制对特定内容类型的完整节点的访问?

我刚刚在“重新处理页面”功能中做了一个错误修复

if ($variables['node']->type == "logos") {
            drupal_goto('404');

    }

一定有更好的办法。谷歌忽略这个节点又如何?

你能澄清一下吗。您正在显示块视图。那么,为什么不将视图限制为要显示的字段,而不是显示节点


您还可以使用字段权限(或cck权限,我忘记了确切的名称),因此请指定每个字段的权限。

另一个选项是不根据发布节点

我已经测试过了,视图仍然可以显示数据。您可能需要调整样式,尽管我发现默认情况下,Drupal会向未发布的节点添加一个高亮显示,以区分它是否未发布。

看一看,这非常简单:

/**
 * Implements hook_node_access().
 */
function MYMODULE_node_access($node, $op, $account) { 
  // Default checks
  if (!is_object($node)) {
    return NODE_ACCESS_IGNORE;
  }
  $type = is_string($node) ? $node : $node->type;
  if($op == 'view' && arg(0) == 'node' && arg(1) === $node->nid) {
    // Restrict access to full MYTYPE node for anon users
    if ($type == 'MYTYPE' && user_is_anonymous()) {
      return NODE_ACCESS_DENY;
    }
  }
  // Default
  return NODE_ACCESS_IGNORE;
}
看看Drupal contrib模块

这是什么?兔子洞是一个增加控制能力的模块 当实体在其自己的页面上被查看时会发生什么情况

也许您的内容类型永远不应该显示在其 自己的页面,如旋转木马中显示的图像内容类型。 Rabbit Hole可以阻止此节点自行访问 第页,通过节点/xxx

本模块将完成您要求的操作:

我不希望用户查看完整节点,只查看视图。我有 尝试了内容访问模块,但我的网格视图也消失了,是吗 限制对特定内容类型的完整节点的访问的方法


兔子洞也是这个问题的链接中的一个答案。

尝试“那么,为什么不将视图限制为要显示的字段,而不是显示节点?”-如何做到这一点?我在视图中尝试了权限设置。很高兴知道,我假设未发布的节点对视图不可用。我想我可以找到添加类的钩子,并根据内容类型添加一些逻辑,以删除更改样式的类或进行css修复。Thanks@welovedesign-或者不删除该类,您可以覆盖该类的CSS,使其不会显示任何不同:)