2010-08-30 38 views
0

我想從Lightbox2模塊中通過使用template.php,並加載我自己刪除的默認lightbox.js文件。如果可能的話,我想通過template.php來做到這一點,而不是將此代碼放置在自定義模塊中。我正在添加我的JavaScript文件,然後取消設置模塊JavaScript文件。問題是$ vars ['scripts']沒有被$ js的輸出取代,仍然輸出模塊javascript。 krumo($ js)顯示已刪除的默認lightbox.js。以下是我在template_preprocess_page中的內容。提前致謝。刪除drupal模塊javascript,替換我自己在template.php

drupal_add_js(path_to_theme() . "/resources/js/lightbox.js", 'theme'); 
$js = drupal_add_js(NULL, NULL, 'header'); //get header js files in an array 
$lightbox_path = drupal_get_path('module', 'lightbox2'); 
unset($js['module'][$lightbox_path . '/js/lightbox.js']); //unset lightbox default js 
$vars['scripts'] = drupal_get_js('header', $js); 
+0

你應該看看我的回覆,user310404,因爲我修改它以包含我認爲的解決方案。 – 2010-09-06 23:58:23

回答

0

好的,讓我們再來看看它。

剛走看着http://api.drupal.org/api/function/drupal_add_js/6第二次,我注意到收藏代碼可能是在

$js['header']['module'][$lightbox_path .'/js/lightbox.js'] 

,而不是在

$js['module'][$lightbox_path .'/js/lightbox.js']. 

我建議在你的「未設置」偷偷在dpm($js)調用,然後點擊幾次刷新,直到顯示出來,並確保您已經獲得了$ scope和$ type的完全正確組合,以查找其中的lightbox代碼。

(注意:DPM()是由devel模塊,我猜我假設傻冒已經使用如果你沒有,那麼drupal_set_message('<pre>'. print_r($js, TRUE) .'</pre>);會做,以及所提供的功能

+0

是的,它被寫爲 function dev_preprocess_page(&$ vars,$ hook){ – Vincent 2010-08-30 20:49:23