Ejemplo n.º 1
0
 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');
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 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;
 }