parent_id = $form_model->getItem('parent_id'); $model->icon_file = $form_model->getItem('icon_file'); $model->icon_font = $form_model->getItem('icon_font'); $model->label = $form_model->getItem('label'); $model->url = $form_model->getItem('url'); $model->status = $form_model->getItem('status'); if ($model->save()){ return $model; } return false; } public function update(FormModel $form_model, Menu $menuItem): false|Menu { $menuItem->parent_id = $form_model->getItem('parent_id'); $menuItem->icon_file = $form_model->getItem('icon_file'); $menuItem->icon_font = $form_model->getItem('icon_font'); $menuItem->label = $form_model->getItem('label'); $menuItem->url = $form_model->getItem('url'); $menuItem->status = $form_model->getItem('status'); if ($menuItem->save()){ return $menuItem; } return false; } public static function createLabelArr(): array { $labelArr[0] = "Корневой пункт меню"; foreach (Menu::where("parent_id", 0)->get()->toArray() as $menuItem) { $labelArr[$menuItem['id']] = $menuItem['label']; } if (!empty($labelArr)) { return $labelArr; } return []; } public static function getChild(int $id) { $collection = Menu::where("parent_id", $id)->get(); if (!$collection->isEmpty()){ return $collection; } return false; } public static function hasActiveChild(int $id): bool { $child = self::getChild($id); if (!$child->isEmpty()){ foreach ($child as $item){ // if ($item->url === \kernel\Request::getUrlPath()){ // return true; // } if (strripos(Request::getUrlPath(), $item->url) !== false) { return true; } } } return false; } public static function isActive($url): bool { if ($url === Request::getUrlPath()){ return true; } else { if (strripos(\kernel\Request::getUrlPath(), ($url . "/page")) !== false) { return true; } } return false; } }