web-dev-qa-db-ja.com

本文の終了タグの直前にHTMLを挿入するにはどうすればよいですか?

drupal_add_js()がJavaScriptをページの下部に追加する方法と同様に、任意のHTMLコンテンツを本文の終了タグの前に挿入する最良の方法を探しています。

私はWordpressバックグラウンドから来ており、Wordpressでは、これはwp_footer()フックを使用して実現できます。

私はhook_page_alter()の使用を調査しましたが、これがこれを行う正しい方法なのか、またはこのタスクを達成するためのより良い方法があるのか​​疑問に思っていました。

8
drebabels

Drupal 6で使用された hook_footer() に相当するものは、実装 hook_page_build() であり、_$page['page_bottom']_、次のようなコードを使用:

_function mymodule_page_build(&$page) {
  $page['page_bottom']['devel'] = array(
    '#weight' => 25, 
    '#markup' => '<div style="clear:both;">' . devel_query_table() . '</div>',
  );
}
_

_$page['page_bottom']_の内容は、次のコードを使用して html.tpl.php から出力されます。

_  <?php print $page_top; ?>
  <?php print $page; ?>
  <?php print $page_bottom; ?>
</body>
</html>
_

_$page_bottom_の値は、次のコードを使用して template_process_html() から初期化されます。

_  // Render page_top and page_bottom into top level variables.
  $variables['page_top'] = drupal_render($variables['page']['page_top']);
  $variables['page_bottom'] = drupal_render($variables['page']['page_bottom']);
  // Place the rendered HTML for the page body into a top level variable.
  $variables['page'] = $variables['page']['#children'];
  $variables['page_bottom'] .= drupal_get_js('footer');
_

hook_page_alter()hook_page_build()の違いは、hook_page_alter()hook_page_build()の後に実行され、コンテンツの変更または削除に使用する必要があることです別のモジュールによって追加されますが、hook_page_build()は、ページに新しいコンテンツを追加するために使用する必要があります。

23
kiamlaluno