Разное

Подключение Javascript-фреймворков в Joomla 3

Joomla

Twitter Bootstrap

Для подключения фреймворка Bootstrap используйте:

JHtml::_('bootstrap.framework')

Это также автоматически подключит фреймворк jQuery в режиме no conflict. Это означает, что работа должна осуществляться через пространство имен jQuery, а не через $. Подключаемая версия библиотеки Bootstrap 2.3.2, и она расположена в /media/jui/js/bootstrap.js. Включает в себя методы для инициализации следующих плагинов: alert, button, carousel, collapse, dropdown, modal, tooltip, popover, scrollspy, tab, typeahead и affix. Подробнее об использовании Boostrap в Joomla 3 в статье "Bootstrap JHtml библиотека для Joomla 3.0".

Примечание: существует известная несовместимость между bootstrap-button и jquery-ui-button. Использование обоих кнопок на одной и той же странице приведет к конфликту.

jQuery

Для того чтобы подключить jQuery, используйте:

JHtml::_('jquery.framework');

Это загрузит библиотеку jQuery версии 1.10.2 в режиме no conflict. Для загрузки в нормальном режиме, используйте:

JHtml::_('jquery.framework', false);

jQuery UI

Библиотека JUX (Joomla User Experience) включает в себя ядро jQuery UI Core (версия 1.9.2 на момент Joomla 3.2.1) плюс Widget, Mouse, Position, а также плагин Sortable. Документацию по использованию вы можете найти на странице jQuery UI. Для загрузки ядра используйте:

JHtml::_('jquery.ui');

Это загрузит jquery-ui.core.js из директории /media/jui/js/. Включение jQuery UI автоматически включает JQuery в режиме no conflict, если это не было сделано ранее.

Для добавления библиотеки Sortable используйте:

JHtml::_('jquery.ui', array('sortable'));

Это автоматически загрузит ядро jQuery UI и библиотеку jQuery. Для прозрачности кода, лучше всего подключать эти две библиотеки через один вызов:

JHtml::_('jquery.ui', array('core', 'sortable'));

MooTools

Предполагается, что этот фреймворк будет исключен из будущих версий Joomla.

Вызов фреймворка:

JHtml::_('behavior.framework', $type)

Где $type определяет тип (по умолчанию core). Загружает библиотеку MooTools из /media/system/js. Core: mootools-core.js, версия 1.4.5. More: mootools-more.js, версия 1.4.0.1. Подключение more автоматически включает core.

Joomla! Javascript Framework

Множество библиотек Joomla требуют фреймворк MooTools. Предполагается, что они будут мигрированы в фреймворк Bootstrap в будущих версиях Joomla.

Эти javascript библиотеки расположены в папке /media/system/js. Вот некоторые из них:

caption.js

JHtml::_('behavior.caption', $selector)

Применит функцию подписи (caption) ко всем элементам с классом $selector. По умолчанию классом селектора является img.caption. Для того чтобы применить его к нескольким классам просто вызовите JHtml::_('behavior.caption', $selector) несколько раз. Библиотека загрузится единожды, но будет применена ко всем указанным классам.

tooltip.js

JHtml::_('behavior.tooltip', $selector, $params)

Для всех DOM объектов с классом $selector будет создан onhover тултип с необходимыми параметрами $params. По умолчанию классом селектора является 'hasTip'. Подключение этой библиотеки загрузит фреймворк MooTools.

combobox.js

JHtml::_('behavior.combobox')

Создает эффект combobox (поле со списком). Подключение этой библиотеки загрузит фреймворк MooTools.

validate.js

JHtml::_('behavior.formvalidation')

Включает валидацию формы, которая основана на правилах, которые определены полями формы. Подключение этой библиотеки загрузит фреймворк MooTools.

Плагины для фреймворков и собственные библиотеки

Для подключения сторонних плагинов и/или своих библиотек используйте JHtml::_('script') с необходимыми параметрами. Например:

JHtml::_('jquery.ui');
JHtml::script('com_mycomp/jqueryplugin.js', false, true);

Это подключит библиотеку jQuery (если она не была подключена ранее) и файл /media/com_mycomp/js/jqueryplugin.js. Хорошей практикой считается использовать папку media для расположения скриптов. Подробнее об этом вы можете прочитать в статье "Используйте папку media для разрешения переопределения медиаданных".

Оригинальная статья: Joomla Docs
Dmitry Rekun
Работаю в банковской сфере, а с веб-разработкой (непосредственно с Joomla) столкнулся в 2007 году. Теперь это моё хобби и время от времени вторая работа. Какое-то время вёл свой блог, но решил попробовать работать в команде. И вот c 2012 года я здесь :)