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