コード例 #1
0
 public function parse_watermarks_first_options($input_parameters)
 {
     $resultData = array();
     $options = false;
     if (isset($input_parameters['options']) && $input_parameters['options']) {
         $options = $input_parameters['options'];
         unset($input_parameters['options']);
     }
     if (!$options) {
         $options = self::getOption();
     }
     $keyCache1 = Utils::hashKey(array($options, 'parse_watermarks_first_options'));
     $tmp = TempDataAndCacheFile::get_cache($keyCache1);
     if (null !== $tmp) {
         return $tmp;
     }
     $remote = $this->di->getShared('remote');
     $options['optimize_images_watermarks_watermark_text_background_opacity_value'] = 100;
     $options['optimize_images_watermarks_watermark_opacity_value'] = 100;
     $options['optimize_images_watermarks_watermark_text_outline_enable'] = '';
     //setting watermark
     $paramsWatermarkOptions = array();
     $paramsWatermarkOptions['text'] = array();
     $paramsWatermarkOptions['image'] = array();
     if (isset($options['optimize_images_watermarks_watermark_type']) && $options['optimize_images_watermarks_watermark_type']) {
         $options['optimize_images_watermarks_watermark_type'] = (array) $options['optimize_images_watermarks_watermark_type'];
         if (isset($options['optimize_images_watermarks_watermark_position']) && $options['optimize_images_watermarks_watermark_position']) {
             if (!empty($options['optimize_images_watermarks_watermark_position'])) {
                 $options['optimize_images_watermarks_watermark_opacity_value'] = (int) $options['optimize_images_watermarks_watermark_opacity_value'];
                 $options['optimize_images_watermarks_watermark_opacity_value'] = abs($options['optimize_images_watermarks_watermark_opacity_value']);
                 if ($options['optimize_images_watermarks_watermark_opacity_value'] > 0) {
                     if ($options['optimize_images_watermarks_watermark_opacity_value'] > 100) {
                         $options['optimize_images_watermarks_watermark_opacity_value'] = 100;
                     }
                     if (isset($options['optimize_images_watermarks_watermark_type']['text'])) {
                         if (isset($options['optimize_images_watermarks_watermark_text_value']) && $options['optimize_images_watermarks_watermark_text_value']) {
                             $options['optimize_images_watermarks_watermark_text_value'] = trim($options['optimize_images_watermarks_watermark_text_value']);
                             if ($options['optimize_images_watermarks_watermark_text_value']) {
                                 if (isset($options['optimize_images_watermarks_watermark_text_font_name']) && $options['optimize_images_watermarks_watermark_text_font_name']) {
                                     $options['optimize_images_watermarks_watermark_text_font_name'] = preg_replace('#[^a-z0-9\\-\\_]+#i', '', $options['optimize_images_watermarks_watermark_text_font_name']);
                                     $options['optimize_images_watermarks_watermark_text_font_name'] = strtolower($options['optimize_images_watermarks_watermark_text_font_name']);
                                     $options['optimize_images_watermarks_watermark_text_font_name'] = trim($options['optimize_images_watermarks_watermark_text_font_name']);
                                     if ($options['optimize_images_watermarks_watermark_text_font_name']) {
                                         if (isset($options['optimize_images_watermarks_watermark_text_size']) && $options['optimize_images_watermarks_watermark_text_size']) {
                                             $options['optimize_images_watermarks_watermark_text_size'] = trim($options['optimize_images_watermarks_watermark_text_size']);
                                             if ($options['optimize_images_watermarks_watermark_text_size']) {
                                                 if (isset($options['optimize_images_watermarks_watermark_text_color']) && $options['optimize_images_watermarks_watermark_text_color']) {
                                                     $options['optimize_images_watermarks_watermark_text_color'] = preg_replace('#[^a-z0-9]+#i', '', $options['optimize_images_watermarks_watermark_text_color']);
                                                     $options['optimize_images_watermarks_watermark_text_color'] = strtolower($options['optimize_images_watermarks_watermark_text_color']);
                                                     $options['optimize_images_watermarks_watermark_text_color'] = trim($options['optimize_images_watermarks_watermark_text_color']);
                                                     if ($options['optimize_images_watermarks_watermark_text_color']) {
                                                         if (isset($options['optimize_images_watermarks_watermark_text_opacity_value']) && $options['optimize_images_watermarks_watermark_text_opacity_value']) {
                                                             $options['optimize_images_watermarks_watermark_text_opacity_value'] = trim($options['optimize_images_watermarks_watermark_text_opacity_value']);
                                                             if ($options['optimize_images_watermarks_watermark_text_opacity_value']) {
                                                                 $options['optimize_images_watermarks_watermark_text_opacity_value'] = (int) $options['optimize_images_watermarks_watermark_text_opacity_value'];
                                                                 $options['optimize_images_watermarks_watermark_text_opacity_value'] = abs($options['optimize_images_watermarks_watermark_text_opacity_value']);
                                                                 if ($options['optimize_images_watermarks_watermark_text_opacity_value'] > 100) {
                                                                     $options['optimize_images_watermarks_watermark_text_opacity_value'] = 100;
                                                                 }
                                                                 $paramsWatermarkOptions['text'] = array('fontSize' => 12, 'fontColor' => PepVN_Data::hex2rgb('#' . $options['optimize_images_watermarks_watermark_text_color']), 'opacity' => $options['optimize_images_watermarks_watermark_text_opacity_value'] / 100, 'x' => 10, 'y' => 10, 'width' => null, 'height' => null, 'alignHorizontal' => 'center', 'alignVertical' => 'center', 'angle' => 0, 'strokeWidth' => 0, 'strokeColor' => '', 'fontFile' => $this->_folderFontPath . $options['optimize_images_watermarks_watermark_text_font_name'] . '.ttf', 'autoFit' => false, 'boxColor' => 0, 'boxOpacity' => $options['optimize_images_watermarks_watermark_text_opacity_value'] / 100, 'boxPaddingX' => '3%', 'boxPaddingY' => '4%', 'debug' => false);
                                                                 if (isset($options['optimize_images_watermarks_watermark_text_size']) && $options['optimize_images_watermarks_watermark_text_size']) {
                                                                     $options['optimize_images_watermarks_watermark_text_size'] = preg_replace('#[^0-9\\%]+#i', '', $options['optimize_images_watermarks_watermark_text_size']);
                                                                     $options['optimize_images_watermarks_watermark_text_size'] = trim($options['optimize_images_watermarks_watermark_text_size']);
                                                                     if (false === stripos($options['optimize_images_watermarks_watermark_text_size'], '%')) {
                                                                         $paramsWatermarkOptions['text']['fontSize'] = (int) $options['optimize_images_watermarks_watermark_text_size'];
                                                                     }
                                                                 }
                                                                 if (isset($options['optimize_images_watermarks_watermark_text_background_enable']) && $options['optimize_images_watermarks_watermark_text_background_enable']) {
                                                                     if (isset($options['optimize_images_watermarks_watermark_text_background_color']) && $options['optimize_images_watermarks_watermark_text_background_color']) {
                                                                         $options['optimize_images_watermarks_watermark_text_background_color'] = preg_replace('#[^a-z0-9]+#i', '', $options['optimize_images_watermarks_watermark_text_background_color']);
                                                                         $options['optimize_images_watermarks_watermark_text_background_color'] = strtolower($options['optimize_images_watermarks_watermark_text_background_color']);
                                                                         $options['optimize_images_watermarks_watermark_text_background_color'] = trim($options['optimize_images_watermarks_watermark_text_background_color']);
                                                                         if ($options['optimize_images_watermarks_watermark_text_background_color']) {
                                                                             $paramsWatermarkOptions['text']['boxColor'] = PepVN_Data::hex2rgb('#' . $options['optimize_images_watermarks_watermark_text_background_color']);
                                                                             if (isset($options['optimize_images_watermarks_watermark_text_background_opacity_value']) && $options['optimize_images_watermarks_watermark_text_background_opacity_value']) {
                                                                                 $options['optimize_images_watermarks_watermark_text_background_opacity_value'] = trim($options['optimize_images_watermarks_watermark_text_background_opacity_value']);
                                                                                 if ($options['optimize_images_watermarks_watermark_text_background_opacity_value']) {
                                                                                     $options['optimize_images_watermarks_watermark_text_background_opacity_value'] = (int) $options['optimize_images_watermarks_watermark_text_background_opacity_value'];
                                                                                     $options['optimize_images_watermarks_watermark_text_background_opacity_value'] = abs($options['optimize_images_watermarks_watermark_text_background_opacity_value']);
                                                                                     if ($options['optimize_images_watermarks_watermark_text_background_opacity_value'] > 100) {
                                                                                         $options['optimize_images_watermarks_watermark_text_background_opacity_value'] = 100;
                                                                                     }
                                                                                     $paramsWatermarkOptions['text']['boxOpacity'] = $options['optimize_images_watermarks_watermark_text_opacity_value'] / 100;
                                                                                 }
                                                                             }
                                                                         }
                                                                     }
                                                                 }
                                                                 //optimize_images_watermarks_watermark_text_background_enable
                                                                 if (isset($options['optimize_images_watermarks_watermark_text_outline_enable']) && $options['optimize_images_watermarks_watermark_text_outline_enable']) {
                                                                     if (isset($options['optimize_images_watermarks_watermark_text_outline_width']) && $options['optimize_images_watermarks_watermark_text_outline_width']) {
                                                                         $options['optimize_images_watermarks_watermark_text_outline_width'] = preg_replace('#[^0-9]+#i', '', $options['optimize_images_watermarks_watermark_text_outline_width']);
                                                                         $options['optimize_images_watermarks_watermark_text_outline_width'] = (int) $options['optimize_images_watermarks_watermark_text_outline_width'];
                                                                         if ($options['optimize_images_watermarks_watermark_text_outline_width'] > 0) {
                                                                             if (isset($options['optimize_images_watermarks_watermark_text_outline_color']) && $options['optimize_images_watermarks_watermark_text_outline_color']) {
                                                                                 $options['optimize_images_watermarks_watermark_text_outline_color'] = preg_replace('#[^a-z0-9]+#i', '', $options['optimize_images_watermarks_watermark_text_outline_color']);
                                                                                 $options['optimize_images_watermarks_watermark_text_outline_color'] = strtolower($options['optimize_images_watermarks_watermark_text_outline_color']);
                                                                                 $options['optimize_images_watermarks_watermark_text_outline_color'] = trim($options['optimize_images_watermarks_watermark_text_outline_color']);
                                                                                 if ($options['optimize_images_watermarks_watermark_text_outline_color']) {
                                                                                     $paramsWatermarkOptions['text']['strokeWidth'] = $options['optimize_images_watermarks_watermark_text_outline_width'];
                                                                                     $paramsWatermarkOptions['text']['strokeColor'] = PepVN_Data::hex2rgb('#' . $options['optimize_images_watermarks_watermark_text_outline_color']);
                                                                                 }
                                                                             }
                                                                         }
                                                                     }
                                                                 }
                                                                 //optimize_images_watermarks_watermark_text_outline_enable
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                     //type text
                     if (isset($options['optimize_images_watermarks_watermark_type']['image'])) {
                         if (isset($options['optimize_images_watermarks_watermark_image_url']) && $options['optimize_images_watermarks_watermark_image_url']) {
                             $options['optimize_images_watermarks_watermark_image_url'] = trim($options['optimize_images_watermarks_watermark_image_url']);
                             if ($options['optimize_images_watermarks_watermark_image_url']) {
                                 if (Utils::isUrl($options['optimize_images_watermarks_watermark_image_url']) && Utils::isImageUrl($options['optimize_images_watermarks_watermark_image_url'])) {
                                     $imgWatermarkFilePath1 = $this->_folderCachePath;
                                     $imgWatermarkFilePath1 .= md5($options['optimize_images_watermarks_watermark_image_url']) . '.txt';
                                     if (!is_file($imgWatermarkFilePath1)) {
                                         file_put_contents($imgWatermarkFilePath1, '');
                                         $valueTemp1 = $remote->get($options['optimize_images_watermarks_watermark_image_url'], array('cache_timeout' => WP_PEPVN_CACHE_TIMEOUT_NORMAL));
                                         if ($valueTemp1) {
                                             file_put_contents($imgWatermarkFilePath1, $valueTemp1);
                                         }
                                     }
                                     if (is_file($imgWatermarkFilePath1)) {
                                         $valueTemp1 = filesize($imgWatermarkFilePath1);
                                         if ($valueTemp1 && $valueTemp1 > 0) {
                                             if ($this->_isImageFileCanProcess($imgWatermarkFilePath1)) {
                                                 $paramsWatermarkOptions['image']['watermark_image_file_path'] = $imgWatermarkFilePath1;
                                                 if (isset($options['optimize_images_watermarks_watermark_image_width']) && $options['optimize_images_watermarks_watermark_image_width']) {
                                                     $options['optimize_images_watermarks_watermark_image_width'] = preg_replace('#[^0-9\\%]+#i', '', $options['optimize_images_watermarks_watermark_image_width']);
                                                     $options['optimize_images_watermarks_watermark_image_width'] = trim($options['optimize_images_watermarks_watermark_image_width']);
                                                     if (false === stripos($options['optimize_images_watermarks_watermark_image_width'], '%')) {
                                                         $options['optimize_images_watermarks_watermark_image_width'] = (int) $options['optimize_images_watermarks_watermark_image_width'];
                                                     }
                                                 }
                                                 if (isset($options['optimize_images_watermarks_watermark_image_margin_x']) && $options['optimize_images_watermarks_watermark_image_margin_x']) {
                                                     $options['optimize_images_watermarks_watermark_image_margin_x'] = preg_replace('#[^0-9]+#i', '', $options['optimize_images_watermarks_watermark_image_margin_x']);
                                                     $options['optimize_images_watermarks_watermark_image_margin_x'] = trim($options['optimize_images_watermarks_watermark_image_margin_x']);
                                                     $options['optimize_images_watermarks_watermark_image_margin_x'] = (int) $options['optimize_images_watermarks_watermark_image_margin_x'];
                                                     $options['optimize_images_watermarks_watermark_image_margin_x'] = abs($options['optimize_images_watermarks_watermark_image_margin_x']);
                                                 }
                                                 if (isset($options['optimize_images_watermarks_watermark_image_margin_y']) && $options['optimize_images_watermarks_watermark_image_margin_y']) {
                                                     $options['optimize_images_watermarks_watermark_image_margin_y'] = preg_replace('#[^0-9]+#i', '', $options['optimize_images_watermarks_watermark_image_margin_y']);
                                                     $options['optimize_images_watermarks_watermark_image_margin_y'] = trim($options['optimize_images_watermarks_watermark_image_margin_y']);
                                                     $options['optimize_images_watermarks_watermark_image_margin_y'] = (int) $options['optimize_images_watermarks_watermark_image_margin_y'];
                                                     $options['optimize_images_watermarks_watermark_image_margin_y'] = abs($options['optimize_images_watermarks_watermark_image_margin_y']);
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                     //type image
                 }
             }
         }
     }
     $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) {
     } else {
         $options['optimize_images_image_quality_value'] = 100;
     }
     $options['optimize_images_rename_img_filename_value'] = (string) $options['optimize_images_rename_img_filename_value'];
     $options['optimize_images_rename_img_filename_value'] = trim($options['optimize_images_rename_img_filename_value']);
     $options['optimize_images_maximum_files_handled_each_request'] = abs((int) $options['optimize_images_maximum_files_handled_each_request']);
     $resultData['options'] = $options;
     $resultData['paramsWatermarkOptions'] = $paramsWatermarkOptions;
     TempDataAndCacheFile::set_cache($keyCache1, $resultData);
     return $resultData;
 }