it-swarm.com.de

Wie füge ich HTML kurz vor dem Body Closing Tag ein?

Ich suche nach der besten Möglichkeit, beliebigen HTML-Inhalt vor dem schließenden Body-Tag in eine Seite einzufügen, ähnlich wie drupal_add_js() JavaScript am Ende einer Seite hinzufügt.

Ich komme aus einem Wordpress Hintergrund, und in Wordpress dies könnte mit dem wp_footer() Hook erreicht werden.

Ich habe versucht, hook_page_alter() zu verwenden, aber ich habe mich gefragt, ob dies der richtige Weg ist oder ob es einen besseren Weg gibt, diese Aufgabe zu erfüllen.

8
drebabels

Das Äquivalent von hook_footer () , das in Drupal 6) verwendet wurde, besteht darin, hook_page_build () zu implementieren und den Inhalt von $page['page_bottom'] Mit einem Code ähnlich dem folgenden:

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

Der Inhalt von $page['page_bottom'] Wird von html.tpl.php unter Verwendung des folgenden Codes ausgegeben:

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

Der Wert von $page_bottom Wird aus template_process_html () mit dem folgenden Code initialisiert:

  // 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');

Der Unterschied zwischen hook_page_alter () und hook_page_build() besteht darin, dass hook_page_alter() nach hook_page_build() ausgeführt wird und zum Ändern oder Entfernen von Inhalten verwendet werden sollte von einem anderen Modul hinzugefügt, während hook_page_build() verwendet werden sollte, um der Seite neuen Inhalt hinzuzufügen.

23
kiamlaluno