Drupal 6: заменить версию jquery на одной странице - PullRequest
1 голос
/ 16 августа 2011

Я нахожусь в довольно напряженном состоянии с привязкой версии Jquery.Мне нужна версия 1.4.1 или выше на одной конкретной странице, чтобы добиться определенного эффекта, и я не вижу способа переопределить версию Drupal по умолчанию 1.2.6.только для одной страницы.Самый высокий Drupal 6, который может показаться, это v1.3.2, который модуль JQ Update меняет местами.

Так есть ли способ переопределить тег заголовка JQ для конкретной страницы?

Ответы [ 3 ]

2 голосов
/ 16 августа 2011

Вот оно в новом модуле.Это скопировано и изменено из модуля jquery update .:

/**
 * Implementation of hook_theme_registry_alter().
 *
 * Make my page preprocess function run *after* everything else's.
 */
function my_module_theme_registry_alter(&$theme_registry) {
  if (isset($theme_registry['page'])) {
    // If jquery_update's preprocess function is there already, remove it.
    if ($key = array_search('jquery_update_preprocess_page', $theme_registry['page']['preprocess functions'])) {
      unset($theme_registry['page']['preprocess functions'][$key]);
    }
    // Now tack it on at the end so it runs after everything else.
    $theme_registry['page']['preprocess functions'][] = 'my_module_preprocess_page';
  } 
}


/**
 * Implementation of moduleName_preprocess_hook().
 *
 * Replace Drupal core's jquery.js with the new one from my module.
 */
function my_module_preprocess_page(&$variables) {
  // Only do this for a specific page.
$alias_array = explode('/', drupal_get_path_alias($_GET['q']));
if($alias_array[0] == 'special_page') {
  // get the scripts from head.
    $scripts = drupal_add_js();

    $myreplacement = drupal_get_path('module', 'my_module').'/jquery-1.4.1.min.js';

    $new_jquery = array($myreplacement => $scripts['core']['misc/jquery.js']);
    $scripts['core'] = array_merge($new_jquery, $scripts['core']);
    unset($scripts['core']['misc/jquery.js']);

        $variables['scripts'] = drupal_get_js('header', $scripts);
    }

}

?>
0 голосов
/ 04 ноября 2013

Ответ Михаэля Д. просто великолепен.Я добавлю, я использую это не для одной страницы, а для всего сайта впереди, и поэтому я могу оставить стандартную версию Jquery для backoffice.У меня нет никаких конфликтов, и я использую последнюю версию Jquery.

0 голосов
/ 16 августа 2011

Может ли drupal_add_js работать? Замените $data на путь к вашему файлу .js.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...