/** * Filters images, upload and replace on text item content * @param $current_item array Current post data to be saved * @param $campaign array Current campaign data * @param $feed object Feed database object * @param $item object SimplePie_Item object */ function Item_images(&$current_item, &$campaign, &$feed, &$item) { if ($this->cfg['imgcache'] || $campaign['campaign_imgcache']) { $itemUrl = $this->getReadUrl($item->get_permalink()); if (sizeof($current_item['images'])) { // Si hay alguna imagen en el contenido trigger_error('<b>' . __('Uploading images.', WPeMatico::TEXTDOMAIN) . '</b>', E_USER_NOTICE); //trigger_error(print_r($current_item['images'],true),E_USER_NOTICE); $img_new_url = array(); foreach ($current_item['images'] as $imagen_src) { if ($this->campaign['campaign_cancel_imgcache']) { if ($this->cfg['gralnolinkimg'] || $this->campaign['campaign_nolinkimg']) { trigger_error(__('Deleted media src=', WPeMatico::TEXTDOMAIN) . $imagen_src, E_USER_WARNING); $current_item['content'] = str_replace($imagen_src, '', $current_item['content']); // Si no quiere linkar las img al server borro el link de la imagen } } else { trigger_error(__('Uploading media...', WPeMatico::TEXTDOMAIN) . $imagen_src, E_USER_NOTICE); $imagen_src_real = $this->getRelativeUrl($itemUrl, $imagen_src); $imagen_src_real = apply_filters('wpematico_img_src_url', $imagen_src_real); $allowed = isset($this->cfg['allowed']) && !empty($this->cfg['allowed']) ? $this->cfg['allowed'] : 'jpg,gif,png,tif,bmp,jpeg'; $allowed = apply_filters('wpematico_allowext', $allowed); //Fetch and Store the Image ///////////////***************************************************************************************//////////////////////// $newimgname = sanitize_file_name(urlencode(basename($imagen_src_real))); // Primero intento con mi funcion mas rapida $upload_dir = wp_upload_dir(); $imagen_dst = trailingslashit($upload_dir['path']) . $newimgname; $imagen_dst_url = trailingslashit($upload_dir['url']) . $newimgname; if (in_array(str_replace('.', '', strrchr(strtolower($imagen_dst), '.')), explode(',', $allowed))) { // -------- Controlo extensiones permitidas trigger_error('Uploading media=' . $imagen_src . ' <b>to</b> imagen_dst=' . $imagen_dst . '', E_USER_NOTICE); $newfile = $this->guarda_imagen($imagen_src_real, $imagen_dst); if ($newfile) { //subió trigger_error('Uploaded media=' . $newfile, E_USER_NOTICE); $imagen_dst = $newfile; $imagen_dst_url = trailingslashit($upload_dir['url']) . basename($newfile); $current_item['content'] = str_replace($imagen_src, $imagen_dst_url, $current_item['content']); $img_new_url[] = $imagen_dst_url; } else { // falló -> intento con otros $bits = WPeMatico::wpematico_get_contents($imagen_src_real); $mirror = wp_upload_bits($newimgname, NULL, $bits); if (!$mirror['error']) { trigger_error($mirror['url'], E_USER_NOTICE); $current_item['content'] = str_replace($imagen_src, $mirror['url'], $current_item['content']); $img_new_url[] = $mirror['url']; } else { trigger_error('wp_upload_bits error:' . print_r($mirror, true) . '.', E_USER_WARNING); // Si no quiere linkar las img al server borro el link de la imagen trigger_error(__('Upload file failed:', WPeMatico::TEXTDOMAIN) . $imagen_dst, E_USER_WARNING); if ($this->cfg['gralnolinkimg'] || $this->campaign['campaign_nolinkimg']) { trigger_error(__('Deleted media src.', WPeMatico::TEXTDOMAIN), E_USER_WARNING); $current_item['content'] = str_replace($imagen_src, '', $current_item['content']); } } } } else { trigger_error(__('Extension not allowed:', WPeMatico::TEXTDOMAIN) . $imagen_dst, E_USER_WARNING); if ($this->cfg['gralnolinkimg'] || $this->campaign['campaign_nolinkimg']) { // Si no quiere linkar las img al server borro el link de la imagen trigger_error(__('Stripped src.', WPeMatico::TEXTDOMAIN), E_USER_WARNING); $current_item['content'] = str_replace($imagen_src, '', $current_item['content']); } } } } $current_item['images'] = (array) $img_new_url; } // // Si hay alguna imagen en el contenido } return $current_item; }