Drupal- hook_block_view显示用户创建节点的块

时间:2013-12-04 03:11:10

标签: drupal hook block nodes

我正在尝试将hook_block_view添加到模块中。现在,钩子允许块在用户DID不创建的所有节点上显示。为什么?我的代码必须有问题。

我想要的是与最新情况相反的情况。我希望钩子允许块只显示用户创建的节点。

function instantblocks_block_view($delta) {
  //Add JS and CSS if the user has admin access to this block
  if (instantblocks_access('any block controls', NULL, $delta)) {
    instantblocks_load_files();
  }

  $block = array();

  $content = instantblocks_block_view_content($delta = '');

  if (preg_match('#node/([0-9]+)#', $_GET['q'], $matches)) {
              if ($node = node_load($matches[1])) {
                global $user;
                if ($user->uid !== $node->uid) {

    $block['content'] = array(
      '#type' => "markup",
      '#markup' => '<div class="instantblocks">' . $content . '</div>',
    );

  }
  }
  }

  return $block;
}

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您的代码看起来特别说

if ($user->uid !== $node->uid)

因此,如果用户不是创建节点的用户,他们会看到块内容(除非我遗漏了某些内容)。将其更改为

if ($user->uid == $node->uid)

应该解决问题。