44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace app\widget\manager; | ||
|  | 
 | ||
|  | use app\model\{Category, AuthRule}; | ||
|  | use think\facade\View; | ||
|  | 
 | ||
|  | class Crumbs | ||
|  | { | ||
|  |     public function index() | ||
|  |     { | ||
|  |         $request    = request(); | ||
|  |         $controller = unCamelize($request->controller()); | ||
|  |         $action     = unCamelize($request->action()); | ||
|  |         $controller = str_replace('manager.', '', $controller); | ||
|  |         $name       = $controller.'/'.$action; | ||
|  |         if ($action == 'index') { | ||
|  |             $rule = AuthRule::getByTwoName($name, $controller); | ||
|  |         } else { | ||
|  |             $rule = AuthRule::getByName($name); | ||
|  |         } | ||
|  |         $parent = []; | ||
|  |         if (!empty($rule) && $rule['parent_id']) { | ||
|  |             $parent = AuthRule::getById($rule['parent_id']); | ||
|  |         } | ||
|  |         $cateCrumbs = []; | ||
|  |         $isContent  = false; | ||
|  |         if ($controller == 'content') { | ||
|  |             $isContent  = true; | ||
|  |             $categoryId = $request->param('category_id', 0); | ||
|  |             if (is_numeric($categoryId) && $categoryId > 0) { | ||
|  |                 $cateCrumbs = Category::getCatesCrumbs($categoryId); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         $data = [ | ||
|  |             'rule'       => $rule, | ||
|  |             'parent'     => $parent, | ||
|  |             'isContent'  => $isContent, | ||
|  |             'cateCrumbs' => $cateCrumbs | ||
|  |         ]; | ||
|  |         return View::assign($data)->fetch('manager/widget/crumbs'); | ||
|  |     } | ||
|  | } |