function update_mini_menus_list($update_cache = true) { global $Sql; import('io/filesystem/folder'); $m_menus_directory = new Folder(PATH_TO_ROOT . '/menus'); $m_menus_list = $m_menus_directory->get_folders(); $menus_names = array(); $installed_menus_names = array(); $processed_folders = array(); foreach ($m_menus_list as $menu) { $menus_names[] = $menu->get_name(); } $query = "SELECT title FROM " . DB_TABLE_MENUS . " WHERE\n class='" . strtolower(MINI_MENU__CLASS) . "';"; $result = $Sql->query_while($query . ";", __LINE__, __FILE__); while ($menu = $Sql->fetch_assoc($result)) { $menu_folder = substr($menu['title'], 0, strpos($menu['title'], '/')); if (!in_array($menu_folder, $processed_folders)) { if (!in_array($menu_folder, $menus_names)) { MenuService::delete_mini_menu($menu_folder); } else { $installed_menus_names[] = $menu['title']; } $processed_folders[] = $menu_folder; } } $Sql->query_close($result); foreach ($m_menus_list as $menu) { MenuService::add_mini_menu($menu, $installed_menus_names); } if ($update_cache) { MenuService::generate_cache(); } }