Drupal 7模板视图preprocess添加javascript:我做错了什么?
问题描述:
我已经读过,将JavaScript文件添加到特定视图的最佳做法是使用预处理器和drupal_add_js。我想添加的是Facebook应用程序脚本。我知道这个脚本是有效的,因为我已经在视图的标题中将它添加到标记中。Drupal 7模板视图preprocess添加javascript:我做错了什么?
什么不是我的工作是我添加到我的主题的template.php文件下面的代码。据我可以告诉搜索,这应该工作(显然用实际名称替换THEME_NAME和VIEW_NAME),但js文件只是没有被添加。我还尝试将它添加到我的主题的.info文件中的每个页面,只是为了查看它是否可以将其添加到每个页面,但没有运气。
function THEME_NAME_preprocess_views_view(&$vars) {
$view = $vars['view'];
if ($view->name == 'VIEW_NAME') {
drupal_add_js(drupal_get_path('theme', 'THEME_NAME') . '/js/facebook.js');
}
}
答
只需为每个视图调用预处理即可。帮助访问此link
function bartik_preprocess_views_view(&$vars) {
$function_name = __FUNCTION__ . '__' . $vars['view']->name;
if (function_exists($function_name)) {
$function_name($vars);
}
}
function bartik_preprocess_views_view__test(&$vars) {
$view = $vars['view'];
if ($view->name == 'test') {
drupal_add_js(drupal_get_path('theme', 'bartik') . '/js/facebook.js');
}
}
这似乎工作,谢谢!根据您提供的链接中的建议,我还在我的主题中包含了有关视图的模板(似乎是必需的解决方法?)。虽然我没有测试以确定这是否有所作为,但解决方案正在发挥作用。 –