master
sergeybodin 2023-06-06 13:16:18 +03:00
parent 3f96780514
commit f9d12c07cc
1 changed files with 81 additions and 9 deletions

View File

@ -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,20 +55,90 @@ 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) {
$data['ord'] = $ord++;
@ -75,7 +146,8 @@ class PagesTableSeeder extends Seeder {
});
}
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]);