Плагины совместимости в Joomla: как включить Legacy Mode
При обновлении Joomla расширения, написанные для старых версий, могут перестать работать — они используют устаревшие API, которые удалены в новых версиях. Для таких случаев в Joomla существуют плагины совместимости (Legacy Mode). Они восстанавливают поддержку старых API и дают разработчикам расширений время обновить код. В Joomla 1.5 это был плагин System - Legacy, в Joomla 4, 5 и 6 — аналогичные плагины совместимости для каждого поколения.
Зачем нужен плагин совместимости
При каждом мажорном релизе Joomla часть старых функций и классов объявляется устаревшими (deprecated) и в следующей мажорной версии удаляется. Плагин совместимости «возвращает» эти функции через слой эмуляции, чтобы старые расширения продолжали работать без изменения кода.
Joomla 4 — плагин совместимости с Joomla 3
В Joomla 4 включён плагин System - Joomla! 3 Content Plugins Compatibility. Он позволяет работать контент-плагинам, написанным для Joomla 3, которые используют старые события (onBeforeDisplayContent, onAfterDisplayContent и др.).
Как включить:
- Откройте Система → Плагины
- Найдите плагин System - Joomla! 3 Content Plugins Compatibility
- Включите его и сохраните
Joomla 5 — плагин совместимости с Joomla 4
В Joomla 5 аналогичный плагин обеспечивает совместимость с расширениями для Joomla 4, использующими устаревшие API.
Как включить:
- Откройте Система → Плагины
- В строке поиска введите compatibility или backward
- Найдите плагин совместимости и включите его
- Сохраните и проверьте работу расширения
Joomla 6 — плагин совместимости с Joomla 5
По той же схеме: Joomla 6 поставляется с плагином совместимости для расширений под Joomla 5. Найти его можно в том же разделе — Система → Плагины, поиск по compatibility.
Историческая справка: Legacy Mode в Joomla 1.5
Концепция плагина совместимости появилась ещё в Joomla 1.5 — тогда он назывался System - Legacy и обеспечивал работу расширений для Joomla 1.0. Включался через Расширения → Менеджер плагинов → System - Legacy → Опубликовать. Этот подход стал стандартным для всех последующих мажорных версий Joomla.
Если плагин совместимости не помогает
Не все несовместимости решаются плагином — он покрывает только определённый набор устаревших API. Если расширение всё равно не работает:
- Проверьте наличие обновлённой версии расширения на сайте разработчика
- Поищите альтернативное расширение с аналогичным функционалом
- Обратитесь к разработчику расширения — возможно, обновление уже в работе
- Проверьте JED (Joomla Extensions Directory) — там есть фильтр по совместимости с версией Joomla