Несколько фокусов с CMS Joomla
- Дата: 14.09.2024
- Автогенерация и отображение эскизов фотоальбомов модулем RokBox
- Доработка горизонтального меню-списка для динамического разворачивания подпунктов
- Единая кнопка «Сохранить изменения» для корзины Интернет-магазина VirtueMart
- Изменение/снятие ограничений на длину строки поиска и его попутная доработка
- Исправление ссылки на главную/домашнюю в горизонтальном меню старого стиля
- Обновление сайтов на Joomla старых версий 1.5/2.5 до 3.6
- Обновление сайтов на Joomla 3.10.12 до 5.1.4 через 4.4.8
- Отображение заглушки «сайт в разработке» для всех и всего сайта для избранных
- Подсветка пункта меню типа «внешняя ссылка», или Как сделать ссылки на категории VirtueMart
- Преобразование адресов сайта в дружественные (SEF) для внешних нужд
- Реализация двуязычного сайта с постраничным переключением языков
Обновление сайтов на Joomla 3.10.12 до 5.1.4 через 4.4.8
К сожалению, Joomla снова меня подвела, точнее, завела в технологически тупик. 🙁 Снова – потому что до этого она уже делала это дважды:
- С её версии 1.x (в частности, с 1.5) невозможно автоматически обновиться до следующей главной (major) версии 2.х (в частности, до 2.5) – только через «тяжёлое» обновление преимущественно вручную (поэтому один из моих сайтов до сих пор работает на Joomla 1.5.22 от 04.11.2010 😱).
- С её версии 2.x (в частности, с 2.5) невозможно автоматически обновиться до следующей главной версии 3.х (в частности, до 3.10.12) – только через «тяжёлое» обновление преимущественно вручную (поэтому один из ждущих моей адаптации под мобильные сайтов до сих пор работает на Joomla 2.5.28 от 10.12.2014 😮).
Для обоих случаев я ранее публиковал советы по обновлению Joomla с 1.5/2.5 до 3.6, но больше (для обновления с версий 3.х до 5.х через 4.х) я этого делать не буду, так как подобное технологическое пренебрежение работой веб-мастеров заставляет задуматься о смене CMS, что я, де-факто, уже́ сделал – в моём веб-портфолио все последние сайты сделаны на WordPress, и даже 2 Joomla-сайта, которым заказчики захотели сделать редизайн, мне удалось (убедить заказчиков и) перевести с Joomla на WordPress (я работаю с ним с 2014 года и с тех пор он ни разу не заводил меня в технологический тупик).
Тем не менее, есть (заказчики с ограниченными финансовыми возможностями и их) сайты, которые пока так и останутся работать на Joomla, но обновить их всё равно надо, ибо срок поддержки последней Joomla главной версии 3.x, а именно 3.10, выпущенной 17.08.2021, закончился 17.08.2023 (11.07.2023 вышла последняя «заплатка» 3.10.12). На момент написания данного предложения я уже́ обновил 6 Joomla-сайтов с версии 3.10.12 до последней 5.1.4 через 4.4.8 (обе вышли 27.08.2024), но все случаи настолько разные, что выработанный мной общий алгоритм настолько общий, что никакой особой ценности не представляет, а делиться я ниже буду только совсем узкотехничными элементами НИРа по такому обновлению.
Сообщение об ошибке | Старый код | Новый код |
0 – Call to undefined method Joomla\CMS\Application\SiteApplication::isAdmin() . | JFactory::getApplication()->isAdmin() | JFactory::getApplication()->isClient('administrator') |
0 – Call to undefined method Joomla\CMS\Application\SiteApplication::isSite() . | JFactory::getApplication()->isSite() | JFactory::getApplication()->isClient('site') |
0 – Call to undefined method Joomla\CMS\Factory::getURI() . | JFactory::getURI() | Joomla\CMS\Uri\Uri::getInstance() |
0 – Class JRequest not found. | JRequest:: | JFactory::getApplication()-> |
0 – Class JResponse not found. | JResponse::getBody() | JFactory::getApplication()->getBody() |
0 – Class JResponse not found. | JResponse::setBody('…') | JFactory::getApplication()->setBody('…') |
500 – behavior::caption not found. | JHtml::_('behavior.caption') | // JHtml::_('behavior.caption') или
|
0 – Class JSite not found. | if (JSite::getRouter()->getMode() == JROUTER_MODE_SEF)… | if (JFactory::getApplication()->get('sef', false))… |
0 – Cannot access protected property Joomla\CMS\Menu\MenuItem::$params . | $item->params-> | $item->getParams()-> |
Uncaught ReferenceError: jQuery is not definedили Uncaught Error: Bootstrap's JavaScript requires jQuery. | … | JHtml::_('jquery.framework') |
Проблема | Решение |
Не срабатывают настройки «Каталог файлов» и/или «Каталог изображений» на вкладке «Основные» (настройки) «Медиа-менеджера» (/administrator/index.php?option=com_config&view=component&component=com_media ). | Согласовать их с настройкой «Каталоги» на вкладке «Плагин» подключаемого модуля «Файловая система – Локальный каталог» (/administrator/index.php?option=com_plugins&view=plugin&layout=edit&extension_id=… ). |
Если у вас что-то не получается и нужна моя профессиональная помощь – напишите мне по электронной почте или комментарий ниже.