1

我正在尝试创建一个 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']插槽中,因为我不希望微数据标签中包含这些链接和其他代码。我也尝试过使用负重将其向上移动,但没有运气。

我尝试搜索有关节点或博客或文章结构的更多信息,以查看代码是否还有其他插槽,但我找不到任何东西。

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

4

1 回答 1

2

两种可能的解决方案:

  1. 试试hook_page_build 上第一条评论中的提示,这应该会让你的权重声明真正生效。(但不确定重置#sorted标志是否会产生不利影响。)

  2. 从 using 切换hook_page_build()your_module_preprocess_page(&$variables),将您的微数据标签和其他内容作为自定义条目添加到那里的“$variables”数组中。然后调整您的页面模板以随意放置这些附加变量。这使您可以很好地控制添加的位置,但代价是与主题自定义相关(即,它适用于自定义站点构建,但如果您的模块旨在用于任意主题的一般用途,则效果不佳)。

于 2012-12-14T18:43:56.233 回答