Drupal Node Render:加载整页(脚本、头部……一切)
Drupal Node Render: load full page (scripts, head...everything)
我有一个正在组装的模块,我正在使用此代码以编程方式加载节点并获取其标记:
<?php
$node = node_load($nid);
$node_view = node_view($node, 'full');
$rendered_node = drupal_render($node_view);
echo $rendered_node;
?>
但是...虽然它给了我一个节点的主题输出(来自节点内容本身的标记,而不是页面和 html 将为该节点实例加载的模板信息)它没有给我想要的所有信息。我真的很想获得整个主题页面的完整输出,其中包括 HTML 标签、HEAD 标签和所有内容。
最终,我真的很想获得我以这种方式加载的每个节点都会出现的标准变量结构,但很乐意接受最终标记(至少这将保证是 post 由模块等进行的任何处理)。我当然是以编程方式加载一个节点,它可能不是当前正在使用该模块的页面正在处理的当前节点,所以在我看来,我目前无法获得我需要的信息。
这可能吗?非常感谢您的帮助!
我会这样做:
$my_page_callback_result = menu_execute_active_handler("node/$nid", false);
看看这个数组,它包含很多变量,希望是你需要的。
此外,您可以执行以下操作以获得完全呈现的 html 页面:
$my_full_html = drupal_deliver_html_page($my_page_callback_result);
这两个函数都记录在此处:
- https://api.drupal.org/api/drupal/includes!common.inc/function/drupal_deliver_html_page/7
- https://api.drupal.org/api/drupal/includes!menu.inc/function/menu_execute_active_handler/7
问候
我有一个正在组装的模块,我正在使用此代码以编程方式加载节点并获取其标记:
<?php
$node = node_load($nid);
$node_view = node_view($node, 'full');
$rendered_node = drupal_render($node_view);
echo $rendered_node;
?>
但是...虽然它给了我一个节点的主题输出(来自节点内容本身的标记,而不是页面和 html 将为该节点实例加载的模板信息)它没有给我想要的所有信息。我真的很想获得整个主题页面的完整输出,其中包括 HTML 标签、HEAD 标签和所有内容。
最终,我真的很想获得我以这种方式加载的每个节点都会出现的标准变量结构,但很乐意接受最终标记(至少这将保证是 post 由模块等进行的任何处理)。我当然是以编程方式加载一个节点,它可能不是当前正在使用该模块的页面正在处理的当前节点,所以在我看来,我目前无法获得我需要的信息。
这可能吗?非常感谢您的帮助!
我会这样做:
$my_page_callback_result = menu_execute_active_handler("node/$nid", false);
看看这个数组,它包含很多变量,希望是你需要的。 此外,您可以执行以下操作以获得完全呈现的 html 页面:
$my_full_html = drupal_deliver_html_page($my_page_callback_result);
这两个函数都记录在此处:
- https://api.drupal.org/api/drupal/includes!common.inc/function/drupal_deliver_html_page/7
- https://api.drupal.org/api/drupal/includes!menu.inc/function/menu_execute_active_handler/7
问候