public static function PublishPage($pageUniqId, $preview = false, $remove_draft = false, $root = '../') { $page = Page::GetByPageUniqId($pageUniqId); if ($page != null) { $site = Site::GetBySiteId($page['SiteId']); // test for now $dest = $root . 'sites/' . $site['FriendlyId'] . '/'; $imageurl = $dest . 'files/'; $siteurl = 'http://' . $site['Domain'] . '/'; $friendlyId = $page['FriendlyId']; $url = ''; $file = ''; if ($preview == true) { $previewId = uniqid(); $file = $page['FriendlyId'] . '-' . $previewId . '-preview.php'; } else { $file = $page['FriendlyId'] . '.php'; } // create a nice path to store the file if ($page['PageTypeId'] == -1) { $url = $page['FriendlyId'] . '.php'; $path = ''; } else { $pageType = PageType::GetByPageTypeId($page['PageTypeId']); $path = 'uncategorized/'; if ($pageType != null) { $path = strtolower($pageType['FriendlyId']) . '/'; } } // generate default $html = Utilities::GeneratePage($site, $page, $siteurl, $imageurl, $preview, $root); // remove any drafts associated with the page if ($remove_draft == true) { $draft = $root . 'sites/' . $site['FriendlyId'] . '/fragments/draft/' . $page['PageUniqId'] . '.html'; if (file_exists($draft)) { unlink($draft); } } if ($preview == true) { $s_dest = $dest . 'preview/'; } else { $s_dest = $dest . $path; } // save the content to the published file Utilities::SaveContent($s_dest, $file, $html); // publish a rendered fragment Publish::PublishRender($site, $page, $root); // build the search index for the page Publish::BuildSearchIndex($site, $page, $root); return $s_dest . $file; } }