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

這似乎工作,謝謝!根據您提供的鏈接中的建議,我還在我的主題中包含了有關視圖的模板(似乎是必需的解決方法?)。雖然我沒有測試以確定這是否有所作爲,但解決方案正在發揮作用。 –