JavaScriptおよびCSSファイルをtemplate.phpファイルから1つのノードタイプページに追加しようとしていますが、機能しません。これが私のtemplate.phpコードです:
<?php
// $Id: template.php,v 1.13 2010/12/14 01:04:27 dries Exp $
function mttheme_preprocess_html(&$variables) {
$node = node_load(arg(1));
if ($node->type = 'sales_team_page') {
drupal_add_css('misc/jquery.fancybox-1.3.4.css');
drupal_add_js('misc/jquery.mousewheel-3.0.4.pack.js',
array('type' => 'file', 'scope' => 'header')
);
drupal_add_js('misc/jquery.fancybox-1.3.4.pack.js',
array('type' => 'file', 'scope' => 'header')
);
drupal_add_js('misc/jquery.fancybox-calls.js',
array('type' => 'file', 'scope' => 'header')
);
}
}
それが機能しない理由を誰かが知っていますか?
ノードを表示するときにCSSとJavaScriptが必要なので、ノードテンプレートの前処理関数にファイルを追加できます。また、それらのドキュメントに記載されているように、ファイルを追加するとき、 drupal_add_css()
および drupal_add_js()
の最初の引数はパスですCSS/JavaScriptファイルは、base_path()を基準にしています。 drupal_get_path('theme', 'THEME')
を使用して、ベースパスを基準としたテーマのパスを取得できます。
_function THEME_preprocess_node(&$variables) {
if ($variables['view_mode'] == 'full') {
$node =& $variables['node'];
if ($node->type == 'sales_team_page') {
$path = drupal_get_path('theme', 'THEME');
drupal_add_css($path . '/misc/jquery.fancybox-1.3.4.css');
drupal_add_js($path . '/misc/jquery.mousewheel-3.0.4.pack.js', array('type' => 'file', 'scope' => 'header'));
drupal_add_js($path . '/misc/jquery.fancybox-1.3.4.pack.js', array('type' => 'file', 'scope' => 'header'));
drupal_add_js($path . '/misc/jquery.fancybox-calls.js', array('type' => 'file', 'scope' => 'header'));
}
}
}
_
また、現在表示されているノードをロードするために$node = node_load(arg(1));
を実行することは安全でなく、間違っています。 _whatever/42
_にnon nodeページがあるが、nid = 42の既存の_sales_team_page
_ノードがある場合、このノードをロードしてCSSを追加し、ユーザーがノードを表示していない場合でもJavaScriptファイル。
おそらく、ノードタイプを正しく取得できないためです。ノードタイプを正しくキャプチャするには、前処理ノードを使用します。
function mttheme_preprocess_node(&$variables) {
if ($variables['type'] == "sales_team_page"){
drupal_add_css(drupal_get_path('theme', 'mttheme') . 'misc/jquery.fancybox-1.3.4.css');
//add js in the same way using drupal_get_path()
}
}
テーマの.infoファイルから追加することもできます。
name = Your theme
core = 7.x
engine = phptemplate
scripts[] = my_js.js