/** * @param $value * * @return $this */ function add($as, $style = 'bg-aqua', $is_curtain = false, $params = []) { // debug_print_backtrace(); // dd(1); if (!Route::isEnable($as)) { return $this; } if (is_string($as) && !count(Route::get($as))) { // dd($as, Route::get($as)); return $this; } $this->children[$as] = ['class' => $style, 'curtain' => $is_curtain, 'params' => $params]; return $this; }
/** * @param $access_name * @param $text * @param $url * @param array $attrs * * @return $this */ function addItem($as, $key, $route_parameters = []) { if (is_string($as)) { if (!Route::isEnable($as)) { return $this; } if (Route::checkRouteFilters($as)) { return $this; } if (!count(Route::get($as))) { return $this; } } if (is_array($as)) { $text = Arr::get($as, 'title'); $icon = Arr::get($as, 'icon'); $url = Arr::get($as, 'url', '#'); $as = Arr::get($as, 'as'); } else { $keys = array_keys($route_parameters); $keys = array_map(function ($item) { return '{' . $item . '}'; }, $keys); $text = str_replace($keys, array_values($route_parameters), Route::get_title($as)); $icon = Route::get_icon($as); $url = \URL::route($as, $route_parameters); } if ($icon) { $text = \HtmlI::setTitle($text)->addClass($icon) . ' ' . \HtmlSpan::setContent($text); } if (!isset($this->maps[$this->section])) { $this->maps[$this->section] = Map::instance(get_called_class() . $this->name . $this->section); } if ($route_parameters) { $key .= '.' . str_replace(['&', '='], ['.', '-'], http_build_query($route_parameters)); } $this->maps[$this->section]->add($key, $as, $text, $url); return $this; }