[ 'children' => [ 'История' => [], 'Руководство' => [], 'Документы' => [ 'children' => [ 'Документы об учреждении' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::SIMPLE], 'Нормативные правовые акты' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::SIMPLE], 'Наблюдательный совет' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::CATEGORIZED], 'Государственное задание' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::CATEGORIZED], 'Закупки' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::CATEGORIZED], 'Бухгалтерская отчетность' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::CATEGORIZED], 'Антимонопольное законодательство' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::CATEGORIZED] ] ], 'Противодействие коррупции' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::CATEGORIZED], 'Защита персональных данных' => [], 'Охрана труда' => [] ] ], 'Деятельность' => [ 'children' => [ 'Оценка пригодности' => [ 'children' => [ 'Реестр технических свидетельств' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::TECHNICAL_CERTIFICATES], 'Заявка на оформление' => [], 'Консультационные услуги' => [], ] ], 'ТК 465 «Строительство»' => [ 'children' => [ 'Руководство' => [], 'Структура' => ['type' => PageType::TK_STRUCTURE], 'Состав' => [], 'Документы' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::CATEGORIZED], 'АИС ТК 465 «Строительство»' => [] ] ], 'Реестр требований ФЗ-63' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::CATEGORIZED], 'Нормирование и стандартизация' => [ 'children' => [ 'Реестр сводов правил' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::RULESET], 'Реестр нормативно-технической документации' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::NTD], 'Разработка сводов правил' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::DEVELOPMENTS], 'Прикладные исследования' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::RESEARCHES], 'Методические материалы' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::SIMPLE] ] ], 'Международная деятельность' => [ 'children' => [ 'ISO' => [], 'МТК 465 «Строительство»' => [], 'Межправительственный совет' => [], 'Базовая организация СНГ' => [], 'Разработка ТР ЕАЭС' => [], ] ], 'СТУ' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::CATEGORIZED], 'КСИ' => [], 'Добровольная сертификация' => [ 'children' => [ 'О системе' => [], 'Основополагающие документы' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::CATEGORIZED], 'Решения ЦОС' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::SIMPLE], 'Руководящие документы' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::SIMPLE], 'Реестр органов по сертификации' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::CERTIFIERS], 'Реестр испытательных лабораторий' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::LABORATORIES], 'Реестр экспертов' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::EXPERTS], 'Реестр сертификатов соответствия' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::CERTIFICATES], 'Бланки документов' => ['type' => PageType::REGISTRY, 'registry_type' => RegistryType::SIMPLE], ] ], ] ], 'Услуги' => [ 'children' => [ 'Технические свидетельства' => [ 'children' => [ 'Консалтинговые услуги ТС' => [], ] ], 'Консалтинг' => [ 'children' => [ 'Экспертиза тех регулирования' => [], 'Разработка нормативных документов' => [], 'Нормативный консалтинг' => [], ] ], 'Портфолио проектов' => [ 'type' => PageType::PUBLICATIONS, 'sub_type' => PageSubType::PUBLICATION_PORTFOLIO ], ] ], 'Пресс-центр' => [ 'children' => [ 'Новости' => [ 'type' => PageType::PUBLICATIONS, 'sub_type' => PageSubType::PUBLICATION_NEWS ], 'Медиа' => [ 'children' => [ 'Фотогалерея' => [ 'type' => PageType::PUBLICATIONS, 'sub_type' => PageSubType::PUBLICATION_PHOTOS ], 'Видеоархив' => [ 'type' => PageType::PUBLICATIONS, 'sub_type' => PageSubType::PUBLICATION_VIDEO ], ] ], // 'СМИ о нас' => [ // 'type' => PageType::PUBLICATIONS, // 'sub_type' => PageSubType::PUBLICATION_SMI // ], 'Контакты для СМИ' => [], ] ], 'Контакты' => [ // 'children' => [ // 'Контактные данные' => [], // 'Как добраться' => [], // 'Консультации' => [], // 'Обратная связь' => [], // ] ] ]; public function run() { $ord = 0; collect($this->pages)->each(function ($data, $name) use (&$ord) { $data['ord'] = $ord++; $this->importPage($name, $data); }); } public function importPage($name, $data, ?Page $parent = null) { $slug = Str::slug(Str::transliterate($name)); $data += ['type' => $data['type'] ?? PageType::CONTENT, 'name' => $name]; $page = Page::firstOrCreate(['parent_id' => $parent->id ?? 0, 'slug' => $slug]); if ($v = collect($data)->except('children', 'registry_type')->all()) $page->update($v); if ($page->type === PageType::REGISTRY) $page->registry->update(['type' => $data['registry_type'] ?? RegistryType::SIMPLE]); $ord = 0; collect($data['children'] ?? [])->each(function ($data, $name) use ($page, &$ord) { $data['ord'] = $ord++; $this->importPage($name, $data, $page); }); } }