0

我看过,但似乎找不到正确的答案,或者我没有这方面的技能。问题是我收到了这个错误:

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但我尝试了一些它不起作用的东西。

有什么建议么?

4

2 回答 2

2

检查 $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);
    }       
}
?>
于 2012-12-11T09:05:07.007 回答
0

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

menu_get_object()功能是您的朋友:

$node = menu_get_object();
if ($node) {
  ...
}
于 2012-12-11T09:41:32.620 回答