public function ajaxProcessaddStoreImage() { self::$currentIndex = 'index.php?tab=AdminAphStores'; $store = $this->loadObject(true); $legends = Tools::getValue('legend'); if (!is_array($legends)) { $legends = (array) $legends; } if (!Validate::isLoadedObject($store)) { $files = array(); $files[0]['error'] = Tools::displayError('Cannot add image because store creation failed.'); } $image_uploader = new HelperImageUploader('file'); $image_uploader->setAcceptTypes(array('jpeg', 'gif', 'png', 'jpg'))->setMaxSize($this->max_image_size); $image_uploader->setTemplateDirectory($this->tpl_dir . 'helpers/uploader/'); $files = $image_uploader->process(); foreach ($files as &$file) { $image = new AphStoreImage(); $image->id_shop = (int) $store->id_shop; $image->position = AphStoreImage::getHighestPosition($store->id_shop) + 1; foreach ($legends as $key => $legend) { if (!empty($legend)) { $image->legend[(int) $key] = $legend; } } if (!AphStoreImage::getCover($image->id_shop)) { $image->cover = 1; } else { $image->cover = 0; } if (($validate = $image->validateFieldsLang(false, true)) !== true) { $file['error'] = Tools::displayError($validate); } if (isset($file['error']) && (!is_numeric($file['error']) || $file['error'] != 0)) { continue; } if (!$image->add()) { $file['error'] = Tools::displayError('Error while creating additional image'); } else { if (!($new_path = $image->getPathForCreation())) { $file['error'] = Tools::displayError('An error occurred during new folder creation'); continue; } $error = 0; if (!ImageManager::resize($file['save_path'], $new_path . '.' . $image->image_format, null, null, 'jpg', false, $error)) { switch ($error) { case ImageManager::ERROR_FILE_NOT_EXIST: $file['error'] = Tools::displayError('An error occurred while copying image, the file does not exist anymore.'); break; case ImageManager::ERROR_FILE_WIDTH: $file['error'] = Tools::displayError('An error occurred while copying image, the file width is 0px.'); break; case ImageManager::ERROR_MEMORY_LIMIT: $file['error'] = Tools::displayError('An error occurred while copying image, check your memory limit.'); break; default: $file['error'] = Tools::displayError('An error occurred while copying image.'); break; } continue; } else { $imagesTypes = ImageType::getImagesTypes('stores'); $generate_hight_dpi_images = (bool) Configuration::get('PS_HIGHT_DPI'); foreach ($imagesTypes as $imageType) { if (!ImageManager::resize($file['save_path'], $new_path . '-' . stripslashes($imageType['name']) . '.' . $image->image_format, $imageType['width'], $imageType['height'], $image->image_format)) { $file['error'] = Tools::displayError('An error occurred while copying image:') . ' ' . stripslashes($imageType['name']); continue; } if ($generate_hight_dpi_images) { if (!ImageManager::resize($file['save_path'], $new_path . '-' . stripslashes($imageType['name']) . '2x.' . $image->image_format, (int) $imageType['width'] * 2, (int) $imageType['height'] * 2, $image->image_format)) { $file['error'] = Tools::displayError('An error occurred while copying image:') . ' ' . stripslashes($imageType['name']); continue; } } } } unlink($file['save_path']); //Necesary to prevent hacking unset($file['save_path']); Hook::exec('actionWatermark', array('id_image' => $image->id, 'id_shop' => $store->id_shop)); if (!$image->update()) { $file['error'] = Tools::displayError('Error while updating status'); continue; } // Associate image to shop from context // $shops = Shop::getContextListShopID(); // $image->associateTo($shops); // $json_shops = array(); // foreach ($shops as $id_shop) { // $json_shops[$id_shop] = true; // } $file['status'] = 'ok'; $file['id'] = $image->id; $file['position'] = $image->position; $file['cover'] = $image->cover; $file['legend'] = $image->legend; $file['path'] = $image->getExistingImgPath(); $file['shops'] = false; //$json_shops; @unlink(_PS_TMP_IMG_DIR_ . 'shop_' . (int) $store->id_shop . '.jpg'); @unlink(_PS_TMP_IMG_DIR_ . 'shop_mini_' . (int) $store->id_shop . '_' . $this->context->shop->id . '.jpg'); } } die(Tools::jsonEncode(array($image_uploader->getName() => $files))); }
/** * Reposition image * * @param int $position Position * @param bool $direction Direction * @deprecated since version 1.5.0.1 use Image::updatePosition() instead */ public function positionImage($position, $direction) { Tools::displayAsDeprecated(); $position = (int) $position; $direction = (int) $direction; // temporary position $high_position = AphStoreImage::getHighestPosition($this->id_shop) + 1; Db::getInstance()->execute(' UPDATE `' . _DB_PREFIX_ . 'store_image` SET `position` = ' . (int) $high_position . ' WHERE `id_shop` = ' . (int) $this->id_shop . ' AND `position` = ' . ($direction ? $position - 1 : $position + 1)); Db::getInstance()->execute(' UPDATE `' . _DB_PREFIX_ . 'store_image` SET `position` = `position`' . ($direction ? '-1' : '+1') . ' WHERE `id_image` = ' . (int) $this->id); Db::getInstance()->execute(' UPDATE `' . _DB_PREFIX_ . 'store_image` SET `position` = ' . $this->position . ' WHERE `id_shop` = ' . (int) $this->id_shop . ' AND `position` = ' . (int) $high_position); }