From f9d12c07cce9cc29a739c38565829235a052b66b Mon Sep 17 00:00:00 2001 From: sergeybodin Date: Tue, 6 Jun 2023 13:16:18 +0300 Subject: [PATCH] menu --- database/seeders/Pages/PagesTableSeeder.php | 90 ++++++++++++++++++--- 1 file changed, 81 insertions(+), 9 deletions(-) diff --git a/database/seeders/Pages/PagesTableSeeder.php b/database/seeders/Pages/PagesTableSeeder.php index e6b8e01..104d8a7 100644 --- a/database/seeders/Pages/PagesTableSeeder.php +++ b/database/seeders/Pages/PagesTableSeeder.php @@ -6,7 +6,8 @@ use App\Models\Pages\Page; use Illuminate\Database\Seeder; use Illuminate\Support\Str; -class PagesTableSeeder extends Seeder { +class PagesTableSeeder extends Seeder +{ public array $pages = [ 'О центре' => [ 'children' => [ @@ -54,34 +55,105 @@ class PagesTableSeeder extends Seeder { ] ], 'Деятельность' => [ - + 'children' => [ + 'Нормирование и стандартизация' => [ + 'children' => [ + 'Реестр сводов правил' => [], + 'Разработка сводов правил' => [], + 'Прикладные исследования' => [], + 'Реестр нормативно-технической документации' => [], + 'Методические материалы' => [], + ] + ], + 'Оценка пригодности' => [ + 'children' => [ + 'Реестр технических свидетельств' => [], + 'Заявка на оформление' => [], + 'Предварительная заявка' => [], + ] + ], + 'Технический комитет 465 «Строительство»' => [ + 'children' => [ + 'Руководство' => [], + 'Секретариат' => [], + 'Структура' => [], + 'Состав' => [], + 'Документы' => [], + 'АИС ТК 465 «Строительство»' => [], + ] + ], + 'СТУ' => [ + 'children' => [ + 'Запись на консультацию' => [], + 'Документы' => [], + 'Протоколы заседания НТС' => [], + 'Ответы на часто задаваемые вопросы' => [], + ] + ], + 'КСИ' => [ + 'children' => [ + '' => [], + ] + ], + 'Добровольная сертификация' => [ + 'children' => [ + 'О системе' => [], + 'Основополагающие документы' => [], + 'Решения ЦОС' => [], + 'Руководящие документы' => [], + 'Реестры' => [], + 'Бланки документов' => [], + ] + ], + 'Международная деятельность' => [ + 'children' => [ + 'ISO' => [], + 'МТК 465 «Строительство»' => [], + 'Межправительственный совет' => [], + 'Базовая организация СНГ' => [], + ] + ], + ] ], 'Коммерческие услуги' => [ - + 'children' => [ + 'Сопровождение экспертизы и утверждения СП и ГОСТ' => [], + 'Сопровождение разработки и утверждения СП и ГОСТ' => [], + 'Консалтинговые услуги по разработке СП и ГОСТ' => [], + 'Экспертиза СТО и ТУ' => [], + 'Редактирование и нормоконтроль' => [], + ] ], 'Пресс-центр' => [ - + 'children' => [ + 'Новости' => [], + 'СМИ о нас' => [], + 'Фотогалерея' => [], + 'Видеоархив' => [], + 'Контакты для СМИ' => [], + ] ], 'Контакты' => [ - ] ]; - public function run() { + public function run() + { $ord = 0; - collect($this->pages)->each(function($data, $name) use(&$ord) { + collect($this->pages)->each(function ($data, $name) use (&$ord) { $data['ord'] = $ord++; $this->importPage($name, $data); }); } - public function importPage($name, $data, ?Page $parent = null) { + public function importPage($name, $data, ?Page $parent = null) + { $slug = Str::slug(Str::transliterate($name)); $page = Page::firstOrCreate(['parent_id' => $parent->id ?? 0, 'slug' => $slug]); $page->update(['name' => $name]); if ($v = collect($data)->except('children')->all()) $page->update($v); $ord = 0; - collect($data['children'] ?? [])->each(function($data, $name) use($page, &$ord) { + collect($data['children'] ?? [])->each(function ($data, $name) use ($page, &$ord) { $data['ord'] = $ord++; $this->importPage($name, $data, $page); });