1

我已经读过,将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'); 
    } 
} 

回答

0

只需为每个视图调用预处理即可。帮助访问此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'); 
    } 
} 
+0

这似乎工作,谢谢!根据您提供的链接中的建议,我还在我的主题中包含了有关视图的模板(似乎是必需的解决方法?)。虽然我没有测试以确定这是否有所作为,但解决方案正在发挥作用。 –