/**
  * {@inheritdoc}
  */
 public function load(ObjectManager $manager)
 {
     /** @var EntityManager $manager */
     $user = $this->getUser($manager);
     $businessUnit = $user->getOwner();
     $organization = $user->getOrganization();
     // Create locales sample with relationship between locales
     $localesRegistry = [];
     foreach ($this->locales as $item) {
         $code = $this->getLocaleNameByCode($item['code']);
         $locale = new Locale();
         $locale->setCode($code);
         if ($item['parent']) {
             $parentCode = $this->getLocaleNameByCode($item['parent']);
             $locale->setParentLocale($localesRegistry[$parentCode]);
         }
         $localesRegistry[$code] = $locale;
         $manager->persist($locale);
     }
     $manager->flush();
     // Create websites
     foreach ($this->webSites as $webSite) {
         $site = new Website();
         $siteLocales = [];
         foreach ($webSite['locales'] as $localeCode) {
             $siteLocales[] = $this->getLocaleByCode($manager, $localeCode);
         }
         $site->setOwner($businessUnit)->setOrganization($organization)->setName($webSite['name'])->setUrl($webSite['url'])->resetLocales($siteLocales);
         $manager->persist($site);
     }
     $manager->flush();
     // Create website sharing relationship
     foreach ($this->webSites as $webSite) {
         $site = $this->getWebsiteByName($manager, $webSite['name']);
         if ($webSite['sharing']) {
             foreach ($webSite['sharing'] as $siteName) {
                 $relatedWebsite = $this->getWebsiteByName($manager, $siteName);
                 $site->addRelatedWebsite($relatedWebsite);
             }
         }
     }
     $manager->flush();
     $manager->clear();
 }
Esempio n. 2
0
 /**
  * Load websites
  *
  * @param ObjectManager $manager
  */
 public function load(ObjectManager $manager)
 {
     /** @var EntityManager $manager */
     $user = $this->getUser($manager);
     $businessUnit = $user->getOwner();
     $organization = $user->getOrganization();
     // Create websites
     foreach ($this->webSites as $webSite) {
         $site = new Website();
         $siteLocales = [];
         foreach ($webSite['locales'] as $localeCode) {
             $siteLocales[] = $this->getLocaleByCode($manager, $localeCode);
         }
         $site->setOwner($businessUnit)->setOrganization($organization)->setName($webSite['name'])->setUrl($webSite['url'])->resetLocales($siteLocales);
         $this->setReference($site->getName(), $site);
         $manager->persist($site);
     }
     $manager->flush();
     $manager->clear();
 }