5

を使用して、ヘッダーにJavascriptファイルへの参照を挿入しようとしていますdrupal_add_js()。この行をtemplate.phpのテンプレート前処理関数内に配置しました。コードがまったく機能しない結果:本来あるべき出力にスクリプトリンクがありません。誰かが私が間違っていることを教えてもらえますか?

function phptemplate_preprocess_page(&$vars) {
    $url = drupal_get_path("theme","mysite");  
    drupal_add_js($url."/jquery.js");  
    drupal_add_js($url."/drupal.js");  

.....
4

5 に答える 5

10

さらに簡単に、すべてのページにロードする必要のあるJavascriptをテーマの.infoファイルに追加できます。http://drupal.org/node/171205#scriptsを参照してください。

于 2010-04-02T14:59:07.510 に答える
2
  drupal_add_js(path_to_theme().'/js/jquery.cycle.all.js');
  $vars['scripts'] = drupal_get_js();
于 2010-04-01T21:23:04.227 に答える
1

javascriptファイルをthemeディレクトリに配置すると、以下をthemes.infoファイルに追加できます。

scripts[] = myJavaScriptFile.js

このファイルを追加した後、テーマを非アクティブ化してからリアクティブにする必要があります。

于 2010-04-03T00:41:16.697 に答える
1

他の人が指摘しているようにdrupal_add_js()、実装から単に使用するhook_preprocess_page()ことは機能しません。への複数の呼び出しを通じて収集されたJavaScriptファイルへの参照は、からの変数drupal_add_js()に対応するマークアップを生成するために使用されます。ただし、テーマの実装は常に。の後に呼び出されます。したがって、ファイルにファイルを追加するには、すでに設定されている変数をオーバーライドする必要があります。$scriptstemplate_preprocess_page()hook_preprocess_page()template_preprocess_page()drupal_add_js().tpl.php$scripts

function THEME_preprocess_page(&$variables)
  drupal_add_js(...);
  $variables['scripts'] = drupal_get_js();
}

jquery.jsただし、自分で追加する必要はありませんdrupal.js。Drupalコアによってすでに自動的に実行されているはずです。自分で行う必要がある場合は、サイトで何かが壊れています。クイックフィックスとしてファイルを(再)追加できますが、まだ特定していない(または気付かずに回避した)他の問題が発生する可能性が高いため、問題の根本原因を見つける方が適切です。

于 2011-10-31T11:40:57.383 に答える
-1

drupal_add_js()動作しますが、ページレンダリングプロセスの奥深くに置いています。私はあなたがしているようにそれをtemplate.phpに置くことを提案しますが、最初は関数の外にあります。これは、いくつかのプロジェクトで行ったことです。

于 2010-04-02T12:35:23.733 に答える