使用自定义模块在Drupal上的页面内容之前插入标记

使用自定义模块在Drupal上的页面内容之前插入标记,drupal,drupal-7,drupal-modules,Drupal,Drupal 7,Drupal Modules,我正在尝试创建一个Drupal自定义模块,该模块将使用特定的微数据标记(以及其他标记)封装任何页面或文章内容。我已成功地在页眉和结束“”标记之前插入了代码,但当我尝试将页面内容括起来时,它只会将内容末尾的所有内容都阻塞在一起 例如,以下是模块代码: function my_module_page_build(&$page) { // add manifest value to header $manifest_code = "..." $

我正在尝试创建一个Drupal自定义模块,该模块将使用特定的微数据标记(以及其他标记)封装任何页面或文章内容。我已成功地在页眉和结束“”标记之前插入了代码,但当我尝试将页面内容括起来时,它只会将内容末尾的所有内容都阻塞在一起

例如,以下是模块代码:

function my_module_page_build(&$page) {

        // add manifest value to header
        $manifest_code = "..."
        $page['header']['manifest'] = array(
            "#weight" => 0,
            "#markup" => t($manifest_code)
            );
        // add opening microdata tags
        $opening_microdata = "...";
        $page['content']['my_module_open_microdata'] = array(
            "#weight" => 0,
            "#markup" => t($opening_microdata)
            );
        $closing_microdata = "...";
        $page['content']['my_module_close_microdata'] = array(
            "#weight" => 25,
            "#markup" => t($closing_microdata)
            );
        // add javascript to footer
        $javascript = "...";
        $page['page_bottom']['my_module_javascript'] = array(
            "#weight" => 0,
            "#markup" => t($javascript)
            );


}
我不想将结束的微数据插入
$page['page-bottom']
槽中,因为我不想在微数据标记中插入这些链接和其他代码。我也试过用负重把它往上推,但运气不好

我试图搜索更多关于节点、博客或文章结构的信息,以查看是否还有其他代码槽,但我找不到任何内容


我相信这很容易——我是否缺少了解页面结构的资源?我缺少一些简单的解决方案?

两种可能的解决方案:

  • 试试来自的提示,这会让你的体重声明真正生效。(但不确定重置
    #sorted
    标志是否会产生不利影响。)

  • 从使用
    hook_page_build()
    切换到
    your_module_preprocess_page(&$variables)
    ,将微数据标记和其他内容作为自定义条目添加到´$variables'数组中。然后调整页面模板,以便根据需要放置这些附加变量。这使您可以相当好地控制添加内容的放置,但代价是与主题自定义绑定(即,它适用于自定义站点构建,但如果您的模块用于任意主题的一般用途,则效果不佳)

  • #1到目前为止还有效——还没有副作用,但我会密切关注。谢谢