/** * Regenerate the page file, either from scratch or from the linx file. * If linx file doesn't exists, the file is regenerated from scratch (obviously). * * @param boolean $fromScratch If false, regenerate from the linx file, otherwise regenerate linx file first. * @return boolean true on success, false on failure * @access public */ function regenerate($fromScratch = false) { //regenerate don't work on pages that are not public or which not have website if ($this->getPublication() != RESOURCE_PUBLICATION_PUBLIC || !$this->_checkWebsite()) { return true; } //need pageTemplate for regeneration $this->_checkTemplate(); //get linx file path $linxFile = new CMS_file($this->getLinxFilePath()); //should we regenerate the linx file ? if ($fromScratch || !$linxFile->exists()) { if (!$this->_template) { $this->raiseError('Can\'t find page template for page ' . $this->getID()); return false; } if (!$this->writeLinxFile()) { return false; } //reload linx file $linxFile = new CMS_file($this->getLinxFilePath()); } //unregister all linxes CMS_linxesCatalog::deleteLinxes($this); //instanciate modules treatments for page linx tags $modulesTreatment = new CMS_modulesTags(MODULE_TREATMENT_LINXES_TAGS, PAGE_VISUALMODE_HTML_PUBLIC, $this); $modulesTreatment->setDefinition($linxFile->getContent()); if ($content = $modulesTreatment->treatContent(true)) { $pageHTMLPath = $this->_getHTMLFilePath(PATH_RELATIVETO_FILESYSTEM) . "/" . $this->_getHTMLFilename(); $pageFile = new CMS_file($pageHTMLPath, CMS_file::FILE_SYSTEM, CMS_file::TYPE_FILE); $pageFile->setContent($content); $pageFile->writeToPersistence(); $this->_lastFileCreation->setNow(); $this->writeToPersistence(); //if the page is a website root, create the index page redirecting to this one if ($fromScratch && CMS_websitesCatalog::isWebsiteRoot($this->getID())) { CMS_websitesCatalog::writeRootRedirection(); } } else { $this->raiseError('Malformed linx file'); return false; } //write significant url page $pagePath = $this->_getFilePath(PATH_RELATIVETO_FILESYSTEM) . "/" . $this->_getFilename(); $redirectionFile = new CMS_file($pagePath, CMS_file::FILE_SYSTEM, CMS_file::TYPE_FILE); $redirectionFile->setContent($this->redirectionCode($pageHTMLPath)); $redirectionFile->writeToPersistence(true, true); //write website index if (CMS_websitesCatalog::isWebsiteRoot($this->getID())) { $ws = $this->getWebsite(); if ($ws && !$ws->isMain()) { $wsPath = $ws->getPagesPath(PATH_RELATIVETO_FILESYSTEM) . '/index.php'; $redirectionFile = new CMS_file($wsPath, CMS_file::FILE_SYSTEM, CMS_file::TYPE_FILE); $redirectionFile->setContent($this->redirectionCode($pageHTMLPath)); $redirectionFile->writeToPersistence(true, true); } } //write print page if any if (USE_PRINT_PAGES && $this->_template->getPrintingClientSpaces()) { //reload linx file $printLinxFile = new CMS_file($this->getLinxFilePath() . '.print', CMS_file::FILE_SYSTEM, CMS_file::TYPE_FILE); if ($printLinxFile->exists()) { $modulesTreatment = new CMS_modulesTags(MODULE_TREATMENT_LINXES_TAGS, PAGE_VISUALMODE_PRINT, $this); $modulesTreatment->setDefinition($printLinxFile->getContent()); if ($content = $modulesTreatment->treatContent(true)) { $printHTMLPath = $this->_getHTMLFilePath(PATH_RELATIVETO_FILESYSTEM) . "/print-" . $this->_getHTMLFilename(); $printFile = new CMS_file($printHTMLPath); $printFile->setContent($content); $printFile->writeToPersistence(); } else { $this->raiseError('Malformed print linx file'); return false; } //write significant url print page $printPath = $this->_getFilePath(PATH_RELATIVETO_FILESYSTEM) . "/print-" . $this->_getFilename(); $redirectionFile = new CMS_file($printPath); $redirectionFile->setContent($this->redirectionCode($printHTMLPath)); $redirectionFile->writeToPersistence(); } else { $this->raiseError('Malformed print linx file'); return false; } } return true; }
<input type="hidden" name="cms_action" value="website" /> <input type="hidden" name="install_language" value="' . $install_language . '" /> ' . $step4_enter_url . '<br /><br /> ' . $step4_url . '<input type="text" name="website" value="' . $websiteUrl . '" /><br /> <input type="submit" class="submit" value="' . $label_next . '" /> </form> '; } else { $tmp = new CMS_websitesCatalog(); if (method_exists($tmp, 'writeRootRedirection')) { $websites = CMS_websitesCatalog::getAll(); foreach ($websites as $aWebsite) { $aWebsite->setURL($_POST["website"]); $aWebsite->writeToPersistence(); } CMS_websitesCatalog::writeRootRedirection(); } else { $websites = CMS_websitesCatalog::getAll(); foreach ($websites as $aWebsite) { $aWebsite->setURL($_POST["website"]); $aWebsite->writeToPersistence(); $aWebsite->writeRootRedirection(); } } //go to next step if (APPLICATION_IS_WINDOWS) { //skip chmod step on windows platform $step = 6; } else { $step = 5; }