/** * @param $pageName * @param $pageData * * @return \Rcm\Entity\Page */ protected function getNewPage(Site $site, $pageName, $pageData) { $em = $this->entityManager; $page = new Page(); $page->setName($pageName); $page->setAuthor("Create Script"); $page->setCreatedDate(new \DateTime()); $page->setLastPublished(new \DateTime()); $page->setSite($site); if (!empty($pageData['siteLayoutOverride'])) { $page->setSiteLayoutOverride($pageData['siteLayoutOverride']); } if (!empty($pageData['pageTitle'])) { $page->setPageTitle($pageData['pageTitle']); } if (!empty($pageData['description'])) { $page->setPageTitle($pageData['description']); } if (!empty($pageData['keywords'])) { $page->setKeywords($pageData['keywords']); } if (!empty($pageData['pageType'])) { $page->setPageType($pageData['pageType']); } if (!empty($pageData['pageLayout'])) { $page->setPageLayout($pageData['pageLayout']); } else { $page->setPageLayout('default'); } $revision = $this->getNewPageRevision($pageData['containers']); $page->addRevision($revision); $page->setPublishedRevision($revision); $em->persist($page); return $page; }
/** * Get Test Page Data for Page Repo Mocks * * @param integer $pageId PageID * @param integer $pageName PageName * @param integer $revisionId RevisionId * @param string $pageType PageType * @param boolean $useStaged Use staged revision instead of published * @param string $siteLayoutOverride Layout Override * * @return array */ protected function getPageData($pageId, $pageName, $revisionId, $pageType = 'n', $useStaged = false, $siteLayoutOverride = null) { $country = new Country(); $country->setCountryName('United States'); $country->setIso2('US'); $country->setIso3('USA'); $language = new Language(); $language->setLanguageId(1); $language->setIso6391('en'); $language->setIso6392b('eng'); $language->setIso6392t('eng'); $domain = new Domain(); $domain->setDomainId(1); $domain->setDomainName('reliv.com'); $site = new Site(); $site->setSiteId(1); $site->setCountry($country); $site->setLanguage($language); $site->setLoginPage('login'); $site->setNotFoundPage('not-found'); $site->setDomain($domain); $revision = new Revision(); $revision->setRevisionId($revisionId); $revision->setAuthor('Westin Shafer'); $revision->setCreatedDate(new \DateTime()); $revision->setPublishedDate(new \DateTime()); $page = new Page(); $page->setSite($site); $page->setName($pageName); $page->setPageId($pageId); $page->setPageType($pageType); $page->addRevision($revision); $page->setPublishedRevision($revision); if ($useStaged) { $page->setStagedRevision($revision); } $page->setPageId(22); $page->setSiteLayoutOverride($siteLayoutOverride); return $page; }
/** * Test Set Page Type Too Long * * @return void * * @covers \Rcm\Entity\Page * @expectedException \Rcm\Exception\InvalidArgumentException */ public function testSetPageTypeTooLong() { $pageType = 'tooLongtooLongtooLongtooLongtooLong'; $this->page->setPageType($pageType); }
/** * setPageDeleted - A way of making pages appear deleted without deleting the DB entries * * @param PageEntity $page * * @return bool */ public function setPageDeleted(PageEntity $page) { $pageType = $page->getPageType(); if (strpos($pageType, self::PAGE_TYPE_DELETED) !== false) { // Already set as deleted return false; } $page->setPageType(self::PAGE_TYPE_DELETED . $pageType); $this->_em->persist($page); $this->_em->flush($page); return true; }