Важная информация для владельцев сайтов с кастомными переопределениями! После выхода обновлений Joomla 5.4.7 и 6.1.2 некоторые владельцы сайтов столкнулись с проблемой — перестали работать переопределения материалов (article_layout), указанные в параметрах материалов.

Проблема заключается в том, что в этих версиях Joomla перестала учитываться альтернативная верстка (layout), выбранная для отдельного материала, если для него нет отдельного пункта меню. Вместо кастомного макета отображается стандартный.

Кто в зоне риска?

В зоне риска находятся сайты, на которых:

  • Установлено обновление Joomla 5.4.7 или 6.1.2;
  • Используются кастомные переопределения материалов (например, article_layout), заданные в параметрах конкретной статьи.

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

Решение проблемы

Разработчики Joomla уже знают об этой проблеме, и ожидается, что она будет исправлена в следующем релизе. Однако на данный момент есть два способа решения:

Вариант 1: Отложить обновление

Если вы еще не обновили свой сайт до Joomla 5.4.7 или 6.1.2, повремените с обновлением, особенно если у вас активно используются переопределения. Дождитесь следующего патча, где эту регрессию должны исправить.

Вариант 2: Временный фикс (для уже обновленных сайтов)

Если обновление уже установлено и переопределения сломались, есть временное решение . Оно заключается в ручном исправлении файла /components/com_content/src/Model/ArticleModel.php.

  1. Откройте файл /components/com_content/src/Model/ArticleModel.php.
  2. Найдите строку (она была добавлена в коммите #47752):
    $data->metadata = new Registry($data->metadata);
  3. Перед этой строкой вставьте следующий блок кода:
// TEMPORARY FIX for regression from #47752: article_layout is no longer 
// forwarded to $data->params. Remove once fixed upstream.
if ($registry->get('article_layout')) {
$data->params->set('article_layout', $registry->get('article_layout'));
}

После этого изменения переопределения должны заработать как раньше.

Важно:
Это временное решение. После выхода следующего обновления Joomla, где проблема будет исправлена официально, рекомендуется удалить этот фикс и обновить сайт штатным способом.

Рекомендация

Если у вас есть сомнения или вы не уверены, что сможете самостоятельно внести правки в код, отложите обновление до выхода следующего патча от Joomla.

Важно!
Если вы уже обновились и столкнулись с проблемой, но не знаете, как исправить, — обращайтесь к нам за помощью! Мы поможем оперативно восстановить работу переопределений.

Упоминаемые термины:

Переопределение