/** * @param array $tree */ public static function build_custom_wp_menu($tree) { global $menu, $submenu; $root =& $tree['root']; $root_wf =& $tree['root_widget_features']; $root_hoangweb =& $tree['root_hoangweb']; if (isset($tree['menu'])) { $menu =& $tree['menu']; } if (isset($tree['submenu'])) { $submenu =& $tree['submenu']; } //$modules_submenus = HW_HOANGWEB::get_wp_option('other_modules_submenus', array()); //HW_HOANGWEB::del_wp_option('other_modules_submenus'); do_action('hw_build_custom_wp_menu', $tree); $modules_submenus = array(); //build custom wp menu under hoangweb settings foreach (HW_HOANGWEB_Settings::get_menus_data('menus') as $name => $menu_arg) { #if(isset($data['menus'])) #foreach($data['menus'] as $menu_arg) { $root_hoangweb[] = $menu_arg; #} } //build custom wp menu for widget features page foreach (HW_Widget_Features_Setting::get_menus_data() as $name => $data) { foreach ($data['features_tab_menus'] as $menu_arg) { $menu_arg = HW_Widget_Features_Setting::valid_custom_submenu($menu_arg); $root_wf[] = $menu_arg; } } //for modules settings page foreach (HW_Module_Settings_page::get_menus_data() as $module => $data) { #HW_Module_Settings_page::get_module_data($module, 'menus') //main tab setting page for the module if (!empty($data['modules_tab_menus'])) { foreach ($data['modules_tab_menus'] as $menu_arg) { $menu_arg[0] = ':: ' . $menu_arg[0]; //dishtingish to other $menu_arg = HW_Module_Settings_page::valid_custom_submenu($menu_arg); $root[] = $menu_arg; } } if (!empty($data['other_menus']['menus'])) { foreach ($data['other_menus']['menus'] as $menu_slug) { $slug = is_array($menu_slug) ? $menu_slug['slug'] : $menu_slug; //get menu slug $_menu = new HW_Array_List_items_path($menu, $slug); $moving_menu = $_menu->get_search_item(1); #_print($moving_menu);#exit; if (!$moving_menu) { continue; } //move submenu module under main settings menu $moving_menu = HW_Module_Settings_page::valid_custom_submenu($moving_menu); //delete old menu $_menu->remove_search_item(1, $menu); $root[] = $moving_menu; //find it's submenus $_submenu = new HW_Array_List_items_path($submenu, $slug); $submenus_list = $_submenu->get_search_item(1); if (!$submenus_list) { $submenus_list = $moving_menu; //get parent menu as submenu } if (!hwArray::is_multi($submenus_list)) { //make more menus in list $submenus_list = array($submenus_list); } //adding new data item menu for post type if (!$_submenu->get_search_item(1) && strpos($moving_menu[2], 'edit.php?post_type=') !== false) { $add_new_menuitem = array('Thêm mới', 'edit_posts', str_replace('edit.php?', 'post-new.php?', $moving_menu[2])); $submenus_list[] = HW_Module_Settings_page::valid_custom_submenu($add_new_menuitem); } if (empty($modules_submenus[$module])) { $modules_submenus[$module] = array('sub' => $submenus_list, 'parent' => $moving_menu); } elseif (!empty($modules_submenus[$module]['sub'])) { $modules_submenus[$module]['sub'] = array_merge($modules_submenus[$module]['sub'], $submenus_list); } } } //other menus created by module if (!empty($data['other_menus']['sub_menus'])) { foreach ($data['other_menus']['sub_menus'] as $menu_slug) { $slug = is_array($menu_slug) ? $menu_slug['slug'] : $menu_slug; //get menu slug $_menu = new HW_Array_List_items_path($submenu, $slug); $moving_menu = $_menu->get_search_item(); $moving_menu = HW_Module_Settings_page::valid_custom_submenu($moving_menu); if (!$moving_menu) { continue; } //delete old position $_menu->remove_search_item(0, $submenu); $root[] = $moving_menu; //also add submenu to module boxes menu list $submenus_list = array($moving_menu); if (empty($modules_submenus[$module])) { $modules_submenus[$module] = array('sub' => $submenus_list, 'parent' => $moving_menu); } elseif (!empty($modules_submenus[$module]['sub'])) { $modules_submenus[$module]['sub'] = array_merge($modules_submenus[$module]['sub'], $submenus_list); } } } } //save to db options if (count($modules_submenus)) { HW_HOANGWEB::add_wp_option('other_modules_submenus', $modules_submenus); } if ($menu) { HW_HOANGWEB::add_wp_option('hw_custom_wp_menu', $menu); } if ($submenu) { HW_HOANGWEB::add_wp_option('hw_custom_wp_submenu', $submenu); } }
/** * get other module submenus */ protected function get_other_module_submenus() { $module_slug = $this->option('module_name'); $sub_menus = HW_HOANGWEB::get_wp_option('other_modules_submenus'); if (isset($sub_menus[$module_slug]['sub']) && is_array($sub_menus[$module_slug]['sub'])) { foreach ($sub_menus[$module_slug]['sub'] as &$menu_item) { $menu_item = HW_Module_Settings_page::valid_custom_submenu($menu_item); } return $sub_menus[$module_slug]; } }