javascriptを追加するには、次を使用できます。
drupal_add_js
そしてcssについても同様です:
drupal_add_css
しかし、ページの最後にhtmlを追加したい場合はどうなりますか。つまり、ページの最後にテキストを含むdivを追加しますか?
変更をテーマベースにしたい場合は、ここでの多くの提案が機能しますが、これをモジュールから取得したい場合は、ブロック領域、ページテンプレート、またはページ前処理を使用してもうまくいきません。テーマの変更。
モジュールの観点からは、次のオプションが最適です。
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>"
}
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 パラメーターを「フッター」に設定することで、これを使用して 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
}
その drupal_add_js を hook_init() に入れたことに注意してください。そうしないと、Drupal の積極的なキャッシュ機能を使用するときにスクリプトが失われる可能性があるためです。
残念ながら、drupal_add_css の $scope パラメータはありません
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>',
);
}
}
以下をテーマの template.php ファイルに追加できます。
function phptemplate_preprocess_page(&$vars) {
$vars['closure'] .= 'Add markup here';
}
Drupal には、実装してページのフッターに任意のコードを追加できるフックがあります - hook_footer です。http://api.drupal.org/api/function/hook_footer/6を参照してください
それを行うブロックを作成し、そのブロックをクロージャーに入れることができます。
...または、おそらく他の回答ほど推奨されていませんが、より直接的に、html を page.tpl.php ファイルに直接追加できます。
すでにいくつかの良い提案がなされています:
最も簡単な方法は、カスタム マークアップを配置できるブロックを作成して追加することです。そのための特別なテンプレートを作成することもできるので、通常の drupal ブロック マークアップではなく、ブロック コンテンツに記述したものだけを取得できます。
それはあなたのニーズをカバーするはずです:
サイト管理者にブロックについて知られたくないので、ブロックを使用したくない場合は、2 番目に良い方法は次のとおりです。
これは基本的に上記と同じことを行いますが、ブロックを追加する代わりに、テーマに設定があるだけです。より多くの作業が必要になります。
カスタム モジュールでもほとんど同じことができますが、モジュールでこれを行うのはあまり意味がありません。これは純粋にプレゼンテーションであり、とにかくテーマに依存しているためです。
これは、drupal 6 および 7 で機能するちょっとしたトリックです。
$script = '//--><!]]></script><strong>this is bold html code</strong><script type="text/javascript"><!--//--><![CDATA[//><!--';
drupal_add_js($script, 'inline', 'footer');
テンプレート ファイルを変更したり、上記で提案した他の方法を使用したりしたくないことは明らかなので、js や css の場合と同様に、ページに html を追加するためにこれが機能するはずです。