Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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
Drupal允许查看未发布的内容_Drupal_Publish_Drupal 5 - Fatal编程技术网

Drupal允许查看未发布的内容

Drupal允许查看未发布的内容,drupal,publish,drupal-5,Drupal,Publish,Drupal 5,我继承了一个Druap5站点,它在发布时显示内容,但在编辑内容表单的“发布选项”部分没有选中 我确认节点的DB中的状态为0。所以它应该是不可见的 我的第一个猜测是我登录了,这就是为什么我可以看到它,但我注销了,我仍然可以看到它。我尝试了不同的浏览器和相同的东西,所以不是那样 另外,未发布的节点出现在搜索结果中,我最初认为这是一个过时的搜索缓存,但可能有所不同 见过这样的事吗?有什么想法吗?很奇怪。没有答案,只是猜测: 尝试访问管理员/内容/节点设置,然后单击“重建权限” 还可以清除缓存管理/设置

我继承了一个Druap5站点,它在发布时显示内容,但在编辑内容表单的“发布选项”部分没有选中

我确认节点的DB中的状态为0。所以它应该是不可见的

我的第一个猜测是我登录了,这就是为什么我可以看到它,但我注销了,我仍然可以看到它。我尝试了不同的浏览器和相同的东西,所以不是那样

另外,未发布的节点出现在搜索结果中,我最初认为这是一个过时的搜索缓存,但可能有所不同


见过这样的事吗?有什么想法吗?

很奇怪。没有答案,只是猜测:

尝试访问管理员/内容/节点设置,然后单击“重建权限”


还可以清除缓存管理/设置/性能

检查您对匿名用户的权限。好像他们有错误的许可证

您正在使用视图吗?如果是这样,请确保过滤器设置为仅显示已发布


我在评论方面遇到了类似的问题,这导致了一些极好的垃圾邮件机会,直到我发现它。

你在网站上安装的评论中提到过。该模块(以及其他一些模块,例如)覆盖默认的Drupal节点访问机制,以提供额外/更细粒度的权限设置

因此,我猜测该模块中的权限配置对于您期望的结果是错误的。据我回忆,它允许每个内容类型(为作者和角色定义)设置单独的权限集。您应该查看内容类型编辑/定义页面-该模块应该添加一个选项卡来配置权限。还要检查模块的readme.txt,因为它可能会给出一些额外的提示


如果这没有帮助,您应该检查是否也安装了其他节点访问模块。如前所述,它们的数量相当多,并且它们之间的交互不容易确定(如果可能的话,应该只使用一个)。

使用hook\u node\u access()时,所有访问模块都会覆盖默认设置。很可能这就是问题所在。因此,您需要在内容访问部分调整这些设置

这不是最好的解决方案。但是,如果您在此期间需要一些东西,您可以始终将以下代码放在node.tpl.php文件中:

if(!$node->status && $user->uid != 1){
添加代码后:

<div id="node-<?php print $node->nid; ?>" class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?> clear-block">

<?php print $picture ?>
<?php

if(!$node->status && $user->uid != 1){

?>
<?php if ($page == 0): ?>
  <h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>

  <div class="meta">
  <?php if ($submitted): ?>
    <span class="submitted"><?php print $submitted ?></span>
  <?php endif; ?>

  <?php if ($terms): ?>
    <span class="terms"><?php print $terms ?></span>
  <?php endif;?>
  </div>

  <div class="content">
    <?php print $content ?>
  </div>

<?php
  if ($links) {
    print $links;
  }
}//if for published node
?>

</div>

奇怪的是,我也可以转到未发布的实际页面。在我们的设置中,有一个搜索视图,但没有可用的已发布过滤器。就权限而言,节点模块中唯一检查匿名用户的是访问内容。还有一个称为内容访问的模块,但它只提供访问,不提供编辑。还有其他想法吗?你是直接查看节点还是如何查看节点?只允许用户1是一个糟糕的攻击。这应该是一个临时解决方案。正如我在帖子中所说的。如果您想将其转变为一个可用的长期解决方案,您可以更改&&$user->uid==1,以允许任何允许管理节点的用户。只是为了记录。。。这也发生在我身上,因为我有两个模块控制发布状态:和。节点被Moder8批准并发布,但LM Paypal仍然说它们未发布,而事实上它们是未发布的,所以节点被发布时没有付费。