jQuery 1.4.2 для фронтенда сайта

Прислано: Stan.Ezersky

вт, 25/05/2010 - 15:16

Другие статьи по теме:

1. Ставите  jQuery update

2. Качаете версии jQuery 1.4.2: jquery-1.4.2.min.js (Minified version) и jquery-1.4.2.js (Source version).

3. Копируете скачанные версии в /sites/all/modules/jquery_update/replace/

4. Открываете файл /sites/all/modules/jquery_update/jquery_update.module, находите функцию

<?php
/**
 * Return the path to the jQuery file.
 */
/*
function jquery_update_jquery_path() {
  $jquery_file = array('none' => 'jquery.js', 'min' => 'jquery.min.js');
  return JQUERY_UPDATE_REPLACE_PATH .'/'. $jquery_file[variable_get('jquery_update_compression_type', 'min')];
}
?>

и меняете всю функцию на (можно просто закомментировать старую)

<?php
/**
* Return the path to the jQuery file.
*/
function jquery_update_jquery_path() { 
  
$curr_uri request_uri();
  if (
strpos($curr_uri,'admin')>|| strpos($curr_uri,'edit')>|| strpos($curr_uri,'add')>0){
    
$jquery_file = array('none' => 'jquery.js''min' => 'jquery.min.js');
    return 
JQUERY_UPDATE_REPLACE_PATH .'/'$jquery_file[variable_get('jquery_update_compression_type''min')];
  }
  else {
    
$jquery_file = array('none' => 'jquery-1.4.2.js''min' => 'jquery-1.4.2.min.js');
    return 
JQUERY_UPDATE_REPLACE_PATH .'/'$jquery_file[variable_get('jquery_update_compression_type''min')];
  }
}
?>

Хабрапользователи могут поддержать

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано adubovskoy в вт, 25/05/2010 - 15:50.

Поддержал)

Буквально пару дней назад на эту тему думал)) http://www.ra-don.ru/node/188


Опубликовано Stan.Ezersky в вт, 25/05/2010 - 16:10.

"adubovskoy" написал(а):

Поддержал)

Спасибо-)

"adubovskoy" написал(а):

Буквально пару дней назад на эту тему думал)) http://www.ra-don.ru/node/188

Да, прочитал, думаю пригодится


Опубликовано adubovskoy в вт, 25/05/2010 - 16:28.

Охх этот хабр. Они везде где код есть минусовать начинают - "страшно".. ))

от TheShock там красивое решение, однако.


Опубликовано Stan.Ezersky в вт, 25/05/2010 - 17:53.

"adubovskoy" написал(а):

Охх этот хабр. Они везде где код есть минусовать начинают - "страшно".. ))

от TheShock там красивое решение, однако.

Да, решение изящное-)


Опубликовано Eugeny в вт, 25/05/2010 - 20:41.

Спасибо! Как раз искал решение этой проблемы.


Опубликовано Sinkora в вт, 25/05/2010 - 22:16.

Кстати, а почему в Друпале по дефолту лежит старая версия jQuery?

Это... как-то не совсем кошерно юзать одновременно 2 версии...

 jQuery update - а толку от него? Разве трудно заменить файлик вручную?

А вот если у меня, например, есть страничка с адресом /best/editors, то для нее загрузится старая библиотека, вместо новой...


Опубликовано Stan.Ezersky в вт, 25/05/2010 - 23:03.

"Sinkora" написал(а):

jQuery update - а толку от него? Разве трудно заменить файлик вручную?

Замените и у вас не будет работать практически всё, что связано с ajax.

А для чего нужен jQuery update советую почитать на странице модуля

"Sinkora" написал(а):

Это... как-то не совсем кошерно юзать одновременно 2 версии...

Вы в код очень внимательно посмотрели?


Опубликовано Shift-Web в вт, 25/05/2010 - 23:38.

"Stan.Ezersky" написал(а):

Замените и у вас не будет работать практически всё, что связано с ajax.

Работает... Правда замена была из коробки модуля


Опубликовано vgoodvin в ср, 26/05/2010 - 06:12.

Спасибо.


Опубликовано Stan.Ezersky в ср, 26/05/2010 - 11:18.

Пожалуйста-)

А вот решение от TheShock:

<?php
    
function jquery_update_jquery_path() { 
        
$jquery_file preg_match('/(admin|edit|add)/'request_uri()) ?
            array(
'none' => 'jquery.js',       'min' => 'jquery.min.js') :
            array(
'none' => 'jquery-1.4.2.js''min' => 'jquery-1.4.2.min.js');
        return 
JQUERY_UPDATE_REPLACE_PATH '/' $jquery_file[variable_get('jquery_update_compression_type''min')];
    } 
?>

Если нужно отключить jQ 1.4.2 на определённых страницах, добавим в эту строчку путь

<?php
$jquery_file 
preg_match('/(admin|edit|add|СЮДА)/'request_uri()) ?
?>


Опубликовано Sinkora в ср, 26/05/2010 - 12:35.

"Stan.Ezersky" написал(а):

Вы в код очень внимательно посмотрели?

Естественно смотрел, используются 2 версии библиотеки.

"Stan.Ezersky" написал(а):

Замените и у вас не будет работать практически всё, что связано с ajax.

Например?


Опубликовано Stan.Ezersky в ср, 26/05/2010 - 12:54.

"Sinkora" написал(а):

Естественно смотрел, используются 2 версии библиотеки.

Используется или 1.3.2, или 1.4.2

"Sinkora" написал(а):

Например?

Формы


Опубликовано Sinkora в ср, 26/05/2010 - 13:01.

"Stan.Ezersky" написал(а):

Используется или 1.3.2, или 1.4.2

Так я и говорю, что на сайте приходится использовать две библиотеки.

"Stan.Ezersky" написал(а):

Формы

Представьте ситуацию, что на странице форм нужно одновременно поддерживать старый функционал для 1.3.2 версии и новый для 1.4.2 версии (нужен ui 1.8.1 версии), то что тогда делать?


Опубликовано Stan.Ezersky в ср, 26/05/2010 - 13:06.

"Stan.Ezersky" написал(а):

или 1.3.2, или 1.4.2


Опубликовано Shift-Web в ср, 26/05/2010 - 13:52.

"Sinkora" написал(а):

Представьте ситуацию, что на странице форм нужно одновременно поддерживать старый функционал для 1.3.2 версии и новый для 1.4.2 версии (нужен ui 1.8.1 версии), то что тогда делать?

Да потому модуль не особо и решал задачу. Отстёгивались опции то в одном, то в другом месте. Думаю, адекватно просто дождаться обновы друпаловского jQuery. Костыли как-то напрягают


Опубликовано vgoodvin в ср, 26/05/2010 - 13:53.

"Sinkora" написал(а):

Представьте ситуацию, что на странице форм нужно одновременно поддерживать старый функционал для 1.3.2 версии и новый для 1.4.2 версии (нужен ui 1.8.1 версии), то что тогда делать?

Вопрос следует задать разработчикам Jquery.


Опубликовано vgoodvin в ср, 26/05/2010 - 13:55.

"Shift-Web" написал(а):

Думаю, адекватно просто дождаться обновы друпаловского jQuery. Костыли как-то напрягают

Обновы судя по всему не будет, давно бы вышла. JQuery 1.4 будет в семерке.


Опубликовано Stan.Ezersky в ср, 26/05/2010 - 13:58.

"vgoodvin" написал(а):

Обновы судя по всему не будет

К сожалению, не будет. Drupal вообще как-то непонятно использует версии jQuery: устарелые. Хотя новая версия друпала выходит после релиза новой версии jQuery. Совпадение конечно


Опубликовано vgoodvin в ср, 26/05/2010 - 14:11.

Andypost как-то говорил что друпал использует последние сторонние библиотеки на момент выхода мажорного релиза, а потом уже костыли. Drupal 7 готовится вроде как работать на JQuery 1.4, по крайней мере видел issue.


Опубликовано Sinkora в ср, 26/05/2010 - 14:43.

А с какой версией jQuery шестой Друпал работает нормально сейчас: с 1.2.6 и 1.3.2, или только с 1.2.6? Просто по дефолту в папке /misc всегда лежит старая версия 1.2.6 (Date: 2008-05-24)...


Опубликовано vgoodvin в ср, 26/05/2010 - 14:41.

"Sinkora" написал(а):

А с какой версией jQuery шестой Друпал работает нормально сейчас: с 1.2.6 или 1.3.2? Просто по дефолту в папке /misc всегда лежит старая версия 1.2.6 (Date: 2008-05-24)...

Частенько обновлялся до 1.3.2. Были вначале проблемы с админкой вьюсов и не работал hierarchical select, сейчас вроде все нормально. А так проблемы бывают что один модуль конфликтует с JQuery 1.3.2, а другой модуль её требует. Напрмер проблемы с lightbox2.


Опубликовано Sinkora в ср, 26/05/2010 - 14:47.

Просто мне нужен ui, а их сейчас двух версий, которые требуют или jQuery 1.3.2, или 1.4+...
Так вот думаю, что буду пока пользоваться версией 1.3.2...


Опубликовано Shift-Web в ср, 26/05/2010 - 15:18.

"Stan.Ezersky" написал(а):

К сожалению, не будет. Drupal вообще как-то непонятно использует версии jQuery: устарелые. Хотя новая версия друпала выходит после релиза новой версии jQuery. Совпадение конечно

Трындец, что ещё тут можно добавить... тогда думаю будет разумно попытать проанализировать разницу и как-то выпилить рабочую библиотеку....


Опубликовано Sinkora в ср, 26/05/2010 - 15:39.

"Shift-Web" написал(а):

Трындец, что ещё тут можно добавить... тогда думаю будет разумно попытать проанализировать разницу и как-то выпилить рабочую библиотеку....

Вперед и с песней:)


Опубликовано 2FasT4YoU в вт, 29/06/2010 - 23:13.

Господа, после того как подключил новый жквери, модуль лайтбокс2 начал хендлить все ссылки на сайте , хддд, это было печальное зрелище, в общем кому нужно может будет, как фиксонул
файлик
lightbox.js в папке одноименного модуля
находим там initList : function() - вот такую штуку

ниже

  $("a[@rel^='lightbox']:not(.lightbox-processed)").addClass('lightbox-processed').click(function(e) {
      if (Lightbox.disableCloseClick) {
        $('#lightbox').unbind('click');
        $('#lightbox').click(function() { Lightbox.end('forceClose'); } );
      }
      Lightbox.start(this, false, false, false, false);
      if (e.preventDefault) { e.preventDefault(); }
      return false;
    });

и т.д.

убираем @ с $("a[@rel^='lightbox'] и всё становится на свои места...
Я привел кусок кода ,вообще там больше Этих автохендлов, менять нужно везде!

Вперед и с песней:)хд


Опубликовано vgoodvin в ср, 30/06/2010 - 07:42.

А я когда устанавливал недавно на шестерку lightbox2 он у меня на JQuery 3.2 страдал тем же. Решилось установкой DEV-версии лайтбокса. Может и у вас также решить можно.


Опубликовано Stein в вт, 25/01/2011 - 18:45.

спасибо за решение, поначалу работает, проверял на двух проектах, через некоторое время начинает снова подставляться старый jquery.js, никакие обновления не ставил. Кто нибудь с таким сталкивался?


Опубликовано Xermit в пт, 28/01/2011 - 01:26.

Ну все я и тут попиарюсь, тут хоть правильнее, по теме так сказать
Подружить последний jquery ui и drupal (http://xermit.blogspot.com/2011/01/jquery-ui-drupal.html)


Опубликовано natbampo в чт, 14/04/2011 - 07:41.

Мне кажется все таки надо вместо request_uri() использовать $_GET['q'], т.к. первая вернет синоним пути(если есть) и в нем может быть совпадение с вариантами проверки. К $_GET['q'] нужен вариант от TheShock, из-за слеша в начале.
В общем вот:

<?php
function jquery_update_jquery_path() { 
  
$curr_uri $_GET['q']; 
  if (
preg_match('/(admin|edit|add)/'$curr_uri)) {
    
$jquery_file = array('none' => 'jquery.js''min' => 'jquery.min.js');
    return 
JQUERY_UPDATE_REPLACE_PATH .'/'$jquery_file[variable_get('jquery_update_compression_type''min')];
  }
  else {
    
$jquery_file = array('none' => 'jquery-1.4.2.js''min' => 'jquery-1.4.2.min.js');
    return 
JQUERY_UPDATE_REPLACE_PATH .'/'$jquery_file[variable_get('jquery_update_compression_type''min')];
  }
}
?>


Опубликовано juliv в сб, 11/06/2011 - 21:10.

http://drupal.org/node/775924
А также все забыли про batch (у меня не работало с 1.4)

<?php
function jquery_update_jquery_path() { 
  $curr_uri = $_GET['q']; 
  if (preg_match('/(admin|edit|add|batch)/', $curr_uri)) {
    $jquery_file = array('none' => 'jquery.js', 'min' => 'jquery.min.js');
    return JQUERY_UPDATE_REPLACE_PATH .'/'. $jquery_file[variable_get('jquery_update_compression_type', 'min')];
  }
  else {
    $jquery_file = array('none' => 'jquery-1.4.2.js', 'min' => 'jquery-1.4.2.min.js');
    return JQUERY_UPDATE_REPLACE_PATH .'/'. $jquery_file[variable_get('jquery_update_compression_type', 'min')];
  }
}
?>

И мой метод:

function jquery_update_jquery_path() { 
  $curr_uri = request_uri();
  $uri = array('admin', 'edit', 'add', 'batch');
  $is_admin = FALSE;
  foreach ($uri as $u) {
	if (strpos($curr_uri, $u)) {
		$is_admin = TRUE;
		break;
	}
  }
 
  $jquery_file = $is_admin ? array('none' => 'jquery.js', 'min' => 'jquery.min.js') : array('none' => 'jquery-1.4.4.js', 'min' => 'jquery-1.4.4.min.js');
  return JQUERY_UPDATE_REPLACE_PATH .'/'. $jquery_file[variable_get('jquery_update_compression_type', 'min')];
}


Новое на сайте

Ссылки партнёров