3

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

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

4

5 回答 5

0

我刚刚在重新处理页面功能中做了一个肮脏的修复

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

    }

肯定有更好的办法。另外谷歌忽略节点怎么办?

于 2012-07-25T15:13:22.010 回答
0

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

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

于 2012-07-27T07:45:16.367 回答
0

另一种选择是不按照https://drupal.stackexchange.com/questions/11026/how-to-restrict-direct-access-to-the-nodes-in-drupal-7发布节点

我已经测试过了,Views 仍然可以显示数据。您可能需要调整样式,但我发现默认情况下,Drupal 会为未发布的节点添加一个突出显示以区分它是未发布的。

于 2012-08-15T16:01:57.010 回答
0

看看https://www.drupal.org/project/restrict_node_page_view,很简单:

/**
 * 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;
}
于 2015-08-19T09:14:58.540 回答
0

看看Rabbit Hole Drupal 贡献模块

这是什么?Rabbit Hole 是一个模块,它增加了控制在其自己的页面上查看实体时应该发生什么的能力。

也许您有一个永远不应该在其自己的页面上显示的内容类型,例如在轮播中显示的图像内容类型。Rabbit Hole 可以通过 node/xxx 来阻止这个节点在自己的页面上被访问。

该模块将完成您的要求:

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

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

于 2020-01-10T13:23:46.637 回答