我正在使用module_invoke()
来包含一个块,我需要在此块中读取父内容类型页面中包含的值。那么如何从视图中获取我的块中的$node
变量?
我正在使用的代码:
<?php
$block = module_invoke('my_blocks', 'block', 'view', 7);
print $block['content'];
?>
现在我需要访问“my_blocks”中的$node
,变量为空。我能做些什么来获得它?
非常感谢您的帮助!
问候
答案 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)”正在检查你是不是在节点编辑模式(或类似的东西)。 的