Joomla 1.5 довольно мощная CMS: для нее существует множество расширений, гибкий и мощный API. Кроме того она построена с использованием MVC модели, что позволяет веб-дизайнерам переписывать разметку компонентов в своих шаблонах.
Не смотря на все свои достоинства Joomla! 1.5 до сих пор использует устаревшую версию JavaScript фреймворка MooTools 1.11. Это при том, что в следующей версии библиотеки 1.2.x введено много новых функций и рефакторизирован код. Апгрейд библиотеки разработчики Joomla! планируют в следующей версии CMS. А пока приходится использовать устаревшие решения. Однако, Marco Solazzi предложил вариант самостоятельного апгрейда библиотеки до версии 1.2.x в Joomla! 1.5.9 и выше.
Особенности метода:
1. Почти полная совместимость с Mootools 1.11, чтобы избежать возможных ошибок
2. Обновление плагинов Mootools, там где это возможно
3. Отсутствие или минимальные изменения ядра Joomla
4. Осуществление поддержки Mootools у компонентов, работающих в Legacy (1.0.x) режиме
1. Тихое обновление MooTools
Прежде всего давайте загрузим последнюю версии Core Mootools и Mootools More (сейчас 1.2.3): MooTools 1.2.3 (YUI Compressor65 kb)
Распакуйте архив и поместите два файла в директорию /system/js/
Далее нужно скачать файл совместимости, который будет позволять корректно работать сценариям версии 1.11 с новой версией библиотеки, и поместить его в ту же папку, что и выше. Mootools 1.11 to 1.2.3 for Joomla 1.5 (72.06 KB). В последствии все действия приведенные ниже основываются на использовании файлов из этого архива.
2. Обновление плагинов
Одним из самых полезных плагинов Mootools является Squeezebox, используемых для модальных окон. В архиве скачанном выми выше содержится совместимая с 1.2.x редакцией версия, ее также надо поместить в папку /system/js/:
3-4. Немного PHP
Поскольку переднами стоит задача минимально затрагивать изменения ядра Joomla! то мы используем небольшой трюк, который позволит использовать новую версию MooTools только в фронт-энде и только через вызов его из index.php нашего шаблона.
Joomla базируется на нескольких PHP библиотеках которые находятся в папке libraries/, одна из них Joomla API, а также мы можем найти ezSQL (библиотека для работы с базами данных), PHPMailer (системы работы с почтой) и phpgacl (система контроля доступа). Чтобы воспользоваться встроенными библиотеками Joomla, и в то же время, предотвратить переписывание модификаций в будущих релизах, автор создал папку с названием my_libs в libraries/, содержащую файл с классом my_behavior для Joomla 1.5.x (он также находится в скачанном выше архиве).
По сути класс предоставляет собой статическую функцию, которая заново вызывает заглавную часть объекта документа Joomla!, ищет Mootools и заменяет его на версию 1.2, которую мы загрузили ранее.
Если Mootools не будет найден, то он будет загружены, расширяя таким образом функционал компонентов 1.0.x, которые работают в режиме наследования (Legacy Mode).
Вы можете вызвать этот класс в вашем index.php файле шаблона Joomla! путем размещения этих строк кода перед тегом head
вашего шаблона:
<?php JLoader::import( 'my_libs.behavior' ); MY_Behavior::mootoolsFix(); ?> <jdoc:include type="head" /> |
Если вам нужно обратно переключится в режим работы Joomla! с библиотекой Mootools 1.11, то вам нужно поместить в том же месте следующий код:
MY_Behavior::mootoolsFix(false); |
Внимание! Данный метод работает только на базовой установке Joomla! и может не работать с определенными компонентами.
Например, VirtueMart использует свою логику работы с MooTools и этот метод не работает с ним.
P.S. Мысли о роскоши…
Являются ли автомобили ауди роскошью, а не средством передвижения? По моему да. Если допустим, это авто бизнес-класса, с двигателем литра на 4 и кожаным салоном. Чем не роскошь? Да и цены на подобное «средство передвижения» зачастую доходят до цен на недвижимость за рубежом.
22 ответа к “Обновление библиотеки MooTools до версии 1.2.x в Joomla! 1.5.x”
Можете посоветовать пару толковых источников по созданию шаблонов для Joomla 1.5. На официальных сайтах нормального руководства не нашел.
В принципе, на русском действительно нет. Но все зависит от того что вы хотите. Оптимальный вариант использовать wiki c joomla.org и также и форум, а именно раздел по шаблонам и кастомизации. Было время начал писать свой мануал, но работа не позволяет закончить. Но если есть какие-то конкретные вопросы, то напишите, могу ответить постом.
спасибо, мэн! обновил — щас посмотрю помогло или нет.
Америкосы пишут, что полезная штука mootools… но у вас в статье много чего упущено, к примеру /system/js/ — это бред. по правде там media/system/js, далее: ссылка у вас битая на сайт скрипт. и забыли написать для новичков что нужно не забыть убрать расширение *.txt с файла со скриптом.. ну и другие вещи. А так… статья полезна )))
Спасибо. Поправлю.
не помогло. глюков только больше стало. все равно спасибо
т.е. все нормально установилось. проблема в совместимости. фак(
Спасибо. Помогло!
Сработало! Супер! Спасибо громное!
Где скачивать обновленный Squeezebox (кроме Вашего архива)?
На офсайте не нашел, да и в Joomla! 1.5.20 его почему то не включили (оставили старую версию), хотя обновленный MooTools присутствует.
Спасибо.
Спасибо за быстрый ответ.
У меня в Opera — jQuery (jQuery Cycle Plugin) конфликтует с Mootools — растягивает (СИЛЬНО УВЕЛИЧИВАЕТ) картинку. Отключаю Mootools — все в порядке. (В IE всех версий и FF работает правильно.)
Не могли бы Вы подсказать, как это исправить. Плагин делает красивые эффекты, отказываться не хотелось бы.
Спасибо.
В Joomla 1.5.20 в менеджере плагинов я увидел «Обновление — mootools», нажал включить — и все пропало. Ни сайт ни админка не открываются. Бэкапы еще не успел сделать, так как только 3 часа назад все поставил настроил. Шо делать, люди? Что за …???
Скажите пожалуйста, а можно ли перенести загрузку mootools вниз страницы, если да то как?
Спасиб, умный человек. Хороший совет — сделал и вправду всё заработало!
Идиотский метод тут описан. Нужно просто скачать 3 файла и соединить их в один, как это сейчас сделано в Joomla. И этим файлом заменить тот, что в Joomla. Меньше файлов — быстрее открывается сайт и не нужно что-то мудрить с вызовами.
Огромное спасибо…. Долго искал информацию по переходу на MooTools 1.2. Обязательно поставлю ссылку на Ваш блог…
Ссылки не работают
Спасибо за подсказку и помощь 🙂
Есть ли смысл обновляться, если стоит virtuemart? Для него какая то своя версия mootools? Если да, то как её обновить?