function getOrCreateThumbnail($fileNo, $refreshUrl, $small = 0, $medium = 0, $large = 0, $frontUpload = 0) { if ($frontUpload) { $returnFrontMessage = ''; } $onlyThumbnailInfo = 0; if ($small == 0 && $medium == 0 && $large == 0) { $onlyThumbnailInfo = 1; } $paramsC = JComponentHelper::getParams('com_phocagallery'); $additional_thumbnails = $paramsC->get('additional_thumbnails', 0); $path = PhocaGalleryPath::getPath(); $origPathServer = str_replace(DS, '/', $path->image_abs); $file['name'] = PhocaGalleryFile::getTitleFromFile($fileNo, 1); $file['name_no'] = ltrim($fileNo, '/'); $file['name_original_abs'] = PhocaGalleryFile::getFileOriginal($fileNo); $file['name_original_rel'] = PhocaGalleryFile::getFileOriginal($fileNo, 1); $file['path_without_file_name_original'] = str_replace($file['name'], '', $file['name_original_abs']); $file['path_without_file_name_thumb'] = str_replace($file['name'], '', $file['name_original_abs'] . 'thumbs' . DS); //$file['path_without_name'] = str_replace(DS, '/', JPath::clean($origPathServer)); //$file['path_with_name_relative_no'] = str_replace($origPathServer, '', $file['name_original']); /* $file['path_with_name_relative'] = $path['orig_rel_ds'] . str_replace($origPathServer, '', $file['name_original']); $file['path_with_name_relative_no'] = str_replace($origPathServer, '', $file['name_original']); $file['path_without_name'] = str_replace(DS, '/', JPath::clean($origPath.DS)); $file['path_without_name_relative'] = $path['orig_rel_ds'] . str_replace($origPathServer, '', $file['path_without_name']); $file['path_without_name_relative_no'] = str_replace($origPathServer, '', $file['path_without_name']); $file['path_without_name_thumbs'] = $file['path_without_name'] .'thumbs'; $file['path_without_file_name_original'] = str_replace($file['name'], '', $file['name_original']); $file['path_without_name_thumbs_no'] = str_replace($file['name'], '', $file['name_original'] .'thumbs');*/ $ext = strtolower(JFile::getExt($file['name'])); switch ($ext) { case 'jpg': case 'png': case 'gif': case 'jpeg': //Get File thumbnails name $thumbNameS = PhocaGalleryFileThumbnail::getThumbnailName($fileNo, 'small'); $file['thumb_name_s_no_abs'] = $thumbNameS->abs; $file['thumb_name_s_no_rel'] = $thumbNameS->rel; $thumbNameM = PhocaGalleryFileThumbnail::getThumbnailName($fileNo, 'medium'); $file['thumb_name_m_no_abs'] = $thumbNameM->abs; $file['thumb_name_m_no_rel'] = $thumbNameM->rel; $thumbNameL = PhocaGalleryFileThumbnail::getThumbnailName($fileNo, 'large'); $file['thumb_name_l_no_abs'] = $thumbNameL->abs; $file['thumb_name_l_no_rel'] = $thumbNameL->rel; // Don't create thumbnails from watermarks... $dontCreateThumb = PhocaGalleryFileThumbnail::dontCreateThumb($file['name']); if ($dontCreateThumb == 1) { $onlyThumbnailInfo = 1; // WE USE $onlyThumbnailInfo FOR NOT CREATE A THUMBNAIL CLAUSE } // We want only information from the pictures OR if ($onlyThumbnailInfo == 0) { $thumbInfo = $fileNo; //Create thumbnail folder if not exists $errorMsg = 'ErrorCreatingFolder'; $creatingFolder = PhocaGalleryFileThumbnail::createThumbnailFolder($file['path_without_file_name_original'], $file['path_without_file_name_thumb'], $errorMsg); switch ($errorMsg) { case 'Success': //case 'ThumbnailExists': //case 'ThumbnailExists': case 'DisabledThumbCreation': //case 'OnlyInformation': break; default: // BACKEND OR FRONTEND if ($frontUpload != 1) { PhocaGalleryRenderProcess::getProcessPage($file['name'], $thumbInfo, $refreshUrl, $errorMsg, $frontUpload); exit; } else { $returnFrontMessage = $errorMsg; } break; } // Folder must exist if (JFolder::exists($file['path_without_file_name_thumb'])) { $errorMsgS = $errorMsgM = $errorMsgL = ''; //Small thumbnail if ($small == 1) { PhocaGalleryFileThumbnail::createFileThumbnail($file['name_original_abs'], $thumbNameS->abs, 'small', $frontUpload, $errorMsgS); if ($additional_thumbnails == 2 || $additional_thumbnails == 3) { PhocaGalleryFileThumbnail::createFileThumbnail($file['name_original_abs'], str_replace('phoca_thumb_s_', 'phoca_thumb_s1_', $thumbNameS->abs), 'small1', $frontUpload, $errorMsgS); PhocaGalleryFileThumbnail::createFileThumbnail($file['name_original_abs'], str_replace('phoca_thumb_s_', 'phoca_thumb_s2_', $thumbNameS->abs), 'small2', $frontUpload, $errorMsgS); PhocaGalleryFileThumbnail::createFileThumbnail($file['name_original_abs'], str_replace('phoca_thumb_s_', 'phoca_thumb_s3_', $thumbNameS->abs), 'small3', $frontUpload, $errorMsgS); } } else { $errorMsgS = 'ThumbnailExists'; // in case we only need medium or large, because of if clause bellow } //Medium thumbnail if ($medium == 1) { PhocaGalleryFileThumbnail::createFileThumbnail($file['name_original_abs'], $thumbNameM->abs, 'medium', $frontUpload, $errorMsgM); if ($additional_thumbnails == 1 || $additional_thumbnails == 3) { PhocaGalleryFileThumbnail::createFileThumbnail($file['name_original_abs'], str_replace('phoca_thumb_m_', 'phoca_thumb_m1_', $thumbNameM->abs), 'medium1', $frontUpload, $errorMsgM); PhocaGalleryFileThumbnail::createFileThumbnail($file['name_original_abs'], str_replace('phoca_thumb_m_', 'phoca_thumb_m2_', $thumbNameM->abs), 'medium2', $frontUpload, $errorMsgM); PhocaGalleryFileThumbnail::createFileThumbnail($file['name_original_abs'], str_replace('phoca_thumb_m_', 'phoca_thumb_m3_', $thumbNameM->abs), 'medium3', $frontUpload, $errorMsgM); } } else { $errorMsgM = 'ThumbnailExists'; // in case we only need small or large, because of if clause bellow } //Large thumbnail if ($large == 1) { PhocaGalleryFileThumbnail::createFileThumbnail($file['name_original_abs'], $thumbNameL->abs, 'large', $frontUpload, $errorMsgL); } else { $errorMsgL = 'ThumbnailExists'; // in case we only need small or medium, because of if clause bellow } // Error messages for all 3 thumbnails (if the message contains error string, we got error // Other strings can be: // - ThumbnailExists - do not display error message nor success page // - OnlyInformation - do not display error message nor success page // - DisabledThumbCreation - do not display error message nor success page $creatingSError = $creatingMError = $creatingLError = false; $creatingSError = preg_match("/Error/i", $errorMsgS); $creatingMError = preg_match("/Error/i", $errorMsgM); $creatingLError = preg_match("/Error/i", $errorMsgL); // BACKEND OR FRONTEND if ($frontUpload != 1) { // There is an error while creating thumbnail in m or in s or in l if ($creatingSError || $creatingMError || $creatingLError) { // if all or two errors appear, we only display the last error message // because the errors in this case is the same if ($errorMsgS != '') { $creatingError = $errorMsgS; } if ($errorMsgM != '') { $creatingError = $errorMsgM; } if ($errorMsgL != '') { $creatingError = $errorMsgL; } PhocaGalleryRenderProcess::getProcessPage($file['name'], $thumbInfo, $refreshUrl, $creatingError); exit; } else { if ($errorMsgS == '' && $errorMsgM == '' && $errorMsgL == '') { PhocaGalleryRenderProcess::getProcessPage($file['name'], $thumbInfo, $refreshUrl); exit; } else { if ($errorMsgS == '' && $errorMsgM == '' && $errorMsgL == 'ThumbnailExists') { PhocaGalleryRenderProcess::getProcessPage($file['name'], $thumbInfo, $refreshUrl); exit; } else { if ($errorMsgS == '' && $errorMsgM == 'ThumbnailExists' && $errorMsgL == 'ThumbnailExists') { PhocaGalleryRenderProcess::getProcessPage($file['name'], $thumbInfo, $refreshUrl); exit; } else { if ($errorMsgS == '' && $errorMsgM == 'ThumbnailExists' && $errorMsgL == '') { PhocaGalleryRenderProcess::getProcessPage($file['name'], $thumbInfo, $refreshUrl); exit; } else { if ($errorMsgS == 'ThumbnailExists' && $errorMsgM == 'ThumbnailExists' && $errorMsgL == '') { PhocaGalleryRenderProcess::getProcessPage($file['name'], $thumbInfo, $refreshUrl); exit; } else { if ($errorMsgS == 'ThumbnailExists' && $errorMsgM == '' && $errorMsgL == '') { PhocaGalleryRenderProcess::getProcessPage($file['name'], $thumbInfo, $refreshUrl); exit; } else { if ($errorMsgS == 'ThumbnailExists' && $errorMsgM == '' && $errorMsgL == 'ThumbnailExists') { PhocaGalleryRenderProcess::getProcessPage($file['name'], $thumbInfo, $refreshUrl); exit; } } } } } } } } } else { // There is an error while creating thumbnail in m or in s or in l if ($creatingSError || $creatingMError || $creatingLError) { // if all or two errors appear, we only display the last error message // because the errors in this case is the same if ($errorMsgS != '') { $creatingError = $errorMsgS; } if ($errorMsgM != '') { $creatingError = $errorMsgM; } if ($errorMsgL != '') { $creatingError = $errorMsgL; } // because the errors in this case is the same $returnFrontMessage = $creatingError; } else { if ($errorMsgS == '' && $errorMsgM == '' && $errorMsgL == '') { $returnFrontMessage = 'Success'; } else { if ($errorMsgS == '' && $errorMsgM == '' && $errorMsgL == 'ThumbnailExists') { $returnFrontMessage = 'Success'; } else { if ($errorMsgS == '' && $errorMsgM == 'ThumbnailExists' && $errorMsgL == 'ThumbnailExists') { $returnFrontMessage = 'Success'; } else { if ($errorMsgS == '' && $errorMsgM == 'ThumbnailExists' && $errorMsgL == '') { $returnFrontMessage = 'Success'; } else { if ($errorMsgS == 'ThumbnailExists' && $errorMsgM == 'ThumbnailExists' && $errorMsgL == '') { $returnFrontMessage = 'Success'; } else { if ($errorMsgS == 'ThumbnailExists' && $errorMsgM == '' && $errorMsgL == '') { $returnFrontMessage = 'Success'; } else { if ($errorMsgS == 'ThumbnailExists' && $errorMsgM == '' && $errorMsgL == 'ThumbnailExists') { $returnFrontMessage = 'Success'; } } } } } } } } } if ($frontUpload == 1) { return $returnFrontMessage; } } } break; } return $file; }