示例#1
0
 /**
  * @param array $systemRoutes
  * @return array
  */
 public static function getAdminRoutes(array $systemRoutes)
 {
     $routes = array();
     foreach ($systemRoutes as $route => $params) {
         list($httpMethod, $routePattern) = RouterHelper::extractHttpRoute($route);
         if (preg_match('/^\\/admin(\\/|$)/', $routePattern)) {
             if (preg_match('/^\\\\?PSFS/', $params["class"])) {
                 $profile = "superadmin";
             } else {
                 $profile = "admin";
             }
             if (!empty($params["default"]) && preg_match('/(GET|ALL)/i', $httpMethod)) {
                 $_profile = $params["visible"] ? $profile : 'adminhidden';
                 if (!array_key_exists($_profile, $routes)) {
                     $routes[$_profile] = array();
                 }
                 $routes[$_profile][] = $params["slug"];
             }
         }
     }
     if (array_key_exists("superadmin", $routes)) {
         asort($routes["superadmin"]);
     }
     if (array_key_exists("adminhidden", $routes)) {
         asort($routes["adminhidden"]);
     }
     if (array_key_exists('admin', $routes)) {
         asort($routes["admin"]);
     }
     return $routes;
 }