Главная Новости

Использование новых версий jQuery в старых версиях Drupal

Опубликовано: 01.11.2017

При поддержке старых версий Drupal (в данной статье речь идёт о Drupal 6 и Drupal 7) часто возникает необходимость использования актуальной (современной) версии jQuery. И если в случае с самописными скриптами можно обойтись версией из ядра, то в случае использования готового jQuery плагина этот вариант может не подойти. К примеру, в Drupal 6 вы не сможете использовать такой популярный плагин, как Chosen , поскольку он просто не заработает на том jQuery, что есть в ядре. К слову о версиях: из "коробки" Drupal 7 предоставляет jQuery версии 1.4.4, а Drupal 6 - версии 1.2.6. Просто взять и обновить jQuery в ядре Drupal нельзя по двум причинам. Во-первых, это вездесущие проблемы с дальнейшим обновлением ядра. Во-вторых, скрипты Drupal и контрибных модулей не будут работать с новой версией. Безусловно можно использовать модуль jQuery Update . Он решает большинство проблем с jQuery в Drupal 7, но для Drupal 6 в настоящее время практически бесполезен -  Chosen не заработает даже с этим модулем. Можно, конечно, использовать старые (совсем старые) версии нужных плагинов или самому реализовать их функционал, но это никому не нужный труд. К счастью, есть и другие варианты решения вышеописанной проблемы. Об одном из таких решений далее и пойдёт речь.

Первым делом стоит отметить, что jQuery позволяет запускать на странице другие версии jQuery. Достигается это засчёт использования функции noConflict() . На её основе построена логика работы модуля jQuery Multi . Код "обработки" новой версии jQuery находится в файле js/switch.js относительно директории модуля.

( function ( $) { // Put together the name of the new jQuery variable. var version = $ ( ). jquery ; var versionName = version. replace ( /\./g , '' ) ; // Save the new version of jQuery globally and restore Drupal version. window [ 'jq' + versionName ] = jQuery. noConflict ( true ) ; } ) ( jQuery ) ;

Как видно из кода - новая версия jQuery будет доступна в переменной jq{%version}, старая версия будет по-прежнему доступна в переменной jQuery или её синониме $. Например, при использовании версии 3.1.1, переменная будет jq311. С этого момента уже можно работать с новой версией (скрипты, использующие старую версию не сломаются), однако, это не совсем удобно, так как по общеиспользуемому синониму $ будет доступна старая версия, что не подходит для использования сторонних плагинов. Также подобный подход отразится на поддержке и переносимости кода.

3D стерео фильмы для 5D
    Как купить билеты на поезд

    Я всегда в последнее время пользуюсь услугами настоящего интернет сайта. Он у меня внушает доверие. И здесь придбати квитки возможно в любое

    Ведущие корпоративов
    Хотя до наступления зимы осталось еще полтора месяца, многие коллективы уже сейчас планируют, как они будут встречать Новый год. Руководство рассматривает суммы, которые могли бы быть потрачены на корпоратив,

    Custom plugins and WordPress themes
    Шаблоны страниц в WordPress являются отличным способом изменить структуру страниц или добавить им функциональности. Создание собственного шаблона страниц может быть не простым делом, особенно для новичков,

    Продукт WooCommerce
    Каждый умный человек в современном мире прекрасно понимает, что в двадцать первом веке просто нельзя упускать возможность узнать или же научиться чему-либо новому. Особенно, если речь касается электронной

rss