Drupal Node渲染:加载整页(脚本,头......一切)

时间:2016-02-02 22:22:27

标签: drupal

我有一个模块,我正在使用此代码以编程方式加载节点并获取其标记:

<?php
  $node = node_load($nid);
  $node_view = node_view($node, 'full');
  $rendered_node = drupal_render($node_view);
  echo $rendered_node;
?>

然而......虽然它给了我一个节点的主题输出(来自节点内容本身的标记,而不是将为该节点实例加载的页面和html模板信息)但它并没有给我所有我想要的信息。我真的想得到整个主题页面的完整输出,其中包括HTML标签,HEAD标签和所有内容。

最终,我真的希望获得以这种方式加载的每个节点都会出现的标准变量结构,但是很乐意为最终标记解决(至少这将保证发布任何处理模块等)。我当然以编程方式加载一个节点,该节点可能不是当前使用该模块的页面正在处理的当前节点,所以在我看来,我目前无法获得所需的信息。

这可能吗?非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我会这样做:

$my_page_callback_result = menu_execute_active_handler("node/$nid", false);

看看这个数组,它包含很多变量,希望你需要的变量。 另外,您可以执行以下操作来获取完全呈现的html页面:

$my_full_html = drupal_deliver_html_page($my_page_callback_result);

这两个功能都记录在这里:

迎接