/** * @param ImageTool $imageTool * @param MediaCache $cmsMediaCache * @param DynamicCreatorMediaCache $mediaCache * @param MediaInfoStorageItem $mediaItem * @param string $cdnType * @param array $operations */ protected function createMediaCacheFile(ImageTool $imageTool, MediaCache $cmsMediaCache, DynamicCreatorMediaCache $mediaCache, MediaInfoStorageItem $mediaItem, $cdnType, array $operations) { if (count($operations) <= 0) { return; } $isIcon = false; switch ($cdnType) { case MediaRequest::TYPE_IMAGE: $filePath = $mediaItem->getFilePath(); break; case MediaRequest::TYPE_ICON: $isIcon = true; $filePath = $mediaItem->getIconFilePath(); break; case MediaRequest::TYPE_PREVIEW: $filePath = $mediaItem->getFilePath(); if (!$imageTool->isImageFile($filePath)) { $isIcon = true; $filePath = $mediaItem->getIconFilePath(); } break; default: return; } $cmsCacheFilePath = $this->createCmsCacheFile($imageTool, $cmsMediaCache, $mediaItem, $operations, $isIcon, $filePath); $liveCacheFilePath = $mediaCache->getCacheFilePath($mediaItem, $operations, $isIcon); FS::copyFile($cmsCacheFilePath, $liveCacheFilePath); }
/** * @param $importFilename * * @return string */ protected function createImportFile($importFilename) { $config = Registry::getConfig(); $importFilePath = FS::joinPath($config->test->files->directory, 'test_exports', $importFilename); $fakedImportFile = FS::joinPath($config->import->directory, $importFilename); $unzipDirectory = str_replace('.zip', '', $fakedImportFile); $assertionMessage = sprintf("Test import file '%s' not exists", $importFilePath); $this->assertFileExists($importFilePath, $assertionMessage); // Add fake upload file and unzip directory to delete lists $this->filesToDeleteAtTearDown[] = $fakedImportFile; $this->directoriesToDeleteAtTearDown[] = $unzipDirectory; FS::copyFile($importFilePath, $fakedImportFile); FS::createDirIfNotExists($unzipDirectory, true); return $importFilePath; }
/** * @param \Cms\Service\Modul $moduleService * @param DataModule $module * @param string $importModuleDataDirectoryPath */ protected function replaceTranslationFile($moduleService, DataModule $module, $importModuleDataDirectoryPath) { $importTranslationFile = FS::joinPath($importModuleDataDirectoryPath, 'moduleTranslation.php'); if (is_readable($importTranslationFile)) { $dataPath = $moduleService->getDataPath($module->getWebsiteid(), $module->getId()); $moduleTranslationFile = FS::joinPath($dataPath, 'moduleTranslation.php'); FS::copyFile($importTranslationFile, $moduleTranslationFile); } }
/** * @param string $mode * @param string $websiteId * @param string $id */ protected function insertScreenshot($mode, $websiteId, $id = null) { $screenshotBusiness = $this->getScreenshotBusiness(); $screenshotFile = $screenshotBusiness->getScreenshotFilePath($websiteId, null, $screenshotBusiness::SCREEN_TYPE_WEBSITE); if (empty($screenshotFile) || !file_exists($screenshotFile)) { return; } $filePathInExport = FS::joinPath($this->currentExportDirectory, 'screenshot.jpg'); $image = $this->getImageAdapter(); $image->setFile($screenshotFile); $imageInfo = $image->getImageInfo(); if ($imageInfo['type'] != $image::TYPE_JPG) { $image->load(); $image->quality(array('quality' => 100)); $image->save($filePathInExport, $image::TYPE_JPG); } else { FS::copyFile($screenshotFile, $filePathInExport); } }
/** * @param string $liveDirectory * @param string $srcDirectory * @param array $writeableDirectories * @param array $cacheDirectories * @param string $subDirectory * * @throws CmsException */ protected function updateLive($liveDirectory, $srcDirectory, $writeableDirectories, $cacheDirectories, $subDirectory = '') { if (!is_dir($srcDirectory)) { throw new CmsException(902, __METHOD__, __LINE__, array('msg' => sprintf('source directory %s not exists', $srcDirectory))); } // create live directory if (!is_dir($liveDirectory)) { FS::createDirIfNotExists($liveDirectory, true, 0755); } // set directory rights if (!empty($subDirectory) && $this->isInsideDirectory($subDirectory, $writeableDirectories)) { // writeable FS::chmod($liveDirectory, 0777); } else { FS::chmod($liveDirectory, 0755); } // get info of the directories $liveDirInfo = $this->getDirectoryAsArray($liveDirectory); $srcDirInfo = $this->getDirectoryAsArray($srcDirectory); // delete live directories foreach ($liveDirInfo['directories'] as $liveSubDirectoryName => $liveSubDirectory) { if ($this->isInsideDirectory($subDirectory . $liveSubDirectoryName, $writeableDirectories)) { FS::chmod($liveSubDirectory, 0777); continue; } if (!isset($srcDirInfo['directories'][$liveSubDirectoryName])) { FS::rmdir($liveDirectory); } } // delete live files foreach ($liveDirInfo['files'] as $liveFileName => $liveFilePathName) { if ($this->isInsideDirectory($subDirectory . $liveFileName, $writeableDirectories)) { FS::chmod($liveFilePathName, 0777); continue; } if (!isset($srcDirInfo['files'][$liveFileName])) { FS::rmFile($liveFilePathName); } } // copy source directories foreach ($srcDirInfo['directories'] as $srcSubDirectoryName => $srcSubDirectory) { $subDirPathName = $subDirectory . $srcSubDirectoryName . DIRECTORY_SEPARATOR; $newLiveDirectory = FS::joinPath($liveDirectory, $srcSubDirectoryName); $this->updateLive($newLiveDirectory, $srcSubDirectory, $writeableDirectories, $cacheDirectories, $subDirPathName); } // copy source files foreach ($srcDirInfo['files'] as $srcFileName => $srcFilePathName) { $newLiveFilePathName = FS::joinPath($liveDirectory, $srcFileName); FS::copyFile($srcFilePathName, $newLiveFilePathName); if ($this->isInsideDirectory($subDirectory . $srcFileName, $writeableDirectories)) { FS::chmod($newLiveFilePathName, 0777); } else { FS::chmod($newLiveFilePathName, 0755); } } }
/** * @param string $websiteId * @param string $publishingId * @param string $buildFilePath * @return string path to publishing file */ private function copyBuildToPublishingDirectory($websiteId, $publishingId, $buildFilePath) { $config = Registry::getConfig(); $publishingDirectory = FS::joinPath($config->publisher->data->directory, $websiteId); FS::createDirIfNotExists($publishingDirectory, true); $publishingFilePath = FS::joinPath($publishingDirectory, $publishingId . '.zip'); FS::copyFile($buildFilePath, $publishingFilePath); return $publishingFilePath; }
/** * @param $destDirectory * @param $destFileName * @param $srcFileName */ protected function copyCreatorFile($destDirectory, $destFileName, $srcFileName) { $srcDirectory = $this->getCreatorFilesDirectory(); $srcFilePath = FS::joinPath($srcDirectory, $srcFileName); $destFilePath = FS::joinPath($destDirectory, $destFileName); FS::copyFile($srcFilePath, $destFilePath); }