Здравствуйте уважаемые друпаловоды!
Бьюсь уже целый день над одной проблемой связанной с модулем jquery_update
Он обновляет jQuery в друпале до версии 1.3.2.
Проблема в том что на странице добавления материала с этим обновлением не работают вкладки, возможно и другие.
Очень нужна именно эта версия jQuery 1.3.x
Читал про версию 1.4.x но до нее мне еще далеко, эту бы установить(
Расскажите кто как спасался или только у меня проблемы такие?
Комментарии
Никаких проблем с работающим модулем нет, по крайней мере, не обнаружил на десятке работающих сайтов
Именно с этой версией 6.x-2.0-alpha1 ???
Нет, я ставлю dev-версию-)
Попробуем) я просто думал что dev сырые с багами)
Не совсем так, это версии находящие в разработке, готовящиеся к релизу-)
Все равно не работает!)
Ставлю 6.x-2.x-dev та же история) все работает кроме полей так называемых "collapsing/expanding fieldsets"
Переключал тему на GARLAND все тоже самое, стоит Drupal 6.17
Даже и не знаю, что посоветовать. Попробуйте выяснить в чём конфликт
В принципе мне нужно обновление для одного модуля - fancybox. Предполагаю что можно попробовать править модуль jquery_update - сделать раздельную загрузку на разных страница старой и новой версии.
Не подскажите будут ли проблемы если включить оптимизацию js в разделе производительность?
И еще) может знаете какой модуль на подобии fancybox (чем он мне понравился он аккуратнее LightBox2) но не требующий новую библиотеку?
Вообще на данной странице если посмотреть через firebug выводит вот что
/sites/default/modules/jquery_update/replace/jquery.min.js?0:19
Uncaught Syntax error, unrecognized expression: [type="checkbox"]
Нашел какую то заплатку но это для 7ки по моему - http://drupal.org/node/350275#comment-1218848 - как я понял она решает какую-то похожую проблему...
У меня вопрос для ТС: зачем Вам нужен этот модуль? По-моему, от него никакого толку...
А с чего вы взяли, что этот модуль вам обновляет до версии 1.3.2.
Прочитал вот тут) http://drupal.org/project/jquery_update
Т.е. модуль облегчает обновление JQuery для Друпала и других модулей.
Но в чем проблема вручную загрузить новую версию JQuery и не использовать лишний модуль? Вот именно это мне не понятно...
Ну на сколько я понимаю это интеграция библиотеки jQuery и Drupal, там же не только библиотека а и вспомогательные файлы есть которые как раз и делают привязку к Drupal.
Я так и подозревал...
Вроде решил проблему:
Нужно заменить функцию
jquery_update_jquery_path()
На эту
$jquery_file = preg_match('/(admin|edit|add)/', request_uri()) ?
array('none' => JQUERY_ORIGINAL_PATH.'/'.'jquery.js', 'min' => JQUERY_ORIGINAL_PATH.'/'.'jquery.min.js'):
array('none' => JQUERY_UPDATE_REPLACE_PATH.'/'.'jquery.js', 'min' => JQUERY_UPDATE_REPLACE_PATH.'/'.'jquery.min.js');
return $jquery_file[variable_get('jquery_update_compression_type', 'min')];
}
И эту
jquery_update_preprocess_page(&$variables)
На эту
* Implementation of moduleName_preprocess_hook().
*
* Replace Drupal core's jquery.js with the new one from jQuery Update module.
*/
function jquery_update_preprocess_page(&$variables) {
// Only do this for pages that have JavaScript on them.
if (!empty($variables['scripts'])) {
// Perform the logic if either jQuery Update's jquery.js is newer than core's.
if (variable_get('jquery_update_replace', TRUE)) {
// Get an array of all the JavaScript files loaded by Drupal on this page.
$scripts = drupal_add_js();
// Replace jquery.js first.
$new_jquery = array(jquery_update_jquery_path() => $scripts['core']['misc/jquery.js']);
$scripts['core'] = array_merge($new_jquery, $scripts['core']);
if (!preg_match('/(admin|edit|add)/', request_uri())):
unset($scripts['core']['misc/jquery.js']);
endif;
// Loop through each of the required replacements.
foreach (jquery_update_get_replacements() as $type => $replacements) {
foreach ($replacements as $find => $replace) {
// If the file to replace is loaded on this page...
if (isset($scripts[$type][$find])) {
// Create a new entry for the replacement file, and unset the original one.
$replace = JQUERY_UPDATE_REPLACE_PATH .'/'. $replace;
$scripts[$type][$replace] = $scripts[$type][$find];
unset($scripts[$type][$find]);
}
}
}
$variables['scripts'] = drupal_get_js('header', $scripts);
}
}
}
Stan.Ezersky отдельное спасибо за пост (jQuery 1.4.2 для фронтенда сайта)