1

ページまたは記事のコンテンツを特定の microdata タグ (とりわけ) で囲む 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']これらのリンクやその他のコードの一部を microdata タグ内に挿入したくないため、最後の microdata をスロットに挿入したくありません。また、負の重みを使用して上に移動しようとしましたが、うまくいきませんでした。

コード用の他のスロットがあるかどうかを確認するために、ノード、ブログ、または記事の構造に関する詳細情報を検索しようとしましたが、何も見つかりません。

これはとても簡単だと思います。ページ構造を理解するために不足しているリソースはありますか? 私が見逃している簡単な解決策はありますか?

4

1 に答える 1

2

2つの潜在的な解決策:

  1. hook_page_buildの最初のコメントからのヒントを試してください。これにより、ウェイト宣言が実際に有効になります。(ただし、フラグをリセットする#sortedと悪影響が生じる可能性があるかどうかはわかりません。)

  2. 使用hook_page_build()からに切り替えyour_module_preprocess_page(&$variables)、マイクロデータタグやその他のものをカスタムエントリとしてそこの「$variables」配列に追加します。次に、ページテンプレートを調整して、これらの追加の変数を自由に配置します。これにより、テーマのカスタマイズに関連付けられるという代償を払って、追加の配置をかなり適切に制御できます(つまり、カスタムサイトの構築には適していますが、モジュールが任意のテーマでの一般的な使用を目的としている場合はあまりうまくいきません)。

于 2012-12-14T18:43:56.233 に答える