删除drupal模块javascript,替换为我自己的template.php

时间:2010-08-30 20:09:38

标签: drupal drupal-6 drupal-modules

我正在尝试使用template.php删除来自Lightbox2模块的默认lightbox.js文件,并在我自己的文件中加载。如果可能,我想通过template.php执行此操作,而不是将此代码放在自定义模块中。我正在添加我的javascript文件,然后取消设置模块javascript文件。问题是$ vars ['scripts']没有被$ js的输出替换,仍然输出模块javascript。 krumo($ js)显示删除了默认的lightbox.js。以下是我在template_preprocess_page中的内容。提前谢谢。

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);

1 个答案:

答案 0 :(得分: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的完全正确组合找到灯箱代码。

(注意:dpm()是devel模块提供的一个函数,我想我假设你已经在使用它。如果不是,那么drupal_set_message('<pre>'. print_r($js, TRUE) .'</pre>);也可以。