我有一个名为'logos'的内容类型,所有这些都在网格视图中并作为块输出。
我不希望用户查看完整节点,只查看视图。我已经尝试过content_access模块,但我的网格视图也消失了,有没有办法限制对特定内容类型的完整节点的访问?
答案 0 :(得分:0)
我刚刚在重新处理页面功能
中做了一个脏修复if ($variables['node']->type == "logos") {
drupal_goto('404');
}
必须有更好的方法。还有谷歌忽略节点呢?
答案 1 :(得分:0)
您还可以使用字段权限(或cck权限,我忘记了确切的名称),因此请为每个字段指定权限。
答案 2 :(得分:0)
我测试了它,视图仍然可以显示数据。您可能需要调整样式,但默认情况下,Drupal会为未发布的节点添加一个突出显示,以区分它是未发布的。
答案 3 :(得分: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;
}
答案 4 :(得分:0)
看看Rabbit Hole Drupal contrib模块
这是什么? Rabbit Hole是增加控制能力的模块 在实体自己的页面上查看实体时会发生什么。
也许您的内容类型永远不应该显示在其内容上 自己的页面,例如轮播中显示的图像内容类型。 Rabbit Hole可以阻止单独访问此节点 页面,通过node / xxx。
此模块将完成您所要求的:
我不希望用户查看整个节点,而仅查看视图。我有 尝试过content_access模块,但是我的网格视图也消失了, 一种限制访问特定内容类型的完整节点的方法?
兔子洞也是this answer中此问题链接的答案。