menu
parent
3f96780514
commit
f9d12c07cc
|
|
@ -6,7 +6,8 @@ use App\Models\Pages\Page;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
class PagesTableSeeder extends Seeder {
|
class PagesTableSeeder extends Seeder
|
||||||
|
{
|
||||||
public array $pages = [
|
public array $pages = [
|
||||||
'О центре' => [
|
'О центре' => [
|
||||||
'children' => [
|
'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;
|
$ord = 0;
|
||||||
collect($this->pages)->each(function($data, $name) use(&$ord) {
|
collect($this->pages)->each(function ($data, $name) use (&$ord) {
|
||||||
$data['ord'] = $ord++;
|
$data['ord'] = $ord++;
|
||||||
$this->importPage($name, $data);
|
$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));
|
$slug = Str::slug(Str::transliterate($name));
|
||||||
$page = Page::firstOrCreate(['parent_id' => $parent->id ?? 0, 'slug' => $slug]);
|
$page = Page::firstOrCreate(['parent_id' => $parent->id ?? 0, 'slug' => $slug]);
|
||||||
$page->update(['name' => $name]);
|
$page->update(['name' => $name]);
|
||||||
if ($v = collect($data)->except('children')->all()) $page->update($v);
|
if ($v = collect($data)->except('children')->all()) $page->update($v);
|
||||||
$ord = 0;
|
$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++;
|
$data['ord'] = $ord++;
|
||||||
$this->importPage($name, $data, $page);
|
$this->importPage($name, $data, $page);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue