在hook_node_view中的另一个节点内添加节点内容

时间:2012-09-28 11:56:35

标签: drupal drupal-7 drupal-modules

在Drupal 7中,我想在用户上架时将节点添加到另一个节点。

我正在使用Drupal 7,我想在用户登录时在另一个节点内添加一个节点:

function my_modul_node_view($node, $view_mode, $langcode) {
    global $user;
    switch ($node->vid) {
    case 4:
        $node2 = node_load(37);
        if ($user->uid > 0) {
            $node->content['my_data_field'] = array(
                '#markup' => drupal_render($node2),
                '#weight' => 10,
            );   
        }
    } 
}

我收到以下错误消息:

Fatal error: Cannot use object of type stdClass as array

我使用以下表格:

    $form = drupal_get_form('user_login', $node);
    $node->content['data_collection_form'] = array(
        '#markup' => drupal_render($form),
        '#weight' => 10,
    );

在我的模块中执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

就我所知,你只需做一个小改动:

$node->content['my_data_field'] = array(
  '#markup' => drupal_render(node_view($node)),
  '#weight' => 10,
);