Импорт jQuery в Joomla

Я уже более года работает разработчиком Joomla. Я изо всех сил пытался импортировать jQuery в joomla каждый день. Joomla поставляется с mootools. Когда я импортирую jQuery, он сбой. Также, когда я создаю модули, мне приходится импортировать jQuery в каждый модуль, что делает сайт медленным. Иногда это приводит к сбою всего сайта. Я хочу, чтобы оба mootools и jquery работали рука об руку, поэтому я могу использовать оба без каких-либо сбоев.

Какой лучший способ импортировать jQuery в Joomla? Существует ли конкретное место, где нужно импортировать одну библиотеку jquery на весь сайт (как бэкэнд, так и интерфейс)?

благодаря

Ответ 1

Это код, который мы используем для обеспечения импорта только 1 копии jQuery. Он просто проверяет, уже ли импортирован jQuery, а если нет, то мы импортируем его :)

Joomla 2.5

<?php
  $app = JFactory::getApplication();
  if (!$app->get('jquery'))
  {
     $app->set('jquery', true);
     JFactory::getDocument()->addScript(JUri::root() . 'templates/template_name/js/jquery.js');
  }
?>

Joomla 3.x (без конфликтного режима):

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

Joomla 3.x (обычный режим):

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

Вам нужно вставить этот код в index.php вашего шаблона, желательно около вершины, чтобы вы помнили, где он находится. Если вы не хотите переопределять файл index.php вашего шаблона, вы также можете разработать небольшой плагин

Обновить:

Как сказал Бобби. Многие расширения включают в себя собственную копию jQuery, и многие из них не используют этот метод и, следовательно, конфликтуют. Все, что я знаю, это то, что любой хороший разработчик должен знать, что несколько jQuery-библиотек вызывают конфликты и должны использовать этот код.

Ответ 2

Это отличный плагин.

http://extensions.joomla.org/extensions/core-enhancements/performance/jquery-scripts/18327

Этот плагин призван помочь очистить и разрешить проблемы переднего и заднего конца при использовании экземпляров jQuery вместе с библиотеками Mootools.

ЧТО ЭТО ОТНОСИТСЯ В КОРОБКЕ

  • вызывает библиотеки jQuery jQuery и jQuery из CDN Google (с протоколом или без него), но вы также можете сделать это локально,
  • размещает библиотеки jQuery после того, как MooTools требует идеальной совместимости,
  • добавляет код noConflict() вместе с вызовом библиотеки jQuery,
  • выделяет дополнительные библиотеки jQuery и jQuery UI, включая вызовы noConflict(), добавленные другими модулями или плагинами,
  • позволяет вам выбрать базовый стиль jQuery UI или настраиваемую тему.

ЧТО ВЫ МОЖЕТЕ ДВУХ

  • отключить библиотеки MooTools ориентировочно в интерфейсе,
  • включить или отключить плагин в определенных частях сайта, от шаблона до отдельной страницы,
  • использовать отчеты для получения отзывов о том, что сделал движок плагина,
  • добавлять или удалять скрипты и таблицы стилей,
  • полоски пустых строк, оставленные изменениями, внесенными на страницу,
  • запретить удаление некоторых библиотек,
  • изменить способ работы двигателя по умолчанию (не добавлять и не удалять код noConflict()...),

Ответ 3

Используйте Joomla! 3.0 - если вы потратили долгое время, вы должны помочь с Joomla! JavaScript Working Group, которая была создана для решения этой проблемы.

Ответ 4

В Joomla 3.x JApplication больше не распространяется на JObject, что означает, что если вы хотите использовать тот же код в своем расширении для Joomla 2.5 и Joomla 3.x, тогда вам нужно написать условие if

if (!version_compare(JVERSION, '3', 'ge') && !JFactory::getApplication()->get('jquery', false)) {

В противном случае это рухнет! Пример можно найти здесь: https://github.com/Digital-Peak/DPExtensions/blob/master/mod_dpslider/tmpl/default.php#L13