fix: set menu_icon param for submenu items to render icons
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Report Issues (push) Blocked by required conditions
Generic: Repo Health / Access control (push) Successful in 2s
Generic: Repo Health / Site Health (push) Has been skipped
Universal: Auto Version Bump / Version Bump (push) Successful in 14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 13s
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Report Issues (push) Blocked by required conditions
Generic: Repo Health / Access control (push) Successful in 2s
Generic: Repo Health / Site Health (push) Has been skipped
Universal: Auto Version Bump / Version Bump (push) Successful in 14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 13s
Joomla 6's mod_menu only renders the img column as an icon span for level 1 items. For level 2+ items, the menu_icon param in the JSON params column is used instead. Set this param on both new and existing submenu items so icons render correctly.
This commit is contained in:
+27
-12
@@ -341,19 +341,22 @@ class Pkg_MokoSuiteBackupInstallerScript
|
||||
{
|
||||
$submenus = [
|
||||
[
|
||||
'link' => 'index.php?option=com_mokosuitebackup&view=dashboard',
|
||||
'title' => 'COM_MOKOJOOMBACKUP_SUBMENU_DASHBOARD',
|
||||
'img' => 'class:home',
|
||||
'link' => 'index.php?option=com_mokosuitebackup&view=dashboard',
|
||||
'title' => 'COM_MOKOJOOMBACKUP_SUBMENU_DASHBOARD',
|
||||
'img' => 'class:home',
|
||||
'menu_icon' => 'icon-home',
|
||||
],
|
||||
[
|
||||
'link' => 'index.php?option=com_mokosuitebackup&view=backups',
|
||||
'title' => 'COM_MOKOJOOMBACKUP_SUBMENU_BACKUPS',
|
||||
'img' => 'class:database',
|
||||
'link' => 'index.php?option=com_mokosuitebackup&view=backups',
|
||||
'title' => 'COM_MOKOJOOMBACKUP_SUBMENU_BACKUPS',
|
||||
'img' => 'class:database',
|
||||
'menu_icon' => 'icon-database',
|
||||
],
|
||||
[
|
||||
'link' => 'index.php?option=com_mokosuitebackup&view=profiles',
|
||||
'title' => 'COM_MOKOJOOMBACKUP_SUBMENU_PROFILES',
|
||||
'img' => 'class:cog',
|
||||
'link' => 'index.php?option=com_mokosuitebackup&view=profiles',
|
||||
'title' => 'COM_MOKOJOOMBACKUP_SUBMENU_PROFILES',
|
||||
'img' => 'class:cog',
|
||||
'menu_icon' => 'icon-cog',
|
||||
],
|
||||
];
|
||||
|
||||
@@ -390,15 +393,26 @@ class Pkg_MokoSuiteBackupInstallerScript
|
||||
}
|
||||
|
||||
foreach ($submenus as $submenu) {
|
||||
$params = json_encode(['menu_icon' => $submenu['menu_icon']]);
|
||||
|
||||
// Check if this submenu item already exists
|
||||
$query = $db->getQuery(true)
|
||||
->select('COUNT(*)')
|
||||
->select($db->quoteName('id'))
|
||||
->from($db->quoteName('#__menu'))
|
||||
->where($db->quoteName('client_id') . ' = 1')
|
||||
->where($db->quoteName('link') . ' = ' . $db->quote($submenu['link']));
|
||||
->where($db->quoteName('link') . ' = ' . $db->quote($submenu['link']))
|
||||
->setLimit(1);
|
||||
$db->setQuery($query);
|
||||
$existingId = (int) $db->loadResult();
|
||||
|
||||
if ((int) $db->loadResult() > 0) {
|
||||
if ($existingId > 0) {
|
||||
// Update params on existing item to ensure menu_icon is set
|
||||
$query = $db->getQuery(true)
|
||||
->update($db->quoteName('#__menu'))
|
||||
->set($db->quoteName('params') . ' = ' . $db->quote($params))
|
||||
->where($db->quoteName('id') . ' = ' . $existingId);
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -419,6 +433,7 @@ class Pkg_MokoSuiteBackupInstallerScript
|
||||
$table->component_id = $componentId;
|
||||
$table->client_id = 1;
|
||||
$table->img = $submenu['img'];
|
||||
$table->params = $params;
|
||||
$table->language = '*';
|
||||
$table->access = 1;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user