モジュールに次のコードがあります。理想的には_<body>
_の先頭にあるHTMLを挿入しようとしていますが、hook_init()
での呼び出しが機能していないようです。これで? _<body>
_の後にSlidedown.tpl.phpをレンダリングすることを望んでいます。
_<?php
function slidedown_init() {
drupal_add_js(drupal_get_path('module', 'slidedown') . '/slidedown.js');
drupal_add_css(drupal_get_path('module', 'slidedown') . '/slidedown.css');
slidedown_insert_html();
}
function slidedown_insert_html() {
return theme('slidedown_template');
}
function slidedown_theme() {
$themes = array (
'slidedown_template' => array(
'template' => 'slidedown', // your template file called slidedown.tpl.php
'arguments' => array(),
),
);
return $themes;
}
?>
_
あなたはおそらく hook_page_build()
:
_function slidedown_page_build (&$page) {
$path = drupal_get_path('module', 'slidedown');
drupal_add_js($path . '/slidedown.js');
drupal_add_css($path . '/slidedown.css');
$page['page_top']['slidedown_template'] = array(
'#weight' => -1000,
'#markup' => theme('slidedown_template'),
);
}
_
そのフックがJSとCSSを追加するには遅すぎるかどうか覚えていません。それらを template_preprocess_html()
に入れる必要があるかもしれません。 hook_init()
よりも良い選択です。
テンプレートpage.tpl.phpとそのバリアントは、<body> </ body>タグ内に配置されるものを定義します。
おそらく、page.tpl.phpでリージョンを定義し、それを必要な場所に配置することをお勧めします。次に、この領域でスライドショーをレンダリングします。
詳細については、チェックアウト Drupalテーマシステムの仕組み のしくみをご覧ください。