/** * 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; }