注意:未定义的变量:include()Drupal 7中的节点

时间:2012-12-11 08:29:07

标签: php drupal undefined

我看了,但似乎我找不到合适的答案,或者我没有相应的技能。问题是我收到了这个错误:

Notice: Undefined variable: node in include() (line 69 of /home/xwebmedia/public_html/ltr/sites/all/themes/ltr/page.tpl.php).

我正在使用的代码是:

<?php
if (count($node->field_adds) != 0)
{
    foreach($node->field_adds['und'] as $key => $value)
    {               
        $nid = $value['nid']; 
        $mywidget = node_view(node_load($nid));
        print drupal_render($mywidget);
    }       
}
?>

事情就是一切正常,我在侧边栏中添加了我的小部件,但是我有这个错误的通知。

我知道我需要在template.php中定义一个变量,但我尝试了一些不起作用的变量。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

检查是否已设置$ node。

<?php
if (isset($node) && count($node->field_adds) != 0)
{
    foreach($node->field_adds['und'] as $key => $value)
    {               
        $nid = $value['nid']; 
        $mywidget = node_view(node_load($nid));
        print drupal_render($mywidget);
    }       
}
?>

答案 1 :(得分:0)

默认情况下,页面模板文件没有$node变量(您可以使页面不是节点,因此不需要)。

menu_get_object()功能是你的朋友:

$node = menu_get_object();
if ($node) {
  ...
}