Menu: New option to set icon colors.

This commit is contained in:
fusionate
2025-03-03 14:08:05 -07:00
parent 7d62cc1e63
commit 7b3b3aa5f9
7 changed files with 57 additions and 12 deletions

View File

@@ -427,6 +427,7 @@ if (!class_exists('menu')) {
$menu_item_parent_uuid = $uuid_array[$menu['parent_uuid']] ?? null;
$menu_item_category = $menu['category'];
$menu_item_icon = $menu['icon'] ?? null;
$menu_item_icon_color = $menu['icon_color'] ?? null;
$menu_item_path = $menu['path'];
$menu_item_order = $menu['order'] ?? null;
$menu_item_description = $menu['desc'] ?? null;
@@ -471,6 +472,7 @@ if (!class_exists('menu')) {
$array['menu_items'][$x]['menu_item_link'] = $menu_item_path;
$array['menu_items'][$x]['menu_item_category'] = $menu_item_category;
$array['menu_items'][$x]['menu_item_icon'] = $menu_item_icon;
$array['menu_items'][$x]['menu_item_icon_color'] = $menu_item_icon_color;
if (!empty($menu_item_order)) {
$array['menu_items'][$x]['menu_item_order'] = $menu_item_order;
}
@@ -745,7 +747,7 @@ if (!class_exists('menu')) {
//get the menu from the database
$sql = "select i.menu_item_link, l.menu_item_title as menu_language_title, ";
$sql .= "i.menu_item_title, i.menu_item_protected, i.menu_item_category, ";
$sql .= "i.menu_item_icon, i.menu_item_uuid, i.menu_item_parent_uuid ";
$sql .= "i.menu_item_icon, i.menu_item_icon_color, i.menu_item_uuid, i.menu_item_parent_uuid ";
$sql .= "from v_menu_items as i, v_menu_languages as l ";
$sql .= "where i.menu_item_uuid = l.menu_item_uuid ";
$sql .= "and l.menu_language = :menu_language ";
@@ -814,7 +816,7 @@ if (!class_exists('menu')) {
}
//get the child menu from the database
$sql = "select i.menu_item_link, l.menu_item_title as menu_language_title, i.menu_item_title, i.menu_item_protected, i.menu_item_category, i.menu_item_icon, i.menu_item_uuid, i.menu_item_parent_uuid ";
$sql = "select i.menu_item_link, l.menu_item_title as menu_language_title, i.menu_item_title, i.menu_item_protected, i.menu_item_category, i.menu_item_icon, i.menu_item_icon_color, i.menu_item_uuid, i.menu_item_parent_uuid ";
$sql .= "from v_menu_items as i, v_menu_languages as l ";
$sql .= "where i.menu_item_uuid = l.menu_item_uuid ";
$sql .= "and l.menu_language = :menu_language ";
@@ -854,6 +856,7 @@ if (!class_exists('menu')) {
$menu_item_link = $row['menu_item_link'];
$menu_item_category = $row['menu_item_category'];
$menu_item_icon = $row['menu_item_icon'];
$menu_item_icon_color = $row['menu_item_icon_color'];
$menu_item_uuid = $row['menu_item_uuid'];
$menu_item_parent_uuid = $row['menu_item_parent_uuid'];
@@ -1010,7 +1013,7 @@ if (!class_exists('menu')) {
$mod_a_3 = ($menu_parent['menu_item_category'] == 'external') ? "target='_blank' " : null;
if ($this->settings->get('theme', 'menu_main_icons', true) === true) {
if (!empty($menu_parent['menu_item_icon']) && substr($menu_parent['menu_item_icon'], 0, 3) == 'fa-') { // font awesome icon
$menu_main_icon = "<span class='".escape($menu_parent['menu_item_icon'])."' title=\"".escape($menu_parent['menu_language_title'])."\"></span>";
$menu_main_icon = "<span class='".escape($menu_parent['menu_item_icon'])."' ".(!empty($menu_parent['menu_item_icon_color']) ? "style='color: ".$menu_parent['menu_item_icon_color']." !important;'" : null)." title=\"".escape($menu_parent['menu_language_title'])."\"></span>";
}
else {
$menu_main_icon = null;
@@ -1043,7 +1046,7 @@ if (!class_exists('menu')) {
$menu_sub_icon = null;
if ($this->settings->get('theme', 'menu_sub_icons', true) !== false) {
if (!empty($menu_sub['menu_item_icon']) && substr($menu_sub['menu_item_icon'], 0, 3) == 'fa-') { // font awesome icon
$menu_sub_icon = "<span class='".escape($menu_sub['menu_item_icon'])."'></span>";
$menu_sub_icon = "<span class='".escape($menu_sub['menu_item_icon'])."' style='".(!empty($menu_sub['menu_item_icon_color']) ? "color: ".$menu_sub['menu_item_icon_color']." !important;" : "opacity: 0.3;")."'></span>";
}
else {
$menu_sub_icon = null;
@@ -1211,7 +1214,7 @@ if (!class_exists('menu')) {
$html .= " <div class='menu_side_item_main_sub_icons' style='float: right; margin-right: -1px; ".($menu_side_state != 'expanded' ? "display: none;" : null)."'><i id='sub_arrow_".$menu_item_main['menu_item_uuid']."' class='sub_arrows ".$this->settings->get('theme', 'menu_side_item_main_sub_icon_expand', 'fa-solid fa-chevron-down')." fa-xs'></i></div>\n";
}
if (!empty($menu_item_main['menu_item_icon']) && substr($menu_item_main['menu_item_icon'], 0, 3) == 'fa-') { // font awesome icon
$html .= "<i class='menu_side_item_icon ".$menu_item_main['menu_item_icon']." fa-fw' style='z-index: 99800; margin-right: 8px;'></i>";
$html .= "<i class='menu_side_item_icon ".$menu_item_main['menu_item_icon']." fa-fw' style='z-index: 99800; margin-right: 8px; ".(!empty($menu_item_main['menu_item_icon_color']) ? "color: ".$menu_item_main['menu_item_icon_color']." !important;" : null)."'></i>";
}
$html .= "<span class='menu_side_item_title' style='".($menu_side_state != 'expanded' ? "display: none;" : null)."'>".$menu_item_main['menu_language_title']."</span>";
$html .= "</a>\n";
@@ -1222,7 +1225,7 @@ if (!class_exists('menu')) {
$menu_sub_icon = null;
if ($this->settings->get('theme', 'menu_sub_icons', true) !== false) {
if (!empty($menu_item_sub['menu_item_icon']) && substr($menu_item_sub['menu_item_icon'], 0, 3) == 'fa-') { // font awesome icon
$menu_sub_icon = "<span class='".escape($menu_item_sub['menu_item_icon']).(substr($menu_item_sub['menu_item_icon'], 0, 3) == 'fa-' ? ' fa-fw' : null)."'></span>";
$menu_sub_icon = "<span class='".escape($menu_item_sub['menu_item_icon']).(substr($menu_item_sub['menu_item_icon'], 0, 3) == 'fa-' ? ' fa-fw' : null)."' style='".(!empty($menu_item_sub['menu_item_icon_color']) ? "color: ".$menu_item_sub['menu_item_icon_color']." !important;" : "opacity: 0.3;")."'></span>";
}
else {
$menu_sub_icon = null;