public function save($data, $method = 'm', $keyCachePlus = '') { if ('m' === $method) { $data = Utils::mergeArrays(array($this->get($keyCachePlus), $data)); } $this->_cacheObject->set_cache($this->_key . $keyCachePlus, $data); return true; }
public function run() { $wpExtend = $this->di->getShared('wpExtend'); $hook = $this->di->getShared('hook'); $resultData = array('status' => 1); $dataSent = PepVN_Data::getDataSent(); if ($dataSent && isset($dataSent['localTimeSent']) && $dataSent['localTimeSent']) { if (isset($dataSent['preview_optimize_traffic_modules']) && $dataSent['preview_optimize_traffic_modules']) { if ($wpExtend->is_admin()) { if ($wpExtend->isCurrentUserCanManagePlugin()) { $optimizeTraffic = $this->di->getShared('optimizeTraffic'); $rsOne = $optimizeTraffic->preview_optimize_traffic_modules($dataSent); $resultData = Utils::mergeArrays(array($resultData, $rsOne)); unset($rsOne); } } } } if ($hook->has_filter('ajax')) { $rsOne = $hook->apply_filters('ajax', $dataSent); if (is_array($rsOne)) { $resultData = Utils::mergeArrays(array($resultData, $rsOne)); } unset($rsOne); } if (isset($dataSent['cronjob']['status']) && $dataSent['cronjob']['status']) { $cronjob = new ServiceCronjob($this->di); $cronjob->run(); } if (isset($resultData['notice']['success']) && $resultData['notice']['success'] && is_array($resultData['notice']['success'])) { $resultData['notice']['success'] = array_unique($resultData['notice']['success']); } if (isset($resultData['notice']['error']) && $resultData['notice']['error'] && is_array($resultData['notice']['error'])) { $resultData['notice']['error'] = array_unique($resultData['notice']['error']); } PepVN_Data::encodeResponseData($resultData, true); unset($resultData); ob_end_flush(); exit; }
public function process_image($input_parameters) { $resultData = array(); $resultData['image_original_file_path'] = false; $resultData['image_optimized_file_path'] = false; $resultData['image_optimized_file_url'] = false; if (false === $this->_isSystemReadyToHandleImagesStatus) { return $resultData; } if (!isset(PepVN_Data::$params['optimize_images']['number_images_processed_request'])) { PepVN_Data::$params['optimize_images']['number_images_processed_request'] = 0; } $options = false; $paramsWatermarkOptions = false; if (isset($input_parameters['options']) && $input_parameters['options']) { $options = $input_parameters['options']; } if (isset($input_parameters['paramsWatermarkOptions']) && $input_parameters['paramsWatermarkOptions']) { $paramsWatermarkOptions = $input_parameters['paramsWatermarkOptions']; } unset($input_parameters['options']); unset($input_parameters['paramsWatermarkOptions']); if (!$options) { $options = self::getOption(); } if (isset($options['optimize_images_optimize_image_file_enable']) && 'on' === $options['optimize_images_optimize_image_file_enable']) { } else { return $resultData; } if (!$paramsWatermarkOptions) { $rsSettingWatermarksFirstOptions = $this->parse_watermarks_first_options(array('options' => $options)); $paramsWatermarkOptions = $rsSettingWatermarksFirstOptions['paramsWatermarkOptions']; $options = $rsSettingWatermarksFirstOptions['options']; unset($rsSettingWatermarksFirstOptions); } if (isset($input_parameters['plusOptions']) && is_array($input_parameters['plusOptions'])) { $options = Utils::mergeArrays(array($options, $input_parameters['plusOptions'])); } if (isset($paramsWatermarkOptions['text']) && is_array($paramsWatermarkOptions['text']) && !empty($paramsWatermarkOptions['text'])) { } else { $paramsWatermarkOptions['text'] = false; } if (isset($paramsWatermarkOptions['image']) && is_array($paramsWatermarkOptions['image']) && !empty($paramsWatermarkOptions['image'])) { } else { $paramsWatermarkOptions['image'] = false; } if (isset($options['optimize_images_watermarks_enable']) && 'on' === $options['optimize_images_watermarks_enable']) { } else { $paramsWatermarkOptions['text'] = false; $paramsWatermarkOptions['image'] = false; } $isProcessStatus = false; if ($paramsWatermarkOptions['text'] || $paramsWatermarkOptions['image']) { $isProcessStatus = true; } $options['optimize_images_image_quality_value'] = abs((int) $options['optimize_images_image_quality_value']); if ($options['optimize_images_image_quality_value'] >= 10 && $options['optimize_images_image_quality_value'] < 100) { $isProcessStatus = true; } $options['optimize_images_rename_img_filename_value'] = trim($options['optimize_images_rename_img_filename_value']); if ($options['optimize_images_rename_img_filename_value']) { $isProcessStatus = true; } $optimize_images_file_exclude_external_url_pattern = false; if (isset($options['optimize_images_file_exclude_external_url']) && $options['optimize_images_file_exclude_external_url']) { $options['optimize_images_file_exclude_external_url'] = trim($options['optimize_images_file_exclude_external_url']); if ($options['optimize_images_file_exclude_external_url']) { $tmp = PepVN_Data::cleanPregPatternsArray($options['optimize_images_file_exclude_external_url']); if ($tmp && !empty($tmp)) { $optimize_images_file_exclude_external_url_pattern = '#(' . implode('|', $tmp) . ')#i'; } unset($tmp); } } if ($isProcessStatus) { if (isset($input_parameters['original_image_src']) && $input_parameters['original_image_src']) { if (Utils::isImageUrl($input_parameters['original_image_src'])) { if (isset($options['optimize_images_file_exclude_external_url_enable']) && 'on' === $options['optimize_images_file_exclude_external_url_enable']) { if (!Utils::isUrlSameDomain($input_parameters['original_image_src'], PepVN_Data::$defaultParams['domainName'], false)) { $isProcessStatus = false; } } if ($isProcessStatus) { if ($optimize_images_file_exclude_external_url_pattern) { if (preg_match($optimize_images_file_exclude_external_url_pattern, $input_parameters['original_image_src'])) { $isProcessStatus = false; } } } } else { $isProcessStatus = false; } } else { $isProcessStatus = false; } } if ($isProcessStatus) { $options['optimize_images_maximum_files_handled_each_request'] = (int) $options['optimize_images_maximum_files_handled_each_request']; if ($options['optimize_images_maximum_files_handled_each_request'] > 0) { if (PepVN_Data::$params['optimize_images']['number_images_processed_request'] >= $options['optimize_images_maximum_files_handled_each_request']) { $isProcessStatus = false; } } } if ($isProcessStatus) { if (!isset($input_parameters['optimized_image_file_name'])) { $input_parameters['optimized_image_file_name'] = ''; } if (!$input_parameters['optimized_image_file_name']) { $imgPathInfo = pathinfo($input_parameters['original_image_src']); if (isset($imgPathInfo['filename']) && $imgPathInfo['filename']) { $input_parameters['optimized_image_file_name'] = trim($imgPathInfo['filename']); } } if (!$input_parameters['optimized_image_file_name']) { $isProcessStatus = false; } } if (!$isProcessStatus) { return $resultData; } $options['optimize_images_file_maximum_width_height'] = (int) $options['optimize_images_file_maximum_width_height']; $options['optimize_images_file_minimum_width_height'] = (int) $options['optimize_images_file_minimum_width_height']; if (!isset($input_parameters['resize_max_width'])) { $input_parameters['resize_max_width'] = 0; } $input_parameters['resize_max_width'] = (int) $input_parameters['resize_max_width']; $input_parameters['resize_max_width'] = abs($input_parameters['resize_max_width']); if (!isset($input_parameters['resize_max_height'])) { $input_parameters['resize_max_height'] = 0; } $input_parameters['resize_max_height'] = (int) $input_parameters['resize_max_height']; $input_parameters['resize_max_height'] = abs($input_parameters['resize_max_height']); if (!isset($input_parameters['optimized_image_folder_path'])) { $input_parameters['optimized_image_folder_path'] = ''; } if (!$input_parameters['optimized_image_folder_path']) { /* * Dont't edit here, it make key for each image's url */ $input_parameters['optimized_image_folder_path'] = $this->_folderStorePath; $imgKey1 = array(); $imgKey1[] = PepVN_Data::$defaultParams['fullDomainName']; //add domain in case use watermark for each domain $imgKey1[] = $input_parameters['original_image_src']; $imgKey1 = $this->_createKey($imgKey1); $imgKey1 = $this->_hashCreateKey($imgKey1, 8); $input_parameters['optimized_image_folder_path'] .= substr($imgKey1, 0, 2) . DIRECTORY_SEPARATOR . $imgKey1 . DIRECTORY_SEPARATOR; /* * Dont't edit here, it make key for each image's url */ } $keyConfigsProcessedData = ''; if (isset($options['optimize_images_handle_again_files_different_configuration_enable']) && 'on' === $options['optimize_images_handle_again_files_different_configuration_enable']) { /* * Dont't edit here, it make key for each image's url */ $fieldsKeysProcessedData = array('optimize_images_watermarks_enable', 'optimize_images_watermarks_watermark_position', 'optimize_images_watermarks_watermark_type', 'optimize_images_watermarks_watermark_text_value', 'optimize_images_watermarks_watermark_text_font_name', 'optimize_images_watermarks_watermark_text_size', 'optimize_images_watermarks_watermark_text_color', 'optimize_images_watermarks_watermark_text_margin_x', 'optimize_images_watermarks_watermark_text_margin_y', 'optimize_images_watermarks_watermark_text_opacity_value', 'optimize_images_watermarks_watermark_text_background_enable', 'optimize_images_watermarks_watermark_text_background_color', 'optimize_images_watermarks_watermark_image_url', 'optimize_images_watermarks_watermark_image_width', 'optimize_images_watermarks_watermark_image_margin_x', 'optimize_images_watermarks_watermark_image_margin_y', 'optimize_images_image_quality_value', 'optimize_images_rename_img_filename_value'); $keyConfigsProcessedData = array(); foreach ($fieldsKeysProcessedData as $value1) { if ($value1) { if (isset($options[$value1])) { $keyConfigsProcessedData[$value1] = $options[$value1]; } } } $keyConfigsProcessedData = $this->_createKey($keyConfigsProcessedData); /* * Dont't edit here, it make key for each image's url */ } $keyConfigsProcessedData = trim($keyConfigsProcessedData); /* * Dont't edit here, it make key for each image's url */ $keyFileConfigsProcessedData = $keyConfigsProcessedData; $keyFileConfigsProcessedData = md5($keyFileConfigsProcessedData); $keyFileConfigsProcessedData = $this->_hashCreateKey($keyFileConfigsProcessedData, 2); /* * Dont't edit here, it make key for each image's url */ $input_parameters['optimized_image_file_name'] = $this->_fixFileName($input_parameters['optimized_image_file_name']); $imgOptimizedFilePathExists1 = false; $imgOptimizedFilePath1 = $input_parameters['optimized_image_folder_path'] . $input_parameters['optimized_image_file_name'] . '-' . $keyFileConfigsProcessedData; if ($input_parameters['resize_max_width'] > 0 || $input_parameters['resize_max_height'] > 0) { $imgOptimizedFilePath1 .= '-' . $input_parameters['resize_max_width'] . 'x' . $input_parameters['resize_max_height']; } foreach ($this->imageExtensionsAllow as $key1 => $value1) { if ($value1) { $tmp = $imgOptimizedFilePath1 . '.' . $value1; if (is_file($tmp)) { if (filesize($tmp) > 0) { $imgOptimizedFilePathExists1 = $tmp; break; } } } } if ($imgOptimizedFilePathExists1) { $rsGetimagesize = getimagesize($imgOptimizedFilePathExists1); if ($rsGetimagesize && isset($rsGetimagesize[0]) && $rsGetimagesize[0]) { $resultData['image_optimized_file_path'] = $imgOptimizedFilePathExists1; $resultData['image_optimized_file_url'] = str_replace($this->_folderStorePath, $this->_folderStoreUrl, $resultData['image_optimized_file_path']); $resultData['image_optimized_width'] = (int) $rsGetimagesize[0]; $resultData['image_optimized_height'] = (int) $rsGetimagesize[1]; return $resultData; } } $checkStatus1 = false; if (isset($input_parameters['action']) && $input_parameters['action']) { if ('do_process_image' === $input_parameters['action']) { $checkStatus1 = true; } // else only check if file images processed exist } if (!$checkStatus1) { return $resultData; } $remote = $this->di->getShared('remote'); if (isset($input_parameters['original_image_src']) && $input_parameters['original_image_src']) { if (Utils::isUrl($input_parameters['original_image_src'])) { $imgOptimizedFilePath = false; if ($input_parameters['optimized_image_folder_path'] && is_dir($input_parameters['optimized_image_folder_path'])) { } else { System::mkdir($input_parameters['optimized_image_folder_path']); } if (is_dir($input_parameters['optimized_image_folder_path']) && is_readable($input_parameters['optimized_image_folder_path']) && is_writable($input_parameters['optimized_image_folder_path'])) { if (!$resultData['image_optimized_file_path']) { $imgFolderCachePath = $this->_folderCachePath; if ($imgFolderCachePath && is_dir($imgFolderCachePath) && is_readable($imgFolderCachePath) && is_writable($imgFolderCachePath)) { $imgOriginalCacheFilePath = $imgFolderCachePath . DIRECTORY_SEPARATOR; $imgOriginalCacheFilePath .= md5($input_parameters['original_image_src']) . '.txt'; if (!is_file($imgOriginalCacheFilePath)) { file_put_contents($imgOriginalCacheFilePath, ''); $imgSrcContent = $remote->get($input_parameters['original_image_src'], array('cache_timeout' => WP_PEPVN_CACHE_TIMEOUT_NORMAL)); if ($imgSrcContent) { file_put_contents($imgOriginalCacheFilePath, $imgSrcContent); } } if (is_file($imgOriginalCacheFilePath)) { $valueTemp1 = filesize($imgOriginalCacheFilePath); if ($valueTemp1 && $valueTemp1 > 0) { if ($this->_isImageFileCanProcess($imgOriginalCacheFilePath)) { $imgOriginalCacheFile_RsGetImageFileInfo = $this->_getImageFileInfo($imgOriginalCacheFilePath); if (isset($imgOriginalCacheFile_RsGetImageFileInfo['image_type']) && $imgOriginalCacheFile_RsGetImageFileInfo['image_type']) { PepVN_Data::$params['optimize_images']['number_images_processed_request']++; $imgOptimizedFilePath1 .= '.' . $imgOriginalCacheFile_RsGetImageFileInfo['image_type']; if (!is_file($imgOptimizedFilePath1)) { file_put_contents($imgOptimizedFilePath1, ''); } $isCanProcessFileStatus1 = true; if ($options['optimize_images_file_minimum_width_height'] > 0 || $options['optimize_images_file_maximum_width_height'] > 0) { $isCanProcessFileStatus1 = false; if (isset($imgOriginalCacheFile_RsGetImageFileInfo['width']) && $imgOriginalCacheFile_RsGetImageFileInfo['width'] > 0 && isset($imgOriginalCacheFile_RsGetImageFileInfo['height']) && $imgOriginalCacheFile_RsGetImageFileInfo['height'] > 0) { $isCanProcessFileStatus1 = true; if ($isCanProcessFileStatus1) { if ($options['optimize_images_file_minimum_width_height'] > 0) { if ($imgOriginalCacheFile_RsGetImageFileInfo['width'] >= $options['optimize_images_file_minimum_width_height'] && $imgOriginalCacheFile_RsGetImageFileInfo['height'] >= $options['optimize_images_file_minimum_width_height']) { } else { $isCanProcessFileStatus1 = false; } } } if ($isCanProcessFileStatus1) { if ($options['optimize_images_file_maximum_width_height'] > 0) { if ($imgOriginalCacheFile_RsGetImageFileInfo['width'] <= $options['optimize_images_file_maximum_width_height'] && $imgOriginalCacheFile_RsGetImageFileInfo['height'] <= $options['optimize_images_file_maximum_width_height']) { } else { $isCanProcessFileStatus1 = false; } } } } } if (!$isCanProcessFileStatus1) { return $resultData; } $resultData['image_original_file_path'] = $imgOriginalCacheFilePath; $pepVN_PHPImage = new PepVN_PHPImage($imgOriginalCacheFilePath); if ($options['optimize_images_image_quality_value'] > 95) { $options['optimize_images_image_quality_value'] = 95; } $pepVN_PHPImage->setQuality($options['optimize_images_image_quality_value']); $imgOriginalCacheFile_RatioWidthPerHeight = $imgOriginalCacheFile_RsGetImageFileInfo['width'] / $imgOriginalCacheFile_RsGetImageFileInfo['height']; $imgOriginalCacheFile_RatioWidthPerHeight = (double) $imgOriginalCacheFile_RatioWidthPerHeight; $resizeImgNewWidth = 0; $resizeImgNewHeight = 0; $isCanWatermarkStatus1 = true; if ($input_parameters['resize_max_width'] > 0 || $input_parameters['resize_max_height'] > 0) { if ($isCanWatermarkStatus1) { if ($options['optimize_images_file_minimum_width_height'] > 0) { if ($input_parameters['resize_max_width'] > 0) { if ($input_parameters['resize_max_width'] < $options['optimize_images_file_minimum_width_height']) { $isCanWatermarkStatus1 = false; } } if ($input_parameters['resize_max_height'] > 0) { if ($input_parameters['resize_max_height'] < $options['optimize_images_file_minimum_width_height']) { $isCanWatermarkStatus1 = false; } } } } if ($isCanWatermarkStatus1) { if ($options['optimize_images_file_maximum_width_height'] > 0) { if ($input_parameters['resize_max_width'] > 0) { if ($input_parameters['resize_max_width'] > $options['optimize_images_file_maximum_width_height']) { $isCanWatermarkStatus1 = false; } } if ($input_parameters['resize_max_height'] > 0) { if ($input_parameters['resize_max_height'] > $options['optimize_images_file_maximum_width_height']) { $isCanWatermarkStatus1 = false; } } } } $resizeImgNewWidth = $input_parameters['resize_max_width']; $resizeImgNewHeight = $input_parameters['resize_max_height']; if ($resizeImgNewWidth > $imgOriginalCacheFile_RsGetImageFileInfo['width']) { $resizeImgNewWidth = $imgOriginalCacheFile_RsGetImageFileInfo['width']; } if ($resizeImgNewHeight > $imgOriginalCacheFile_RsGetImageFileInfo['height']) { $resizeImgNewHeight = $imgOriginalCacheFile_RsGetImageFileInfo['height']; } if ($resizeImgNewWidth > 0) { if (0 === $resizeImgNewHeight) { $resizeImgNewHeight = ceil($resizeImgNewWidth / $imgOriginalCacheFile_RatioWidthPerHeight); } } if ($resizeImgNewHeight > 0) { if (0 === $resizeImgNewWidth) { $resizeImgNewWidth = ceil($resizeImgNewHeight * $imgOriginalCacheFile_RatioWidthPerHeight); } } if ($resizeImgNewWidth > 0 && $resizeImgNewHeight > 0) { $pepVN_PHPImage->resize($resizeImgNewWidth, $resizeImgNewHeight, false, false); } } if ($resizeImgNewWidth > 0 && $resizeImgNewHeight > 0) { $targetImgNeedWatermark_Width = $resizeImgNewWidth; $targetImgNeedWatermark_Height = $resizeImgNewHeight; } else { $targetImgNeedWatermark_Width = $imgOriginalCacheFile_RsGetImageFileInfo[0]; $targetImgNeedWatermark_Height = $imgOriginalCacheFile_RsGetImageFileInfo[1]; } if ($paramsWatermarkOptions['text'] && $isCanWatermarkStatus1) { $watermarkTextBoxWidth = 0; $watermarkTextBoxHeight = 0; $textFontSize = 12; $boxPaddingX = 0; $boxPaddingY = 0; if ($paramsWatermarkOptions['text']) { if (isset($paramsWatermarkOptions['text']['fontSize']) && $paramsWatermarkOptions['text']['fontSize']) { $paramsWatermarkOptions['text']['fontSize'] = (int) $paramsWatermarkOptions['text']['fontSize']; if ($paramsWatermarkOptions['text']['fontSize'] > 0) { $textFontSize = $paramsWatermarkOptions['text']['fontSize']; } } if (isset($options['optimize_images_watermarks_watermark_text_size']) && $options['optimize_images_watermarks_watermark_text_size']) { if (false !== stripos($options['optimize_images_watermarks_watermark_text_size'], '%')) { $valueTemp = $options['optimize_images_watermarks_watermark_text_size']; $valueTemp = preg_replace('#[^0-9]+#i', '', $valueTemp); $valueTemp = (int) $valueTemp; $valueTemp = abs($valueTemp); if ($valueTemp > 100) { $valueTemp = 100; } $watermarkTextBoxWidth = $targetImgNeedWatermark_Width * ($valueTemp / 100); $watermarkTextBoxWidth = floor($watermarkTextBoxWidth); $watermarkTextBoxWidth = (int) $watermarkTextBoxWidth; $watermarkTextBoxHeight = $imgOriginalCacheFile_RsGetImageFileInfo[1] * ($valueTemp / 100); $watermarkTextBoxHeight = floor($watermarkTextBoxHeight); $watermarkTextBoxHeight = (int) $watermarkTextBoxHeight; $textFontSize = PepVN_Images::fitTextSizeToBoxSize(0, 0, $paramsWatermarkOptions['text']['fontFile'], $options['optimize_images_watermarks_watermark_text_value'], $watermarkTextBoxWidth, $watermarkTextBoxHeight); } } } $textFontSize = (int) $textFontSize; if ($textFontSize > 0) { $paramsWatermarkOptions['text']['fontSize'] = $textFontSize; $rsCalculateText = PepVN_Images::calculateText($textFontSize, 0, $paramsWatermarkOptions['text']['fontFile'], $options['optimize_images_watermarks_watermark_text_value']); $watermarkTextBoxWidth = $rsCalculateText['actualWidth']; $watermarkTextBoxHeight = $rsCalculateText['actualHeight']; } $watermarkTextBoxWidth = (int) $watermarkTextBoxWidth; $watermarkTextBoxHeight = (int) $watermarkTextBoxHeight; if ($watermarkTextBoxWidth > 0 && $watermarkTextBoxHeight > 0) { if (isset($paramsWatermarkOptions['text']['boxColor']) && $paramsWatermarkOptions['text']['boxColor']) { $boxPaddingX = $paramsWatermarkOptions['text']['boxPaddingX']; if (false !== stripos($boxPaddingX, '%')) { $boxPaddingX = preg_replace('#[^0-9]+#is', '', $boxPaddingX); $boxPaddingX = abs((int) $boxPaddingX); $boxPaddingX = $watermarkTextBoxWidth * ($boxPaddingX / 100); } $boxPaddingX = abs((int) $boxPaddingX); $watermarkTextBoxWidth += $boxPaddingX * 2; $boxPaddingY = $paramsWatermarkOptions['text']['boxPaddingY']; if (false !== stripos($boxPaddingY, '%')) { $boxPaddingY = preg_replace('#[^0-9]+#is', '', $boxPaddingY); $boxPaddingY = abs((int) $boxPaddingY); $boxPaddingY = $watermarkTextBoxWidth * ($boxPaddingY / 100); } $boxPaddingY = abs((int) $boxPaddingY); $watermarkTextBoxHeight += $boxPaddingY * 2; } } $options['optimize_images_watermarks_watermark_text_margin_x'] = (int) $options['optimize_images_watermarks_watermark_text_margin_x']; $options['optimize_images_watermarks_watermark_text_margin_y'] = (int) $options['optimize_images_watermarks_watermark_text_margin_y']; if (isset($options['optimize_images_watermarks_watermark_position']) && $options['optimize_images_watermarks_watermark_position']) { $options_optimize_images_watermarks_watermark_position = $options['optimize_images_watermarks_watermark_position']; $options_optimize_images_watermarks_watermark_position = (array) $options_optimize_images_watermarks_watermark_position; foreach ($options_optimize_images_watermarks_watermark_position as $value1) { if ($value1) { $value1 = trim($value1); if ($value1) { if ($paramsWatermarkOptions['text']) { if ($watermarkTextBoxWidth > 0 && $watermarkTextBoxHeight > 0) { $paramsWatermarkOptions_Temp1 = $paramsWatermarkOptions['text']; if (false !== stripos($value1, 'top_')) { $paramsWatermarkOptions_Temp1['y'] = 0 + abs((int) $options['optimize_images_watermarks_watermark_text_margin_y']); } else { if (false !== stripos($value1, 'middle_')) { $paramsWatermarkOptions_Temp1['y'] = floor(($imgOriginalCacheFile_RsGetImageFileInfo[1] - $watermarkTextBoxHeight) / 2) + $options['optimize_images_watermarks_watermark_text_margin_y']; } else { if (false !== stripos($value1, 'bottom_')) { $paramsWatermarkOptions_Temp1['y'] = $imgOriginalCacheFile_RsGetImageFileInfo[1] - $watermarkTextBoxHeight - abs((int) $options['optimize_images_watermarks_watermark_text_margin_y']); } } } if (false !== stripos($value1, '_left')) { $paramsWatermarkOptions_Temp1['x'] = 0 + abs((int) $options['optimize_images_watermarks_watermark_text_margin_x']); } else { if (false !== stripos($value1, '_center')) { $paramsWatermarkOptions_Temp1['x'] = floor(abs($targetImgNeedWatermark_Width - $watermarkTextBoxWidth) / 2) + $options['optimize_images_watermarks_watermark_text_margin_x']; } else { if (false !== stripos($value1, '_right')) { $paramsWatermarkOptions_Temp1['x'] = $targetImgNeedWatermark_Width - $watermarkTextBoxWidth - abs((int) $options['optimize_images_watermarks_watermark_text_margin_x']); } } } $paramsWatermarkOptions_Temp1['boxPaddingX'] = abs((int) $boxPaddingX); $paramsWatermarkOptions_Temp1['boxPaddingY'] = abs((int) $boxPaddingY); $pepVN_PHPImage->text($options['optimize_images_watermarks_watermark_text_value'], $paramsWatermarkOptions_Temp1); } } } } } //loop watermark_position } } if ($paramsWatermarkOptions['image'] && $isCanWatermarkStatus1) { if (isset($paramsWatermarkOptions['image']['watermark_image_file_path']) && $paramsWatermarkOptions['image']['watermark_image_file_path']) { $options['optimize_images_watermarks_watermark_image_margin_x'] = (int) $options['optimize_images_watermarks_watermark_image_margin_x']; $options['optimize_images_watermarks_watermark_image_margin_y'] = (int) $options['optimize_images_watermarks_watermark_image_margin_y']; $watermarkActualBoxWidth = 0; $watermarkActualBoxHeight = 0; $watermarkNewBoxWidth = 0; $watermarkNewBoxHeight = 0; $watermarkImg_RsGetImageInfo = PepVN_Images::getImageInfo($paramsWatermarkOptions['image']['watermark_image_file_path'], true); if (isset($watermarkImg_RsGetImageInfo['image_resource']) && $watermarkImg_RsGetImageInfo['image_resource']) { $watermarkActualBoxWidth = $watermarkImg_RsGetImageInfo['width']; $watermarkActualBoxHeight = $watermarkImg_RsGetImageInfo['height']; } $watermarkImg_Resource = false; $watermarkActualBoxWidth = (int) $watermarkActualBoxWidth; $watermarkActualBoxHeight = (int) $watermarkActualBoxHeight; $watermarkActualBoxRatio_WidthPerHeight = 0; $watermarkNewBoxWidth = $watermarkActualBoxWidth; $watermarkNewBoxHeight = $watermarkActualBoxHeight; $watermarkImageResource = false; if ($watermarkActualBoxWidth > 0 && $watermarkActualBoxHeight > 0) { $watermarkActualBoxRatio_WidthPerHeight = $watermarkActualBoxWidth / $watermarkNewBoxHeight; $watermarkActualBoxRatio_WidthPerHeight = (double) $watermarkActualBoxRatio_WidthPerHeight; if (isset($options['optimize_images_watermarks_watermark_image_width']) && $options['optimize_images_watermarks_watermark_image_width']) { if (false !== stripos($options['optimize_images_watermarks_watermark_image_width'], '%')) { $percentNewSize = $options['optimize_images_watermarks_watermark_image_width']; $percentNewSize = preg_replace('#[^0-9]+#i', '', $percentNewSize); $percentNewSize = abs((int) $percentNewSize); if ($percentNewSize > 100) { $percentNewSize = 100; } $watermarkNewBoxWidth = floor($targetImgNeedWatermark_Width * ($percentNewSize / 100)); $watermarkNewBoxWidth = (int) $watermarkNewBoxWidth; $watermarkNewBoxHeight = floor($watermarkNewBoxWidth / $watermarkActualBoxRatio_WidthPerHeight); $watermarkNewBoxHeight = (int) $watermarkNewBoxHeight; } else { $options['optimize_images_watermarks_watermark_image_width'] = abs((int) $options['optimize_images_watermarks_watermark_image_width']); if ($options['optimize_images_watermarks_watermark_image_width'] > 0) { $watermarkNewBoxWidth = $options['optimize_images_watermarks_watermark_image_width']; $watermarkNewBoxHeight = floor($watermarkNewBoxWidth / $watermarkActualBoxRatio_WidthPerHeight); $watermarkNewBoxHeight = (int) $watermarkNewBoxHeight; } } } $watermarkImg_Resource = PepVN_Images::create_blank_transparent_image_resource($watermarkNewBoxWidth, $watermarkNewBoxHeight); imagecopyresampled($watermarkImg_Resource, $watermarkImg_RsGetImageInfo['image_resource'], 0, 0, 0, 0, $watermarkNewBoxWidth, $watermarkNewBoxHeight, $watermarkActualBoxWidth, $watermarkActualBoxHeight); if ($watermarkImg_Resource && is_resource($watermarkImg_Resource) && isset($options['optimize_images_watermarks_watermark_position']) && $options['optimize_images_watermarks_watermark_position']) { $options_optimize_images_watermarks_watermark_position = $options['optimize_images_watermarks_watermark_position']; $options_optimize_images_watermarks_watermark_position = (array) $options_optimize_images_watermarks_watermark_position; foreach ($options_optimize_images_watermarks_watermark_position as $value1) { if ($value1) { $value1 = trim($value1); if ($value1) { $paramsWatermarkOptions_Temp1 = array(); $paramsWatermarkOptions_Temp1['x'] = 0; $paramsWatermarkOptions_Temp1['y'] = 0; if (false !== stripos($value1, 'top_')) { $paramsWatermarkOptions_Temp1['y'] = 0 + abs((int) $options['optimize_images_watermarks_watermark_image_margin_y']); } else { if (false !== stripos($value1, 'middle_')) { $paramsWatermarkOptions_Temp1['y'] = floor(($imgOriginalCacheFile_RsGetImageFileInfo[1] - $watermarkNewBoxHeight) / 2) + $options['optimize_images_watermarks_watermark_image_margin_y']; } else { if (false !== stripos($value1, 'bottom_')) { $paramsWatermarkOptions_Temp1['y'] = $imgOriginalCacheFile_RsGetImageFileInfo[1] - $watermarkNewBoxHeight - abs((int) $options['optimize_images_watermarks_watermark_image_margin_y']); } } } if (false !== stripos($value1, '_left')) { $paramsWatermarkOptions_Temp1['x'] = 0 + abs((int) $options['optimize_images_watermarks_watermark_image_margin_x']); } else { if (false !== stripos($value1, '_center')) { $paramsWatermarkOptions_Temp1['x'] = floor(abs($targetImgNeedWatermark_Width - $watermarkNewBoxWidth) / 2) + $options['optimize_images_watermarks_watermark_image_margin_x']; } else { if (false !== stripos($value1, '_right')) { $paramsWatermarkOptions_Temp1['x'] = $targetImgNeedWatermark_Width - $watermarkNewBoxWidth - abs((int) $options['optimize_images_watermarks_watermark_image_margin_x']); } } } $pepVN_PHPImage->drawFromResource($watermarkImg_Resource, $paramsWatermarkOptions_Temp1); } } } //loop watermark_position } } if (isset($watermarkImg_RsGetImageInfo['image_resource']) && $watermarkImg_RsGetImageInfo['image_resource'] && is_resource($watermarkImg_RsGetImageInfo['image_resource'])) { imagedestroy($watermarkImg_RsGetImageInfo['image_resource']); } $watermarkImg_RsGetImageInfo = false; if ($watermarkImg_Resource && is_resource($watermarkImg_Resource)) { imagedestroy($watermarkImg_Resource); } $watermarkImg_Resource = false; } } $pepVN_PHPImage->save($imgOptimizedFilePath1, false, true); $pepVN_PHPImage->cleanup(); unset($pepVN_PHPImage); } $valueTemp1 = $imgOptimizedFilePath1; if ($valueTemp1 && is_file($valueTemp1)) { $valueTemp2 = filesize($valueTemp1); if ($valueTemp2 && $valueTemp2 > 0) { $rs_getimagesize = getimagesize($valueTemp1); if ($rs_getimagesize && isset($rs_getimagesize[0]) && $rs_getimagesize[0]) { $resultData['image_optimized_file_path'] = $valueTemp1; $resultData['image_optimized_file_url'] = str_replace($this->_folderStorePath, $this->_folderStoreUrl, $resultData['image_optimized_file_path']); $resultData['image_optimized_width'] = (int) $rs_getimagesize[0]; $resultData['image_optimized_height'] = (int) $rs_getimagesize[1]; } } } } } } } } if ($resultData['image_optimized_file_path']) { if ($keyConfigsProcessedData) { if (isset($options['optimize_images_remove_files_available_different_configuration_enable']) && 'on' === $options['optimize_images_remove_files_available_different_configuration_enable']) { $this->optimize_images_clean_unuse_image(array('optimized_image_folder_path' => $input_parameters['optimized_image_folder_path'], 'key_file' => $keyFileConfigsProcessedData)); } } } } } } return $resultData; }
public static function getDataSent() { $keyCache = '_pepvndata_get_data_sent'; if (!isset(self::$cacheData[$keyCache])) { $resultData = false; $keyDataRequest = WP_PEPVN_KEY_DATA_REQUEST; if (isset($_GET[$keyDataRequest]) && $_GET[$keyDataRequest]) { $rsOne = Utils::decodeVar($_GET[$keyDataRequest]); if ($rsOne && isset($rsOne['localTimeSent']) && $rsOne['localTimeSent']) { if (!$resultData) { $resultData = array(); } $resultData = Utils::mergeArrays(array($resultData, $rsOne)); } $rsOne = false; } if (isset($_POST[$keyDataRequest]) && $_POST[$keyDataRequest]) { $rsOne = Utils::decodeVar($_POST[$keyDataRequest]); if ($rsOne && isset($rsOne['localTimeSent']) && $rsOne['localTimeSent']) { if (!$resultData) { $resultData = array(); } $resultData = Utils::mergeArrays(array($resultData, $rsOne)); } $rsOne = false; } self::$cacheData[$keyCache] = $resultData; $resultData = 0; } return self::$cacheData[$keyCache]; }
public function addParamsToUri($uri = null, $args = null) { $request = $this->getRequest(); if ($uri === null) { $uri = $request->getFullUri(); } if ($uri) { if ($args && is_string($args)) { parse_str($args, $args); } $parsedUrl = $request->get_parse_url($uri); if (isset($parsedUrl['url_no_parameters']) && $parsedUrl['url_no_parameters']) { $uri = $parsedUrl['url_no_parameters']; if (!isset($parsedUrl['parameters'])) { $parsedUrl['parameters'] = array(); } $args = Utils::mergeArrays(array($parsedUrl['parameters'], $args)); } if ($args) { $args = http_build_query($args); if (is_string($args) && !empty($args)) { if (strpos($uri, '?') !== false) { $uri .= '&' . $args; } else { $uri .= '?' . $args; } } } } return $uri; }