103 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			103 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace app\widget; | ||
|  | 
 | ||
|  | use app\model\Category; | ||
|  | use app\model\ConfigSetting; | ||
|  | use think\facade\Config as CConfig; | ||
|  | use think\facade\View; | ||
|  | 
 | ||
|  | class Menu | ||
|  | { | ||
|  |     public function index_bak($categoryId = 0,$menutwo = false) | ||
|  |     { | ||
|  |         $configExtraBase = ConfigSetting::getConfigContentsByName('extraBase'); | ||
|  | 
 | ||
|  |         $menus         = Category::getListForFrontMenu(); | ||
|  |         $allCategories = Category::getList(false); | ||
|  |         foreach ($menus as &$menu) { | ||
|  |             $menu['children_ids'] = []; | ||
|  |             $menusGroup           = []; | ||
|  |             if (isset($menu['children'])) { | ||
|  |                 $menu['children_ids'] = array_column($menu['children'], 'id'); | ||
|  |                 foreach ($menu['children'] as $child) { | ||
|  |                     $menusGroup[$child['group_name']][] = $child; | ||
|  |                 } | ||
|  |             } | ||
|  | 
 | ||
|  |             $menu['menus_group']         = $menusGroup; | ||
|  |             $menu['all_subordinate_ids'] = $this->getAllSubordinateIds($allCategories, $menu['id']); | ||
|  |             $menu['isActive']            = 0; | ||
|  |             if ($categoryId == $menu['id'] || in_array($categoryId, $menu['all_subordinate_ids'])) { | ||
|  |                 $menu['isActive'] = 1; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         var_dump($menutwo); | ||
|  |         $data = [ | ||
|  |             'categoryId' => $categoryId, | ||
|  |             'menus'      => $menus, | ||
|  |             'extraBase'  => $configExtraBase, | ||
|  |             'menutwo'  => $menutwo?'headertwo':"" | ||
|  |         ]; | ||
|  |         return View::assign($data)->fetch('public/menu'); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function index($categoryId = 0,$menutwo = false) | ||
|  |     { | ||
|  | //        $menus         = Category::getListForFrontMenu();
 | ||
|  | //        $allCategories = Category::getList(false);
 | ||
|  | //        foreach ($menus as &$menu) {
 | ||
|  | //            $menu['children_ids'] = [];
 | ||
|  | //            $menusGroup           = [];
 | ||
|  | //            if (isset($menu['children'])) {
 | ||
|  | //                $menu['children_ids'] = array_column($menu['children'], 'id');
 | ||
|  | //                foreach ($menu['children'] as $child) {
 | ||
|  | //                    $menusGroup[$child['group_name']][] = $child;
 | ||
|  | //                }
 | ||
|  | //            }
 | ||
|  | //
 | ||
|  | //            $menu['menus_group']         = $menusGroup;
 | ||
|  | //            $menu['all_subordinate_ids'] = $this->getAllSubordinateIds($allCategories, $menu['id']);
 | ||
|  | //            $menu['isActive']            = 0;
 | ||
|  | //            if ($categoryId == $menu['id'] || in_array($categoryId, $menu['all_subordinate_ids'])) {
 | ||
|  | //                $menu['isActive'] = 1;
 | ||
|  | //            }
 | ||
|  | //        }
 | ||
|  | //
 | ||
|  | //        $data = [
 | ||
|  | //            'categoryId' => $categoryId,
 | ||
|  | //            'menus'      => $menus,
 | ||
|  | //        ];
 | ||
|  |         $data = [ | ||
|  |             'menutwo'  => $menutwo?'headertwo':"" | ||
|  |         ]; | ||
|  |         return View::assign($data)->fetch('public/menu'); | ||
|  |     } | ||
|  | 
 | ||
|  |     // 所有下级栏目ID
 | ||
|  |     private function getAllSubordinateIds($items, $curId = 0) | ||
|  |     { | ||
|  |         $list = []; | ||
|  |         foreach ($items as $k => $item) { | ||
|  |             if ($item['parent_id'] == $curId) { | ||
|  |                 $list[] = $item['id']; | ||
|  |                 unset($items[$k]); | ||
|  |                 $childrenIds = $this->getAllSubordinateIds($items, $item['id']); | ||
|  |                 if ($childrenIds) { | ||
|  |                     $list = array_merge($list, $childrenIds); | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  |         return $list; | ||
|  |     } | ||
|  | 
 | ||
|  |     public function simple() | ||
|  |     { | ||
|  |         $data = [ | ||
|  |             'extraBase' => ConfigSetting::getConfigContentsByName('extraBase') | ||
|  |         ]; | ||
|  |         return View::assign($data)->fetch('public/menu_simple'); | ||
|  |     } | ||
|  | } |