protected function _load() { if (!is_array($this->_options) || empty($this->_options) || !isset($this->_options[0]) || !$this->_options[0] || preg_match('~^\\s*$~', $this->_options[0])) { throw new Exceptions_SeotoasterException($this->_translator->translate('You should specify folder.')); } $configHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('config'); $path = $this->_websiteHelper->getPath() . $this->_websiteHelper->getMedia() . $this->_options[0] . '/'; $mediaServersAllowed = $configHelper->getConfig('mediaServers'); unset($configHelper); $websiteData = $mediaServersAllowed ? Zend_Registry::get('website') : null; $thumbSize = isset($this->_options[1]) ? $this->_options[1] : self::DEFAULT_THUMB_SIZE; $useCrop = isset($this->_options[2]) ? (bool) $this->_options[2] : false; $useCaption = isset($this->_options[3]) ? (bool) $this->_options[3] : false; if (!is_dir($path)) { throw new Exceptions_SeotoasterException($path . ' is not a directory.'); } $sourceImages = Tools_Filesystem_Tools::scanDirectory($path . 'original/'); $galFolder = $path . ($useCrop ? 'crop/' : 'thumbnails/'); if (!is_dir($galFolder)) { @mkdir($galFolder); } foreach ($sourceImages as $key => $image) { if (is_file($galFolder . $image)) { $imgInfo = getimagesize($galFolder . $image); if ($imgInfo[0] != $thumbSize) { Tools_Image_Tools::resize($path . 'original/' . $image, $thumbSize, !$useCrop, $galFolder, $useCrop); } } else { Tools_Image_Tools::resize($path . 'original/' . $image, $thumbSize, !$useCrop, $galFolder, $useCrop); } $sourcePart = str_replace($this->_websiteHelper->getPath(), $this->_websiteHelper->getUrl(), $galFolder); if ($mediaServersAllowed) { $mediaServer = Tools_Content_Tools::getMediaServer(); $cleanWebsiteUrl = str_replace('www.', '', $websiteData['url']); $sourcePart = str_replace($websiteData['url'], $mediaServer . '.' . $cleanWebsiteUrl, $sourcePart); } $sourceImages[$key] = array('path' => $sourcePart . $image, 'name' => $image); } $this->_view->folder = $this->_options[0]; $this->_view->original = str_replace($this->_websiteHelper->getPath(), $this->_websiteHelper->getUrl(), $path) . 'original/'; $this->_view->images = $sourceImages; $this->_view->useCaption = $useCaption; $this->_view->galFolderPath = $galFolder; $this->_view->mediaServersAllowed = $mediaServersAllowed; $this->_view->galFolder = str_replace($this->_websiteHelper->getPath(), $this->_websiteHelper->getUrl(), $galFolder); return $this->_view->render('gallery.phtml'); }
private function _uploadPagepreview() { $miscConfig = Zend_Registry::get('misc'); $configTeaserSize = $this->_helper->config->getConfig('teaserSize'); $savePath = $this->_websiteConfig['path'] . $this->_websiteConfig['tmp']; $fileMime = $this->_getMimeType(); switch ($fileMime) { case 'image/png': $newName = '.png'; break; case 'image/jpg': case 'image/jpeg': $newName = '.jpg'; $this->_helper->session->imageQualityPreview = self::PREVIEW_IMAGE_OPTIMIZE; break; case 'image/gif': $newName = '.gif'; break; default: return false; break; } $newName = md5(microtime(1)) . $newName; $newImageFile = $savePath . $newName; $this->_uploadHandler->addFilter('Rename', array('target' => $newImageFile, 'overwrite' => true)); $result = $this->_uploadImages($savePath, false); if ($result['error'] == false) { Tools_Image_Tools::resize($newImageFile, $configTeaserSize ? $configTeaserSize : $miscConfig['pageTeaserSize'], true); $result['src'] = $this->_helper->website->getUrl() . $this->_websiteConfig['tmp'] . $newName; } return $result; }
public static function processPagePreviewImage($pageUrl, $tmpPreviewFile = null) { $websiteHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('website'); $pageHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('page'); $websiteConfig = Zend_Registry::get('website'); $pageUrl = str_replace(DIRECTORY_SEPARATOR, '-', $pageHelper->clean($pageUrl)); $previewPath = $websiteHelper->getPath() . $websiteHelper->getPreview(); // $filelist = Tools_Filesystem_Tools::findFilesByExtension($previewPath, '(jpg|gif|png)', false, false, false); $currentPreviewList = glob($previewPath . $pageUrl . '.{jpg,jpeg,png,gif}', GLOB_BRACE); if ($tmpPreviewFile) { $tmpPreviewFile = str_replace($websiteHelper->getUrl(), $websiteHelper->getPath(), $tmpPreviewFile); if (is_file($tmpPreviewFile) && is_readable($tmpPreviewFile)) { preg_match('/\\.[\\w]{2,6}$/', $tmpPreviewFile, $extension); $newPreviewImageFile = $previewPath . $pageUrl . $extension[0]; //cleaning form existing page previews if (!empty($currentPreviewList)) { foreach ($currentPreviewList as $key => $file) { if (file_exists($file)) { if (Tools_Filesystem_Tools::deleteFile($file)) { // unset($currentPreviewList[$key]); } } } } if (is_writable($newPreviewImageFile)) { $status = @rename($tmpPreviewFile, $newPreviewImageFile); } else { $status = @copy($tmpPreviewFile, $newPreviewImageFile); } if ($status && file_exists($tmpPreviewFile)) { Tools_Filesystem_Tools::deleteFile($tmpPreviewFile); } $miscConfig = Zend_Registry::get('misc'); //check for the previews crop folder and try to create it if not exists $cropPreviewDirPath = $websiteHelper->getPath() . $websiteHelper->getPreviewCrop(); if (!is_dir($cropPreviewDirPath)) { @mkdir($cropPreviewDirPath); } else { // unlink old croped page previews if (!empty($currentPreviewList)) { foreach ($currentPreviewList as $fileToUnlink) { $unlinkPath = str_replace($previewPath, $cropPreviewDirPath, $fileToUnlink); if (file_exists($unlinkPath)) { unlink($unlinkPath); } } } } Tools_Image_Tools::resize($newPreviewImageFile, $miscConfig['pageTeaserCropSize'], false, $cropPreviewDirPath, true); unset($miscConfig); return $pageUrl . $extension[0]; // return $websiteHelper->getUrl() . $websiteConfig['preview'] . $pageUrl . $extension[0]; } } if (sizeof($currentPreviewList) == 0) { return false; } else { $pagePreviewImage = str_replace($websiteHelper->getPath(), $websiteHelper->getUrl(), reset($currentPreviewList)); } return $pagePreviewImage; }