/** * Method removes images with given name in the given directory via recursive scan of subfolders * such as, small, medium, etc. * @param string $imageName Name of image to be deleted * @param string $folderName Name of folder where image is * @return mixed Boolean true on success of all operations array with errors * @return mixed Boolean false on empty parameters given * @return mixed Array with errors if something went wrong */ public static function removeImageFromFilesystem($imageName, $folderName) { $imageName = trim($imageName); $folderName = trim($folderName); if (empty($imageName) || empty($folderName)) { return false; } $websiteConfig = Zend_Registry::get('website'); $folderPath = $websiteConfig['path'] . $websiteConfig['media'] . $folderName; if (!is_dir($folderPath)) { throw new Exceptions_SeotoasterException('Wrong folder name specified'); } $errorCount = 0; $subFoldersList = array_merge(self::$imgResizedFolders, array('original')); //list of file that can be removed $removable = array(); foreach ($subFoldersList as $key => $subfolder) { if (!is_dir($folderPath . DIRECTORY_SEPARATOR . $subfolder)) { error_log('Not a folder:' . $folderPath . DIRECTORY_SEPARATOR . $subfolder); unset($subFoldersList[$key]); continue; } $filename = $folderPath . DIRECTORY_SEPARATOR . $subfolder . DIRECTORY_SEPARATOR . $imageName; //checking if enough permission to remove file if (is_file($filename)) { array_push($removable, $filename); } } /** * checking if we can remove all files at once * if not - returning with error */ foreach ($removable as $file) { if (!is_writable($file)) { return 'Permission denied'; } } foreach ($removable as $file) { try { Tools_Filesystem_Tools::deleteFile($file); } catch (Exceptions_SeotoasterException $e) { $errorCount++; error_log($file . ': ' . $e->getMessage()); } } if ($errorCount) { return false; } return true; }
private function _uploadTemplatepreview() { $miscConfig = Zend_Registry::get('misc'); $currentTheme = $this->_helper->config->getConfig('currentTheme'); $savePath = $this->_websiteConfig['path'] . $this->_themeConfig['path'] . $currentTheme . DIRECTORY_SEPARATOR . $this->_themeConfig['templatePreview']; $name = trim($this->getRequest()->getParam('templateName')); $fileMime = $this->_getMimeType(); switch ($fileMime) { case 'image/png': $newName = $name . '.png'; break; case 'image/jpg': case 'image/jpeg': $newName = $name . '.jpg'; break; case 'image/gif': $newName = $name . '.gif'; break; default: return false; break; } if (!$name || empty($name)) { return false; } $newImageFile = $savePath . $newName; //checking for existing images with same name ... if (!is_dir($savePath)) { if (!Tools_Filesystem_Tools::mkDir($savePath)) { return false; } } $existingImages = glob($savePath . $name . '.{png,jpeg,jpg,gif}', GLOB_BRACE); // ...and removing them foreach ($existingImages as $img) { Tools_Filesystem_Tools::deleteFile($img); } $this->_uploadHandler->addFilter('Rename', array('target' => $newImageFile, 'overwrite' => true)); $result = $this->_uploadImages($savePath, false); if ($result['error'] == false) { Tools_Image_Tools::resize($newImageFile, $miscConfig['templatePreviewWidth'], true); $result['thumb'] = 'data:' . $fileMime . ';base64,' . base64_encode(Tools_Filesystem_Tools::getFile($newImageFile)); } return $result; }
/** * Method exports zipped theme * @param string $themeName Theme name * @param bool $full Set true to dump data and media files */ protected function _exportTheme($themeName = '', $full = false, $noZip = false) { if (!$themeName) { $themeName = $this->_configHelper->getConfig('currentTheme'); } $themePath = $this->_websiteHelper->getPath() . $this->_themesConfig['path'] . $themeName . DIRECTORY_SEPARATOR; $websitePath = $this->_websiteHelper->getPath(); if ($full) { /** * @var $dbAdapter Zend_Db_Adapter_Abstract */ $dbAdapter = Zend_Registry::get('dbAdapter'); // exporting themes data for the full theme // init empty array for export data $data = array('page' => array()); // and for media files $mediaFiles = array(); // fetching index page and main menu pages $pagesSqlWhere = "SELECT * FROM `page` WHERE system = '0' AND draft = '0' AND (\n\t\t\turl = 'index.html' OR (parent_id = '0' AND show_in_menu = '1') OR (parent_id = '-1' AND show_in_menu = '2')\n\t\t OR (parent_id = '0' OR parent_id IN (SELECT DISTINCT `page`.`id` FROM `page` WHERE (parent_id = '0') AND (system = '0') AND (show_in_menu = '1')) )\n\t\t OR id IN ( SELECT DISTINCT `page_id` FROM `page_fa` )\n\t\t OR id IN ( SELECT DISTINCT `page_id` FROM `page_has_option` )\n\t\t ) ORDER BY `order` ASC"; $pages = $dbAdapter->fetchAll($pagesSqlWhere); if (is_array($pages) && !empty($pages)) { $data['page'] = $pages; unset($pages); } // combining list of queries for export others tables content $queryList = array(); $enabledPlugins = Tools_Plugins_Tools::getEnabledPlugins(true); foreach ($enabledPlugins as $plugin) { $pluginsData = Tools_Plugins_Tools::runStatic(self::PLUGIN_EXPORT_METHOD, $plugin); if (!$pluginsData) { continue; } if (isset($pluginsData['pages']) && is_array($pluginsData['pages']) && !empty($pluginsData['pages'])) { $data['page'] = array_merge($data['page'], $pluginsData['pages']); } if (isset($pluginsData['tables']) && is_array($pluginsData['tables']) && !empty($pluginsData['tables'])) { foreach ($pluginsData['tables'] as $table => $query) { if (array_key_exists($table, $this->_fullThemesSqlMap)) { continue; } $queryList[$table] = $query; unset($table, $query); } } if (isset($pluginsData['media']) && is_array($pluginsData['media']) && !empty($pluginsData['media'])) { $mediaFiles = array_unique(array_merge($mediaFiles, $pluginsData['media'])); } } unset($enabledPlugins); // getting list of pages ids for export $pagesIDs = array_map(function ($page) { return $page['id']; }, $data['page']); // building list of dump queries and executing it with page IDS substitution $queryList = array_merge($this->_fullThemesSqlMap, $queryList); foreach ($queryList as $table => $query) { $data[$table] = $dbAdapter->fetchAll($dbAdapter->quoteInto($query, $pagesIDs)); } unset($queryList, $pagesIDs); if (!empty($data)) { $exportData = new Zend_Config($data); $themeDataFile = new Zend_Config_Writer_Json(array('config' => $exportData, 'filename' => $themePath . self::THEME_DATA_FILE)); $themeDataFile->write(); } // exporting list of media files $totalFileSize = 0; // initializing files size counter $previewFolder = $this->_websiteHelper->getPreview(); $pagePreviews = array_filter(array_map(function ($page) use($previewFolder) { return !empty($page['preview_image']) ? $previewFolder . $page['preview_image'] : false; }, $data['page'])); $contentImages = array(); // list of images from containers if (!empty($data['container'])) { foreach ($data['container'] as $container) { preg_match_all('~media[^"\']*\\.(?:jpe?g|gif|png)~iu', $container['content'], $matches); if (!empty($matches[0])) { $contentImages = array_merge($contentImages, array_map(function ($file) { $file = explode(DIRECTORY_SEPARATOR, $file); if ($file[2] !== 'original') { $file[2] = 'original'; } return implode(DIRECTORY_SEPARATOR, $file); }, $matches[0])); } unset($matches, $container); } } $mediaFiles = array_merge($pagePreviews, $contentImages, $mediaFiles); $mediaFiles = array_unique(array_filter($mediaFiles)); if (!empty($mediaFiles)) { clearstatcache(); foreach ($mediaFiles as $key => $file) { if (!is_file($websitePath . $file)) { $mediaFiles[$key] = null; continue; } $totalFileSize += filesize($websitePath . $file); } } if ($totalFileSize > self::THEME_FULL_MAX_FILESIZE) { $this->_error('Too many images'); } else { $mediaFiles = array_filter($mediaFiles); } } // if requested name is current one we create system file with template types if ($themeName === $this->_configHelper->getConfig('currentTheme')) { // saving template types into theme.ini. @see Tools_Template_Tools::THEME_CONFIGURATION_FILE $themeIniConfig = new Zend_Config(array(), true); foreach (Application_Model_Mappers_TemplateMapper::getInstance()->fetchAll() as $template) { $themeIniConfig->{$template->getName()} = $template->getType(); } if (!empty($themeIniConfig)) { try { $iniWriter = new Zend_Config_Writer_Ini(array('config' => $themeIniConfig, 'filename' => $themePath . Tools_Template_Tools::THEME_CONFIGURATION_FILE)); $iniWriter->write(); } catch (Exception $e) { Tools_System_Tools::debugMode() && error_log($e->getMessage()); } } unset($themeIniConfig, $iniWriter); } //defining list files that needs to be excluded $excludeFiles = array(); if (!$full) { array_push($excludeFiles, self::THEME_DATA_FILE); } if ($noZip === true) { // backup media files to theme subfolder if (!empty($mediaFiles)) { if (!is_dir($themePath . 'previews')) { Tools_Filesystem_Tools::mkDir($themePath . 'previews'); } if (!is_dir($themePath . 'media')) { Tools_Filesystem_Tools::mkDir($themePath . 'media'); } foreach ($mediaFiles as $file) { if (!is_file($websitePath . $file)) { continue; } $path = explode(DIRECTORY_SEPARATOR, $file); if (!is_array($path) || empty($path)) { continue; } switch ($path[0]) { case 'previews': list($folder, $filename) = $path; break; case 'media': $folder = 'media' . DIRECTORY_SEPARATOR . $path[1]; if (!is_dir($themePath . $folder)) { Tools_Filesystem_Tools::mkDir($themePath . $folder); } $filename = end($path); break; default: continue; break; } $destination = $themePath . $folder . DIRECTORY_SEPARATOR . $filename; try { $r = Tools_Filesystem_Tools::copy($websitePath . $file, $destination); } catch (Exception $e) { Tools_System_Tools::debugMode() && error_log($e->getMessage()); } } } return true; } else { //create theme zip archive $themeArchive = Tools_Theme_Tools::zip($themeName, isset($mediaFiles) ? $mediaFiles : false, $excludeFiles); if ($themeArchive) { $body = file_get_contents($themeArchive); if (false !== $body) { Tools_Filesystem_Tools::deleteFile($themeArchive); } else { $this->_error('Unable to read website archive file'); } } else { $this->_error('Can\'t create website archive'); } //outputting theme zip $this->_response->clearAllHeaders()->clearBody(); $this->_response->setHeader('Content-Disposition', 'attachment; filename=' . $themeName . '.zip')->setHeader('Content-Type', 'application/zip', true)->setHeader('Content-Transfer-Encoding', 'binary', true)->setHeader('Expires', date(DATE_RFC1123), true)->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)->setHeader('Pragma', 'public', true)->setBody($body)->sendResponse(); exit; } }
/** * Method which delete template (AJAX) */ public function deletetemplateAction() { if ($this->getRequest()->isPost()) { $mapper = Application_Model_Mappers_TemplateMapper::getInstance(); $templateId = $this->getRequest()->getPost('id'); if ($templateId) { $template = $mapper->find($templateId); if ($template instanceof Application_Model_Models_Template && !in_array($template->getName(), $this->_protectedTemplates)) { $result = $mapper->delete($template); if ($result) { $currentThemePath = realpath($this->_websiteConfig['path'] . $this->_themeConfig['path'] . $this->_helper->config->getConfig('currentTheme')); $filename = $currentThemePath . DIRECTORY_SEPARATOR; if ($template->getType() === Application_Model_Models_Template::TYPE_MOBILE && preg_match('~^mobile_~', $template->getName())) { $filename .= preg_replace('~^mobile_~', 'mobile' . DIRECTORY_SEPARATOR, $template->getName()); } else { $filename .= $template->getName(); } $filename .= '.html'; Tools_Filesystem_Tools::deleteFile($filename); $status = $this->_translator->translate('Template deleted.'); } else { $status = $this->_translator->translate('Can\'t delete template or template doesn\'t exists.'); } $this->_helper->response->response($status, false); } } $this->_helper->response->response($this->_translator->translate('Template doesn\'t exists'), false); } }
public function receiveformAction() { if ($this->getRequest()->isPost()) { $xmlHttpRequest = $this->_request->isXmlHttpRequest(); $formParams = $this->getRequest()->getParams(); $sessionHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('Session'); if (!empty($formParams)) { $websiteConfig = Zend_Controller_Action_HelperBroker::getExistingHelper('config')->getConfig(); $formMapper = Application_Model_Mappers_FormMapper::getInstance(); // get the form details $form = $formMapper->findByName($formParams['formName']); $useCaptcha = $form->getCaptcha(); //hidden input validation $formName = $form->getName(); $formId = $form->getId(); if (!isset($formParams[md5($formName . $formId)]) || $formParams[md5($formName . $formId)] != '') { if ($xmlHttpRequest) { $this->_helper->response->success($form->getMessageSuccess()); } $this->_redirect($formParams['formUrl']); } unset($formParams[md5($formName . $formId)]); //validating recaptcha if ($useCaptcha == 1) { if (!empty($websiteConfig) && !empty($websiteConfig[Tools_System_Tools::RECAPTCHA_PUBLIC_KEY]) && !empty($websiteConfig[Tools_System_Tools::RECAPTCHA_PRIVATE_KEY]) && isset($formParams['recaptcha_challenge_field']) || isset($formParams['captcha'])) { if (isset($formParams['recaptcha_challenge_field']) && isset($formParams['recaptcha_response_field'])) { if ($formParams['recaptcha_response_field'] == '') { if ($xmlHttpRequest) { $this->_helper->response->fail($this->_helper->language->translate('You\'ve entered an incorrect security text. Please try again.')); } $sessionHelper->toasterFormError = $this->_helper->language->translate('You\'ve entered an incorrect security text. Please try again.'); $this->_redirect($formParams['formUrl']); } $recaptcha = new Zend_Service_ReCaptcha($websiteConfig[Tools_System_Tools::RECAPTCHA_PUBLIC_KEY], $websiteConfig[Tools_System_Tools::RECAPTCHA_PRIVATE_KEY]); $result = $recaptcha->verify($formParams['recaptcha_challenge_field'], $formParams['recaptcha_response_field']); if (!$result->isValid()) { if ($xmlHttpRequest) { $this->_helper->response->fail($this->_helper->language->translate('You\'ve entered an incorrect security text. Please try again.')); } $sessionHelper->toasterFormError = $this->_helper->language->translate('You\'ve entered an incorrect security text. Please try again.'); $this->_redirect($formParams['formUrl']); } unset($formParams['recaptcha_challenge_field']); unset($formParams['recaptcha_response_field']); } else { //validating captcha if (!$this->_validateCaptcha(strtolower($formParams['captcha']), $formParams['captchaId'])) { if ($xmlHttpRequest) { $this->_helper->response->fail($this->_helper->language->translate('You\'ve entered an incorrect security text. Please try again.')); } $sessionHelper->toasterFormError = $this->_helper->language->translate('You\'ve entered an incorrect security text. Please try again.'); $this->_redirect($formParams['formUrl']); } } } else { if ($xmlHttpRequest) { $this->_helper->response->fail($this->_helper->language->translate('You\'ve entered an incorrect security text. Please try again.')); } $sessionHelper->toasterFormError = $this->_helper->language->translate('You\'ve entered an incorrect security text. Please try again.'); $this->_redirect($formParams['formUrl']); } } $sessionHelper->formName = $formParams['formName']; $sessionHelper->formPageId = $formParams['formPageId']; unset($formParams['formPageId']); unset($formParams['submit']); if (isset($formParams['conversionPageUrl'])) { $conversionPageUrl = $formParams['conversionPageUrl']; unset($formParams['conversionPageUrl']); } $attachment = array(); if (!$xmlHttpRequest) { //Adding attachments to email $websitePathTemp = $this->_helper->website->getPath() . $this->_helper->website->getTmp(); $uploader = new Zend_File_Transfer_Adapter_Http(); $uploader->setDestination($websitePathTemp); $uploader->addValidator('Extension', false, self::ATTACHMENTS_FILE_TYPES); //Adding Size limitation $uploader->addValidator('Size', false, $formParams['uploadLimitSize'] * 1024 * 1024); //Adding mime types validation $uploader->addValidator('MimeType', true, array('application/pdf', 'application/xml', 'application/zip', 'text/csv', 'text/plain', 'image/png', 'image/jpeg', 'image/gif', 'image/bmp', 'application/msword', 'application/vnd.ms-excel')); $files = $uploader->getFileInfo(); foreach ($files as $file => $fileInfo) { if ($fileInfo['name'] != '') { if ($uploader->isValid($file)) { $uploader->receive($file); $at = new Zend_Mime_Part(file_get_contents($uploader->getFileName($file))); $at->type = $uploader->getMimeType($file); $at->disposition = Zend_Mime::DISPOSITION_ATTACHMENT; $at->encoding = Zend_Mime::ENCODING_BASE64; $at->filename = $fileInfo['name']; $attachment[] = $at; unset($at); Tools_Filesystem_Tools::deleteFile($this->_helper->website->getPath() . $this->_helper->website->getTmp() . $fileInfo['name']); } else { $validationErrors = $uploader->getErrors(); $errorMessage = ''; foreach ($validationErrors as $errorType) { if ($errorType == 'fileMimeTypeFalse') { $errorMessage .= 'Invalid file format type. '; } if ($errorType == 'fileSizeTooBig') { $errorMessage .= $this->_helper->language->translate('Maximum size upload') . ' ' . $formParams['uploadLimitSize'] . 'mb.'; } if ($errorType == 'fileExtensionFalse') { $errorMessage .= 'File extension not valid. '; } } $sessionHelper->toasterFormError = $this->_helper->language->translate($errorMessage); $this->_redirect($formParams['formUrl']); } } } } unset($formParams['uploadLimitSize']); // sending mails $sysMailWatchdog = new Tools_Mail_SystemMailWatchdog(array('trigger' => Tools_Mail_SystemMailWatchdog::TRIGGER_FORMSENT, 'data' => $formParams, 'attachment' => $attachment)); $mailWatchdog = new Tools_Mail_Watchdog(array('trigger' => Tools_Mail_SystemMailWatchdog::TRIGGER_FORMSENT, 'data' => $formParams, 'attachment' => $attachment)); $mailWatchdog->notify($form); $mailsSent = $sysMailWatchdog->notify($form); if ($mailsSent) { $form->notifyObservers(); if ($xmlHttpRequest) { $this->_helper->response->success($form->getMessageSuccess()); } //redirect to conversion page if ($conversionPageUrl) { $this->_redirect($conversionPageUrl); } $sessionHelper->toasterFormSuccess = $form->getMessageSuccess(); $this->_redirect($formParams['formUrl']); } if ($xmlHttpRequest) { $this->_helper->response->fail($form->getMessageError()); } $sessionHelper->toasterFormError = $form->getMessageError(); $this->_redirect($formParams['formUrl']); } } }
/** * Action used for removing images/files from media catalog * for AJAX request * @return JSON */ public function removefileAction() { if ($this->getRequest()->isPost()) { $folderName = $this->getRequest()->getParam('folder'); if (empty($folderName)) { $this->view->errorMsg = $this->_translator->translate('No folder specified'); return false; } $removeImages = $this->getRequest()->getParam('removeImages'); $removeFiles = $this->getRequest()->getParam('removeFiles'); $errorList = array(); $folderPath = realpath($this->_websiteConfig['path'] . $this->_websiteConfig['media'] . $folderName); if (!isset($removeFiles) && !isset($removeImages)) { $this->view->errorMsg = $this->_translator->translate('Nothing to remove'); } if (!$folderPath || !is_dir($folderPath)) { $this->view->errorMsg = $this->_translator->translate('No such folder'); return false; } //list of removed files $deleted = array(); //processing images if (isset($removeImages) && is_array($removeImages)) { foreach ($removeImages as $imageName) { //checking if this image in any container $pages = $this->_checkFileInContent($folderName . '%' . $imageName); if (!empty($pages)) { array_push($errorList, array('name' => $imageName, 'errors' => $pages)); } else { // going to remove image try { $result = Tools_Image_Tools::removeImageFromFilesystem($imageName, $folderName); if ($result !== true) { array_push($errorList, array('name' => $imageName, 'errors' => $result)); } else { //cleaning out the images related widgets $this->_helper->cache->clean(null, null, array('Widgets_Gal_Gal')); array_push($deleted, $imageName); } } catch (Exceptions_SeotoasterException $e) { error_log($e->getMessage() . PHP_EOL . $e->getTraceAsString()); } } } } //processing files if (isset($removeFiles) && is_array($removeFiles)) { foreach ($removeFiles as $fileName) { if (!is_file($folderPath . DIRECTORY_SEPARATOR . $fileName)) { $errorList[$fileName] = $this->_translator->translate($folderPath . DIRECTORY_SEPARATOR . $fileName . ': file not found'); } //checking if this image in any container $pages = $this->_checkFileInContent($fileName); if (!empty($pages)) { array_push($errorList, array('name' => $fileName, 'errors' => $pages)); } try { $result = Tools_Filesystem_Tools::deleteFile($folderPath . DIRECTORY_SEPARATOR . $fileName); if ($result !== true) { array_push($errorList, array('name' => $fileName, 'errors' => $this->_translator->translate("Can't remove file. Permission denied"))); } else { array_push($deleted, $fileName); } } catch (Exception $e) { error_log($e->getMessage() . PHP_EOL . $e->getTraceAsString()); } } } if (!empty($deleted)) { $folderContent = Tools_Filesystem_Tools::scanDirectory($folderPath, false, true); if (empty($folderContent)) { try { $this->view->folderRemoved = Tools_Filesystem_Tools::deleteDir($folderPath); } catch (Exception $e) { error_log($e->getMessage()); } } } $this->view->errors = empty($errorList) ? false : $errorList; $this->view->deleted = $deleted; } else { $this->_redirect($this->_helper->website->getUrl(), array('exit' => true)); } }
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; }