/** * Generate pages based on the language folder. * * @param string $folderPath * @param string $language * @return false array */ protected function _generatePagesForLanguageFolder($folderPath, $language) { $pages = array(); $dir = dir($folderPath); while (false !== ($entry = $dir->read())) { if ($entry == '.' || $entry == '..' || $entry == '.DS_Store') { continue; } // We deal with each page $_pageFolder = $folderPath . DS . $entry; $_pageId = $entry; $_id = (int) Repo_Page::getInstance()->addNew($this->_currentClientId, $_pageId, Repo_Page::PAGE_TYPE_STATIC, Repo_Page::PAGE_STATUS_IN_PROGRESS, '', false, false, false, false, $language, $_pageId, false); if (empty($_id)) { // OK, we are deal with existing page $_id = Repo_Page::getInstance()->clientPageExists($this->_currentClientId, $_pageId, $language); $_existingPage = new Object_Page($_id); $_existingPage->cloud_file_container = null; $_existingPage->version++; $_existingPage->save(); } // Copy to a path $_pageStorageFolder = $this->getClientFolderPath($this->_currentClientId) . DS . self::getPageFolderName($_pageId); if (!file_exists($_pageStorageFolder)) { mkdir($_pageStorageFolder, 0777); } else { // Remove the existing content since we are updating. if (file_exists($_pageStorageFolder . DS . $_pageId)) { Functions_File::rrmdir($_pageStorageFolder . DS . $_pageId); } } Functions_File::recurse_copy($_pageFolder, $_pageStorageFolder . DS . $_pageId); // Check whether successfully if (!file_exists($_pageStorageFolder . DS . $_pageId)) { throw new Zend_Exception('Can not copy page content from a zip file: ' . $_pageStorageFolder); } $pages[] = $_id; // In case we upload a thumb image, use it. $page = new Object_Page($_id); $page->useStaticThumb(); } $dir->close(); return $pages; }
/** * Generate pages based on the language folder. * * @param string $folderPath * @param string $language * @return false array */ protected function _generatePagesForLanguageFolder($folderPath, $language) { // Set client id Manager_File_Rackspace::getInstance()->setClientId($this->_currentClientId); $pages = array(); $dir = dir($folderPath); while (false !== ($entry = $dir->read())) { if ($entry == '.' || $entry == '..' || $entry == '.DS_Store') { continue; } // We deal with each page $_pageFolder = $folderPath . DS . $entry; $_pageId = $entry; $_id = (int) Repo_Page::getInstance()->addNew($this->_currentClientId, $_pageId, Repo_Page::PAGE_TYPE_STATIC, Repo_Page::PAGE_STATUS_IN_PROGRESS, '', false, false, false, false, $language, $_pageId, Manager_File_Rackspace::getInstance()->getGeneralContainer()); if (empty($_id)) { // OK, we are deal with existing page $_id = Repo_Page::getInstance()->clientPageExists($this->_currentClientId, $_pageId, $language); $_existingPage = new Object_Page($_id); $_existingPage->version++; $_existingPage->cloud_file_container = Manager_File_Rackspace::getInstance()->getGeneralContainer(); $_existingPage->save(); } // Copy to a path $_pageStorageFolder = $this->getClientFolderPath($this->_currentClientId) . self::PS . parent::getPageFolderName($_pageId); // Cleanup first Manager_File_Rackspace::getInstance()->deletePeudoFolder($_pageStorageFolder); // Store Functions_File::recurse_copy_cloud($_pageFolder, $_pageStorageFolder . self::PS . $_pageId); // Check whether successfully $pages[] = $_id; // In case we upload a thumb image, use it. $page = new Object_Page($_id); $page->useStaticThumb(); } $dir->close(); return $pages; }