public function writePage(PageBuilder $page, $siteRef, $homePageRef = null) { $pageData = array('menu' => 1, 'status' => 'active', 'type' => 'page', 'siteRef' => $siteRef, 'pageUrl' => $page->getName() == 'home' ? 'temporary' : $page->getName(), 'seo_title' => $page->getSeoTitle(), 'description' => $page->getDescription(), 'title' => $page->getTitle(), 'headscript' => $page->getHeadScript(), 'templateType' => $page->getTemplateType()); if ($page->getParentId() > 0) { $pageData = array_merge($pageData, array('folder' => $page->getParentId())); } $createPageCmd = $this->apiClient->getCommand('CreateSitePage', $pageData); $response = $createPageCmd->execute(); $pageRef = $response['page']['ref']; $page->setPageRef($pageRef); // Sometimes we have to clear down the widgets // created by the content strategy when there // is no option to change it to blank on a brand. $pageWidgetsCmd = $this->apiClient->getCommand('GetSitesWidgets', array('siteRef' => $siteRef, 'pageRef' => $pageRef)); $pageWidgets = $pageWidgetsCmd->execute(); if (count($pageWidgets) > 0 && isset($pageWidgets["widgets"])) { foreach ($pageWidgets["widgets"] as $widget) { $deleteWidgetCmd = $this->apiClient->getCommand("DeleteWidget", array("siteRef" => (int) $siteRef, "widgetRef" => (int) $widget["ref"])); $deleteWidgetResponse = $deleteWidgetCmd->execute(); } } if ($page->getName() == 'home') { $this->setLogoImage($page, $siteRef); $this->setFeatureImage($page, $siteRef); $updatePageCmd = $this->apiClient->getCommand('UpdateSitePage', array('siteRef' => $siteRef, 'pageRef' => $pageRef, 'type' => 'home', 'templateType' => 'home')); $response = $updatePageCmd->execute(); if ($homePageRef !== null) { $deletePageCmd = $this->apiClient->getCommand('DeleteSitePage', array('siteRef' => $siteRef, 'pageRef' => $homePageRef)); $responce = $deletePageCmd->execute(); } } $this->createCollection($page->getCollection(), $siteRef, $pageRef); $this->setHiddenTemplateWidgets($page, $siteRef); $this->setFooter($page, $siteRef); }