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');
 | 
						|
    }
 | 
						|
} |