HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/conmeq.komma.pro/database/seeds/MultiSitePageSeeder.php
<?php
//
//use App\Komma\Globalization\Languages\Models\Language;
//use App\Komma\Pages\Models\Page;
//use App\Komma\Pages\Models\PageTranslation;
//use App\Komma\Routes\RouteService;
//use App\Komma\Sites\Models\Site;
//use App\Komma\Sites\SiteServiceInterface;
//use Illuminate\Database\Seeder;
//
//class MultiSitePageSeeder extends Seeder
//{
//    /**
//     *
//     */
//    public function run()
//    {
//        $routeService = new RouteService();
//        $siteService = App::make(SiteServiceInterface::class); //Returns a singleton that is used throughout the whole app
//
//        $mainSite = Site::where('name', '=', 'Main company')->first();
//        $subsidiarySite = Site::where('name', '=', 'Subsidiary company')->first();
//
//        $mainSiteRoot = new Page(['active' => '0', 'site_id' => $mainSite->id]);
//        $mainSiteRoot->makeRoot();
//        $mainSiteRoot->save();
//
//        $subsidiarySiteRoot = new Page(['active' => '0', 'site_id' => $subsidiarySite->id]);
//        $subsidiarySiteRoot->makeRoot();
//        $subsidiarySiteRoot->save();
//
//        $mainSitePages = [
//            [
//                'code_name' => 'home',
//                'nl' => "Home",
//                'de' => "Home",
//                'en' => "Home",
//            ],
//            [
//                'code_name' => 'about',
//                'nl' => "Over ons",
//                'de' => "Über uns",
//                'en' => "About us",
//                'children' => [
//                    [
//                        'code_name' => 'the_team',
//                        'nl' => 'Het team',
//                        'de' => 'Das team',
//                        'en' => 'The Team'
//                    ],
//                    [
//                        'code_name' => 'location',
//                        'nl' => 'Locatie',
//                        'de' => 'Standort',
//                        'en' => 'Location',
//                        'children' => [
//                            [
//                                'code_name' => 'location_a',
//                                'nl' => 'Locatie A',
//                                'de' => 'Standort A',
//                                'en' => 'Location A',
//                                'children' => []
//                            ],
//                            [
//                                'code_name' => 'location_b',
//                                'nl' => 'Locatie B',
//                                'de' => 'Standort B',
//                                'en' => 'Location B',
//                                'children' => []
//                            ]
//                        ]
//                    ],
//                    [
//                        'code_name' => 'what_we_do',
//                        'nl' => 'Wat we doen',
//                        'de' => 'Was wir machen',
//                        'en' => 'What we do'
//                    ],
//                ]
//            ],
//            [
//            'code_name' => 'contact',
//            'nl' => "Contact",
//            'de' => "Kontakt",
//            'en' => "Contact",
//            ],
//            [
//                'code_name' => 'privacy',
//                'nl' => "Privacy",
//                'de' => "Privacy",
//                'en' => "Privacy",
//            ],
//            [
//                'code_name' => 'legal',
//                'nl' => "Disclaimer",
//                'de' => "Haftungsausschluss",
//                'en' => "Disclaimer",
//            ],
//        ];
//
//        $subSidiarySitePages = [
//            [
//                'code_name' => 'home',
//                'nl' => "Thuis",
//                'de' => "House",
//                'en' => "Home",
//            ],
//            [
//                'code_name' => 'about',
//                'nl' => "Over ons",
//                'de' => "Über uns",
//                'en' => "About us",
//            ],
//        ];
//
//
//        $siteService->setCurrentSiteBySlug($mainSite->slug);
//        foreach ($mainSitePages as $pageData) {
//            $page = $this->createPage($pageData, $mainSiteRoot, $mainSite, $routeService);
//        }
//
//        $siteService->setCurrentSiteBySlug($subsidiarySite->slug);
//        foreach ($subSidiarySitePages as $pageData) {
//            $page = $this->createPage($pageData, $subsidiarySiteRoot, $subsidiarySite, $routeService);
//        }
//    }
//
//    /**
//     * Create a category from the array data you pass it.
//     *
//     * @param $pageData
//     * @param Page $parent
//     * @param SiteSeeder $site
//     * @param RouteService $routeService
//     * @return Page
//     */
//    private function createPage(array $pageData, Page $parent, Site $site, RouteService $routeService): Page
//    {
//        $page = new Page();
//
//        $page->code_name = $pageData['code_name'];
//        $page->active = 1;
//        $page->site_id = $site->id;
//        $page->makeLastChildOf($parent); //Also saves
//
//        foreach ($pageData as $key => $value) {
//            switch ($key) {
//                case 'code_name':
//                    break;
//                case 'children':
//                    foreach ($value as $childCategoryData) {
//                        $this->createPage($childCategoryData, $page, $site, $routeService);
//                    }
//                    break;
//                default:
//                    $language = Language::where('iso_2', '=', $key)->first();
//                    if (!$language) {
//                        break;
//                    }
//                    $translation = new PageTranslation();
//                    $translation->language()->associate($language);
//                    $translation->translatable()->associate($page);
//                    $translation->slug = str_slug($value);
//                    $translation->name = $value;
//                    $translation->meta_title = $value;
//                    $translation->description = '[]';
//                    $translation->save();
//                    $routeService->createOrUpdateRoutesForModelsTranslationsIfChanged($page);
//            }
//        }
//
//        return $page;
//    }
//}
//
//
//
//
//
//
//
//
//