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')>0 || strpos($curr_uri,'edit')>0 || 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')];
}
}
?>Хабрапользователи могут поддержать
- Stan.Ezersky's blog
- Для комментирования войдите или зарегистрируйтесь
Поддержал)
Буквально пару дней назад на эту тему думал)) http://www.ra-don.ru/node/188
- Для комментирования войдите или зарегистрируйтесь
Поддержал)
Спасибо-)
Буквально пару дней назад на эту тему думал)) http://www.ra-don.ru/node/188
Да, прочитал, думаю пригодится
- Для комментирования войдите или зарегистрируйтесь
Охх этот хабр. Они везде где код есть минусовать начинают - "страшно".. ))
от TheShock там красивое решение, однако.
- Для комментирования войдите или зарегистрируйтесь
Охх этот хабр. Они везде где код есть минусовать начинают - "страшно".. ))
от TheShock там красивое решение, однако.
Да, решение изящное-)
- Для комментирования войдите или зарегистрируйтесь
Спасибо! Как раз искал решение этой проблемы.
- Для комментирования войдите или зарегистрируйтесь
Кстати, а почему в Друпале по дефолту лежит старая версия jQuery?
Это... как-то не совсем кошерно юзать одновременно 2 версии...
jQuery update - а толку от него? Разве трудно заменить файлик вручную?
А вот если у меня, например, есть страничка с адресом /best/editors, то для нее загрузится старая библиотека, вместо новой...
- Для комментирования войдите или зарегистрируйтесь
jQuery update - а толку от него? Разве трудно заменить файлик вручную?
Замените и у вас не будет работать практически всё, что связано с ajax.
А для чего нужен jQuery update советую почитать на странице модуля
Это... как-то не совсем кошерно юзать одновременно 2 версии...
Вы в код очень внимательно посмотрели?
- Для комментирования войдите или зарегистрируйтесь
Замените и у вас не будет работать практически всё, что связано с ajax.
Работает... Правда замена была из коробки модуля
- Для комментирования войдите или зарегистрируйтесь
Спасибо.
- Для комментирования войдите или зарегистрируйтесь
Пожалуйста-)
А вот решение от 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()) ?
?>- Для комментирования войдите или зарегистрируйтесь
Вы в код очень внимательно посмотрели?
Естественно смотрел, используются 2 версии библиотеки.
Замените и у вас не будет работать практически всё, что связано с ajax.
Например?
- Для комментирования войдите или зарегистрируйтесь
Естественно смотрел, используются 2 версии библиотеки.
Используется или 1.3.2, или 1.4.2
Например?
Формы
- Для комментирования войдите или зарегистрируйтесь
Используется или 1.3.2, или 1.4.2
Так я и говорю, что на сайте приходится использовать две библиотеки.
Формы
Представьте ситуацию, что на странице форм нужно одновременно поддерживать старый функционал для 1.3.2 версии и новый для 1.4.2 версии (нужен ui 1.8.1 версии), то что тогда делать?
- Для комментирования войдите или зарегистрируйтесь
или 1.3.2, или 1.4.2
- Для комментирования войдите или зарегистрируйтесь
Представьте ситуацию, что на странице форм нужно одновременно поддерживать старый функционал для 1.3.2 версии и новый для 1.4.2 версии (нужен ui 1.8.1 версии), то что тогда делать?
Да потому модуль не особо и решал задачу. Отстёгивались опции то в одном, то в другом месте. Думаю, адекватно просто дождаться обновы друпаловского jQuery. Костыли как-то напрягают
- Для комментирования войдите или зарегистрируйтесь
Представьте ситуацию, что на странице форм нужно одновременно поддерживать старый функционал для 1.3.2 версии и новый для 1.4.2 версии (нужен ui 1.8.1 версии), то что тогда делать?
Вопрос следует задать разработчикам Jquery.
- Для комментирования войдите или зарегистрируйтесь
Думаю, адекватно просто дождаться обновы друпаловского jQuery. Костыли как-то напрягают
Обновы судя по всему не будет, давно бы вышла. JQuery 1.4 будет в семерке.
- Для комментирования войдите или зарегистрируйтесь
Обновы судя по всему не будет
К сожалению, не будет. Drupal вообще как-то непонятно использует версии jQuery: устарелые. Хотя новая версия друпала выходит после релиза новой версии jQuery. Совпадение конечно
- Для комментирования войдите или зарегистрируйтесь
Andypost как-то говорил что друпал использует последние сторонние библиотеки на момент выхода мажорного релиза, а потом уже костыли. Drupal 7 готовится вроде как работать на JQuery 1.4, по крайней мере видел issue.
- Для комментирования войдите или зарегистрируйтесь
А с какой версией jQuery шестой Друпал работает нормально сейчас: с 1.2.6 и 1.3.2, или только с 1.2.6? Просто по дефолту в папке /misc всегда лежит старая версия 1.2.6 (Date: 2008-05-24)...
- Для комментирования войдите или зарегистрируйтесь
А с какой версией 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.
- Для комментирования войдите или зарегистрируйтесь
Просто мне нужен ui, а их сейчас двух версий, которые требуют или jQuery 1.3.2, или 1.4+...
Так вот думаю, что буду пока пользоваться версией 1.3.2...
- Для комментирования войдите или зарегистрируйтесь
К сожалению, не будет. Drupal вообще как-то непонятно использует версии jQuery: устарелые. Хотя новая версия друпала выходит после релиза новой версии jQuery. Совпадение конечно
Трындец, что ещё тут можно добавить... тогда думаю будет разумно попытать проанализировать разницу и как-то выпилить рабочую библиотеку....
- Для комментирования войдите или зарегистрируйтесь
Трындец, что ещё тут можно добавить... тогда думаю будет разумно попытать проанализировать разницу и как-то выпилить рабочую библиотеку....
Вперед и с песней:)
- Для комментирования войдите или зарегистрируйтесь
Господа, после того как подключил новый жквери, модуль лайтбокс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'] и всё становится на свои места...
Я привел кусок кода ,вообще там больше Этих автохендлов, менять нужно везде!
Вперед и с песней:)хд
- Для комментирования войдите или зарегистрируйтесь
А я когда устанавливал недавно на шестерку lightbox2 он у меня на JQuery 3.2 страдал тем же. Решилось установкой DEV-версии лайтбокса. Может и у вас также решить можно.
- Для комментирования войдите или зарегистрируйтесь
спасибо за решение, поначалу работает, проверял на двух проектах, через некоторое время начинает снова подставляться старый jquery.js, никакие обновления не ставил. Кто нибудь с таким сталкивался?
- Для комментирования войдите или зарегистрируйтесь
Ну все я и тут попиарюсь, тут хоть правильнее, по теме так сказать
Подружить последний jquery ui и drupal (http://xermit.blogspot.com/2011/01/jquery-ui-drupal.html)
- Для комментирования войдите или зарегистрируйтесь
Мне кажется все таки надо вместо 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')];
}
}
?>- Для комментирования войдите или зарегистрируйтесь
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')]; }
- Для комментирования войдите или зарегистрируйтесь







Комментарии