В качестве альтернативы обработке содержимого $vars['scripts']
, которое представляет собой строку, содержащую HTML-код для вывода в теге <head>
, вы можете использовать значение, возвращаемое из drupal_add_js (NULL, NULL, 'header'), который похож на следующий:
$header_javascript = array(
'core' => array(
'misc/jquery.js' => array(
'cache' => TRUE,
'defer' => FALSE,
'preprocess' => TRUE,
),
'misc/drupal.js' => array(
'cache' => TRUE,
'defer' => FALSE,
'preprocess' => TRUE,
),
),
'module' => array(),
'theme' => array(),
'setting' => array(
array('basePath' => base_path()),
),
'inline' => array(),
);
Индекс «module» содержит ссылку на файлы JavaScript, добавленные из модулей, «settings» содержит все настройки JavaScript, обычно добавляемыемодули, а «inline» содержит встроенный код JavaScript.
Это может помочь, если вам необходимо различать разные файлы JavaScript и (например) не трогать любой файл JavaScript, помеченный как «core».
Противовес заключается в том, что для заполнения содержимого $vars['scripts']
необходимо дублировать часть кода, используемого в drupal_get_js () .Так как вам потребуется настраиваемый код, вы не будете дублировать весь код этой функции, но вы все равно будете дублировать его часть.
В Drupal 7 переменная $vars['scripts']
больше не передается template_preprocess_page()
(и аналогичные функции препроцессора, реализованные модулями или темами);он передается template_preprocess_html () .