Drupal 6: лучшие практики для изменения JavaScript добавленного модуля

У меня вопрос, как настроить модули drupal, избегая взлома.

Допустим, я загрузил модуль Lightbox2 и хочу изменить файл javascript, чтобы по-другому отображать мой лайтбокс.

В настоящий момент я модифицирую модуль Lightbox2, поэтому я больше не могу его обновлять, поэтому я знаю, что это не лучшая практика.

Мне было интересно, могу ли я настроить файл javascript этого модуля с помощью крючка и как.

Спасибо


person aneuryzm    schedule 16.06.2010    source источник


Ответы (1)


Чтобы изменить только JS, вам вообще не нужно взламывать модуль. Вместо этого вы можете использовать систему тем, чтобы изменить сценарии, отправляемые на страницу.

На странице предварительной обработки template.php:

 $scripts = drupal_add_js();
 unset($scripts['module']['whatever/the/path/is/lightbox.js']);
 $scripts['module']['new/js/path/lightbox.js'] = array('preprocess' => 1, 'cache' => 1);
 $variables['scripts'] = drupal_get_js('header', $scripts);

Я предлагаю вам затем скопировать js-файл лайтбокса на новый путь и внести там свои изменения, а не начинать с нуля.

Некоторые модули предоставляют свои собственные хуки и функции тем, которые вы можете переопределить напрямую, так что, возможно, стоит немного покопаться в модуле лайтбокса и для них.

person cam8001    schedule 16.06.2010
comment
привет, я пытаюсь использовать ваш код, и он отлично заменяет содержимое массива $ scripts новым путем. Однако старый файл js загружен (а не новый) ... спасибо - person aneuryzm; 25.06.2010
comment
Убедитесь, что вы делаете это в themename_preprocess_page () и заменяете переменную $ scripts, которая печатается в вашем page.tpl.php. - person cam8001; 25.06.2010