Microweber\Traits\ExtendedSave::extended_save_images PHP Метод

extended_save_images() публичный Метод

public extended_save_images ( $params )
    public function extended_save_images($params)
    {
        if ($this->extended_save_has_permission()) {
            event_trigger('mw.database.extended_save_images', $params);
            $data_to_save = $params;
            if (isset($data_to_save['images'])) {
                $data_fields = $data_to_save['images'];
                if (is_array($data_fields) and !empty($data_fields)) {
                    foreach ($data_fields as $k => $v) {
                        if (is_string($v)) {
                            $v = array('filename' => $v);
                        }
                        if (isset($v['filename'])) {
                            $save_cat_item = array();
                            $save_cat_item['rel_type'] = $data_to_save['table'];
                            $save_cat_item['rel_id'] = $data_to_save['id'];
                            /*   if (isset($data_to_save['download_remote_images']) and $data_to_save['download_remote_images']!=false){
                                                               $is_url = false;
                                                               if (filter_var($v['filename'], FILTER_VALIDATE_URL)){
                                                                   if (!stristr($v['filename'], site_url())){
                                                                       $image_src = $v['filename'];
                                                                       $to_download = false;
                                                                       $image_src = strtok($image_src, '?');
                                                                       $ext = get_file_extension($image_src);
                                                                       switch (strtolower($ext)) {
                                                                           case 'jpg':
                                                                           case 'jpeg':
                                                                           case 'png':
                                                                           case 'gif':
                                                                           case 'svg':
                                                                               $to_download = $image_src;
                                                                               break;
                                                                           default:
                                                                               break;
                                                                       }
                            
                            
                                                                       if ($to_download!=false){
                                                                           $output_fn = 'ext_save' . crc32($to_download) . '.' . $ext;
                                                                           $relative = 'downloaded' . DS . $save_cat_item['rel_type'] . DS . $save_cat_item['rel_id'] . DS;
                                                                           $output = media_base_path() . $relative;
                                                                           $output_relative = media_base_url() . str_replace(DS, '/', $relative);
                                                                           $output = normalize_path($output, true);
                                                                           if (!is_dir($output)){
                                                                               mkdir_recursive($output);
                                                                           }
                                                                           $output_file = $output . $output_fn;
                                                                           if (!is_file($output_file)){
                                                                               $download = new \Microweber\Utils\Http();
                                                                               $download->set_url($image_src);
                                                                               $download->download($output_file);
                            
                                                                           }
                            
                                                                           $v['filename'] = $output_relative . $output_fn;
                                                                           $v['filename'] = str_replace(site_url(), '{SITE_URL}', $v['filename']);
                            
                                                                       }
                                                                   }
                            
                                                               }
                                                           }*/
                            $v['filename'] = str_replace(site_url(), '{SITE_URL}', $v['filename']);
                            $save_cat_item['filename'] = $v['filename'];
                            $check = $this->app->media_manager->get($save_cat_item);
                            if ($check == false) {
                                if (isset($v['position'])) {
                                    $save_cat_item['position'] = $v['position'];
                                }
                                $save = $this->app->media_manager->save($save_cat_item);
                            }
                        }
                    }
                }
            }
        }
    }