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

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

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

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

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

Спасибо


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


Ответы (1)


arrow_upward
4
arrow_downward

Чтобы изменить только 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