Ejemplo n.º 1
0
 /**
  * Imports website object from array
  * (see WebsiteImporter for structure and description).
  *
  * @param array $data
  * @param $rootPath
  * @param $test
  *
  * @return Website
  */
 public function importWebsite(array $data, $rootPath, $test = false)
 {
     $website = new Website($test);
     if (isset($data['data'])) {
         $websiteData = $data['data'];
         $websiteOptions = new WebsiteOptions();
         $websiteOptions->setWebsite($website);
         $website->setOptions($websiteOptions);
         $websitePagesMap = array();
         foreach ($websiteData['pages'] as $websitePage) {
             $entityWebsitePage = new WebsitePage();
             $entityWebsitePage->setWebsite($website);
             $entityWebsitePage->importFromArray($websitePage, $rootPath);
             if ($websitePage['is_root']) {
                 $website->setRoot($entityWebsitePage);
                 $this->om->persist($website);
                 //$this->websitePageRepository->persistAsFirstChild($entityWebsitePage);
             } else {
                 $entityWebsitePageParent = $websitePagesMap[$websitePage['parent_id']];
                 $entityWebsitePage->setParent($entityWebsitePageParent);
                 $this->websitePageRepository->persistAsLastChildOf($entityWebsitePage, $entityWebsitePageParent);
             }
             if ($websitePage['is_homepage']) {
                 $website->setHomePage($entityWebsitePage);
             }
             $websitePagesMap[$websitePage['id']] = $entityWebsitePage;
         }
         $this->om->flush();
         $websiteOptions->importFromArray($this->webDir, $websiteData['options'], $rootPath);
     }
     return $website;
 }