У меня есть шаблон, который работает в Joomla 3.9.1. и в Joomla 4 Alfa 1 до Alfa 3, но прекратили работу в последних версиях Joomla4 Alfa, Alfa 5 e Alfa 6.
Шаблон должен отображать горизонтальное меню, подобное этому
Горизонтальное меню в J4 Alfa3
но вместо этого он показывает такой как
Горизонтальное меню в J4 Alfa6
глядя на сгенерированный код, я вижу, что J4 A6 генерирует другой код от J4 A3.
код, созданный в J4 A3
код, созданный в J4 A6
J4A6 должен сгенерировать класс "lcp_hmenu", но сгенерирует класс "menu".
Просмотр кода в html \ mod_menu \ default.php
<?php
defined('_JEXEC') or die;
require_once dirname(__FILE__) . str_replace('/', DIRECTORY_SEPARATOR, '/../../functions.php');
// Note. It is important to remove spaces between elements.
$tag = ($params->get('tag_id') != NULL) ? ' id="' . $params->get('tag_id') . '"' : '';
if (isset($attribs['name']) && $attribs['name'] == 'user3') {
$menutype = 'horizontal';
$start = $params->get('startLevel');
// render subitems or not.
$subitems = $GLOBALS['artx_settings']['menu']['show_submenus'] && 1 == $params->get('showAllChildren');
// true - skip current node, false - render current node.
$skip = false;
echo '<ul class="lcp-hmenu"' . $tag . '>';
......
Я вижу, что правильный код генерируется, только если $ attribs ['name'] == 'user3'.
Я не знаю почему, но в J4 A6 эта переменная не установлена, и поэтому меню отображается неправильно.
Модуль "mainmenu" находится в положении "user3", поэтому он должен работать.
Кто-нибудь знает, где установлена переменная $ attribs?
Спасибо