如何使用module_invoke()在块中检索父页面的$ node变量?

时间:2010-01-26 20:01:27

标签: drupal drupal-blocks

我正在使用module_invoke()来包含一个块,我需要在此块中读取父内容类型页面中包含的值。那么如何从视图中获取我的块中的$node变量?

我正在使用的代码:

<?php
    $block = module_invoke('my_blocks', 'block', 'view', 7);
    print $block['content'];
?>

现在我需要访问“my_blocks”中的$node,变量为空。我能做些什么来获得它?

非常感谢您的帮助!

问候

2 个答案:

答案 0 :(得分:1)

我认为context模块或chaos tools可以帮助解决这个问题,但最近我就是这样做的:

function myModule_get_current_node() {
    $path_arr = explode('/', $_GET['q']);
    if ($path_arr[0] == 'node') $result = node_load($path_arr[1]);
    else $result = null;
    return $result;
}

答案 1 :(得分:1)

对drupal方式的一点解决:


    function InMODULE_or_InTHEME_get_current_node() {
      if ((arg(0) == 'node') && (is_numeric(arg(1))) && (!arg(2))) return node_load(arg(1));
      return null;
    }

评论:node_load缓存节点,所以不要担心性能。
“!arg(2)”正在检查你是不是在节点编辑模式(或类似的东西)。