在Drupal闭包中添加HTML?

cod*_*ama 4 closures footer drupal-6 drupal-7

要添加javascript,您可以使用:

drupal_add_js
Run Code Online (Sandbox Code Playgroud)

和css类似:

drupal_add_css
Run Code Online (Sandbox Code Playgroud)

但是,如果我只想在页面末尾添加html,该怎么办?即在页面末尾添加一个包含一些文本的div?

tms*_*ont 9

如果你希望你的更改是基于主题的,那么这里有很多建议,但如果你想让它来自一个模块,使用一个块区域,页面模板或页面预处理不会削减它,因为你绑定了改变主题.

从模块化的角度来看,以下选项是最佳选择:

hook_footer() - http://api.drupal.org/api/function/hook_footer/6 :: my_module_footer()应该返回一个HTML字符串,甚至可以是javascript.例如

function my_module_footer(){

    return "<script type='text/javascript'>//your script</script>"

}
Run Code Online (Sandbox Code Playgroud)

您可以使用drupal $ _GET ['q']来获取页面URL,并使该返回条件成为页面URL的条件.

否则,我有时使用$ GLOBALS ["_ add_my_footer"]作为布尔值,并将其设置在模块中的各个点,然后在hook_footer()中,看看它是否为真.


drupal_add_js - api.drupal.org/api/drupal/includes--common.inc/function/drupal_add_js/6 ::您可以通过将$ scope参数设置为"footer"来将javascript添加到页脚 - 例如

function my_module_init(){

    $script = "your script "; // notice no <script> tags
    drupal_add_js($script, 'inline', 'footer');
    // you can also use this function to grab a .js file

}
Run Code Online (Sandbox Code Playgroud)

请注意,我将drupal_add_js放入hook_init() - 我这样做是因为如果你不这样做,那么在使用Drupal的激进缓存功能时脚本可能会丢失.

不幸的是,drupal_add_css没有$ scope参数


Vac*_*ndo 5

由于hook_footer没有在Drupal 6中存活,这里是等效函数以及如何在Drupal 7中实现它:

/**
* Implements hook_page_alter().
*/
function example_page_alter(&$page) {
  if (variable_get('dev_query', 0)) {
    $page['page_bottom']['devel']= array(
      '#type' => 'markup',
      '#markup' => '<div style="clear:both;">' . devel_query_table() . '</div>',
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

(来自http://preprocess.me/drupal-hookfooter-in-drupal-7)