$image_tstamp = time(); $product_original = mslib_fe::getProduct($this->post['pid']); $original_images = array(); foreach ($product_original as $arr_key => $arr_val) { if (strpos($arr_key, 'products_image') !== false && !empty($arr_val)) { $original_file = $arr_val; $original_images[$arr_key] = $arr_val; $tmp_filename = explode('.', $original_file); $count_filename = count($tmp_filename); $ext = $tmp_filename[$count_filename - 1]; unset($tmp_filename[$count_filename - 1]); $new_filename = implode('', $tmp_filename) . '-CL' . $image_tstamp . '.' . $ext; // copy original product image $original_path = $this->DOCUMENT_ROOT . mslib_befe::getImagePath($original_file, 'products', 'original'); // $folder = mslib_befe::getImagePrefixFolder($new_filename); if (!is_dir($this->DOCUMENT_ROOT . $this->ms['image_paths']['products']['original'] . '/' . $folder)) { \TYPO3\CMS\Core\Utility\GeneralUtility::mkdir($this->DOCUMENT_ROOT . $this->ms['image_paths']['products']['original'] . '/' . $folder); } $folder .= '/'; $target = $this->DOCUMENT_ROOT . $this->ms['image_paths']['products']['original'] . '/' . $folder . $new_filename; if (copy($original_path, $target)) { mslib_befe::resizeProductImage($target, $new_filename, $this->DOCUMENT_ROOT . \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::siteRelPath($this->extKey), 1); } // $updateArray[$arr_key] = $new_filename; } } if ($update_product_images) { foreach ($update_product_images as $key => $value) { if ($original_images[$key] != $value) {
public function getImagePath($filename, $type, $width = 100) { $folder = $this->ms['image_paths'][$type][$width] . '/' . mslib_befe::getImagePrefixFolder($filename); return $folder . '/' . $filename; }
function customAjaxPage(&$params, &$ref) { error_log("customAjaxPage hook"); error_log("products path: " . $ref->ms['image_paths']['products']['original']); $ref->ms['image_paths']['variants']['original'] = 'uploads/tx_msvariants/images/original'; error_log("variants path: " . $ref->ms['image_paths']['variants']['original']); if ($ref->ADMIN_USER) { if (isset($_SERVER["CONTENT_LENGTH"])) { // switch ($ref->get['file_type']) { // case 'variants_image': // for ($x=0; $x<$ref->ms['MODULES']['NUMBER_OF_PRODUCT_IMAGES']; $x++) { // // hidden filename that is retrieved from the ajax upload // $i=$x; // if ($i==0) { // $i=''; // } // $field='products_image'.$i; // if ($ref->get['file_type']==$field) { $temp_file = $ref->DOCUMENT_ROOT . 'uploads/tx_multishop/tmp/' . uniqid(); if (isset($_FILES['qqfile'])) { move_uploaded_file($_FILES['qqfile']['tmp_name'], $temp_file); } else { $input = fopen("php://input", "r"); $debug_file = fopen("/Applications/XAMPP/xamppfiles/htdocs/typo3/typo3temp/debug.txt", "w"); fwrite($debug_file, sys_get_temp_dir()); fclose($debug_file); $temp = tmpfile(); $realSize = stream_copy_to_stream($input, $temp); fclose($input); $target = fopen($temp_file, "w"); fseek($temp, 0, SEEK_SET); stream_copy_to_stream($temp, $target); fclose($target); } error_log("temp file created"); $size = getimagesize($temp_file); if ($size[0] > 5 and $size[1] > 5) { error_log("size ok"); $imgtype = mslib_befe::exif_imagetype($temp_file); if ($imgtype) { error_log("type ok"); // valid image $ext = image_type_to_extension($imgtype, false); if ($ext) { error_log("ext ok"); $i = 0; $filename = mslib_fe::rewritenamein($ref->get['products_name']) . '.' . $ext; $folder = mslib_befe::getImagePrefixFolder($filename); $array = explode(".", $filename); if (!is_dir($ref->DOCUMENT_ROOT . $ref->ms['image_paths']['variants']['original'] . '/' . $folder)) { t3lib_div::mkdir($ref->DOCUMENT_ROOT . $ref->ms['image_paths']['variants']['original'] . '/' . $folder); } error_log("mkdir ok"); $folder .= '/'; $target = $ref->DOCUMENT_ROOT . $ref->ms['image_paths']['variants']['original'] . '/' . $folder . $filename; if (file_exists($target)) { error_log("file exists ok"); do { $filename = mslib_fe::rewritenamein($ref->get['products_name']) . ($i > 0 ? '-' . $i : '') . '.' . $ext; $folder_name = mslib_befe::getImagePrefixFolder($filename); $array = explode(".", $filename); $folder = $folder_name; if (!is_dir($ref->DOCUMENT_ROOT . $ref->ms['image_paths']['variants']['original'] . '/' . $folder)) { t3lib_div::mkdir($ref->DOCUMENT_ROOT . $ref->ms['image_paths']['variants']['original'] . '/' . $folder); } $folder .= '/'; $target = $ref->DOCUMENT_ROOT . $ref->ms['image_paths']['variants']['original'] . '/' . $folder . $filename; $i++; } while (file_exists($target)); } error_log("before copy file ok"); if (copy($temp_file, $target)) { $filename = mslib_befe::resizeProductImage($target, $filename, $ref->DOCUMENT_ROOT . t3lib_extMgm::siteRelPath($ref->extKey), 1); $result = array(); $result['success'] = true; $result['error'] = false; $result['filename'] = $filename; echo htmlspecialchars(json_encode($result), ENT_NOQUOTES); exit; } } } } } // } // break; // } // } } // exit(); // break; }
$filter[] = '(' . implode(' OR ', $orFilter) . ')'; $count = mslib_befe::getCount('', 'tx_multishop_products', '', $filter); if ($count < 2) { // Only delete the file is we have found 1 product using it mslib_befe::deleteProductImage($this->get['old_image']); } } if (!is_dir($this->DOCUMENT_ROOT . $this->ms['image_paths']['products']['original'] . '/' . $folder)) { \TYPO3\CMS\Core\Utility\GeneralUtility::mkdir($this->DOCUMENT_ROOT . $this->ms['image_paths']['products']['original'] . '/' . $folder); } $folder .= '/'; $target = $this->DOCUMENT_ROOT . $this->ms['image_paths']['products']['original'] . '/' . $folder . $filename; if (file_exists($target)) { do { $filename = mslib_fe::rewritenamein($tmp_filename) . ($i > 0 ? '-' . $i : '') . '.' . $ext; $folder_name = mslib_befe::getImagePrefixFolder($filename); $array = explode(".", $filename); $folder = $folder_name; if (!is_dir($this->DOCUMENT_ROOT . $this->ms['image_paths']['products']['original'] . '/' . $folder)) { \TYPO3\CMS\Core\Utility\GeneralUtility::mkdir($this->DOCUMENT_ROOT . $this->ms['image_paths']['products']['original'] . '/' . $folder); } $folder .= '/'; $target = $this->DOCUMENT_ROOT . $this->ms['image_paths']['products']['original'] . '/' . $folder . $filename; $i++; } while (file_exists($target)); } if (copy($temp_file, $target)) { $filename = mslib_befe::resizeProductImage($target, $filename, $this->DOCUMENT_ROOT . \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::siteRelPath($this->extKey), 1); $fileLocation = $this->FULL_HTTP_URL . mslib_befe::getImagePath($filename, 'products', '50'); $result = array(); $result['success'] = true;
} else { $s = $i; } switch ($imageType) { case 'products': $colName = 'products_image' . $s; break; case 'categories': $colName = 'categories_image' . $s; break; case 'manufacturers': $colName = 'manufacturers_image' . $s; break; } if ($row[$colName]) { $folder = mslib_befe::getImagePrefixFolder($row[$colName]); $v1_folder = $this->DOCUMENT_ROOT . 'uploads/tx_multishop/images/' . $imageType . '/original/' . $row[$colName]; $v3_folder = $this->DOCUMENT_ROOT . 'uploads/tx_multishop/images/' . $imageType . '/original/' . $folder . '/' . $row[$colName]; if (!file_exists($v3_folder) and file_exists($v1_folder)) { // V1 setup $dirs = array(); $dirs[] = $this->DOCUMENT_ROOT . $this->ms['image_paths'][$imageType]['100'] . '/' . $folder; $dirs[] = $this->DOCUMENT_ROOT . $this->ms['image_paths'][$imageType]['200'] . '/' . $folder; $dirs[] = $this->DOCUMENT_ROOT . $this->ms['image_paths'][$imageType]['300'] . '/' . $folder; $dirs[] = $this->DOCUMENT_ROOT . $this->ms['image_paths'][$imageType]['50'] . '/' . $folder; $dirs[] = $this->DOCUMENT_ROOT . $this->ms['image_paths'][$imageType]['normal'] . '/' . $folder; $dirs[] = $this->DOCUMENT_ROOT . 'uploads/tx_multishop/images/' . $imageType . '/original/' . $folder; foreach ($dirs as $dir) { if (!is_dir($dir)) { \TYPO3\CMS\Core\Utility\GeneralUtility::mkdir($dir); }
if (file_exists($source_file)) { copy($source_file, PATH_site . 'uploads/tx_multishop/tmp/' . $backup_folder . '/images/categories/' . $record['categories_image']); } } } // copy the category images to the backup folder eof // copy the products images to the backup folder foreach ($data['tx_multishop_products'] as $record) { for ($i = 0; $i < 5; $i++) { if ($i == 0) { $cur = ''; } else { $cur = $i; } if ($record['products_image' . $cur]) { $folder = mslib_befe::getImagePrefixFolder($record['products_image' . $cur]); $source_file = $this->DOCUMENT_ROOT . $this->ms['image_paths']['products']['original'] . '/' . $folder . '/' . $record['products_image' . $cur]; if (file_exists($source_file)) { copy($source_file, PATH_site . 'uploads/tx_multishop/tmp/' . $backup_folder . '/images/products/' . $record['products_image' . $cur]); } } } } // copy the products images to the backup folder eof } if (!file_put_contents(PATH_site . 'uploads/tx_multishop/tmp/' . $backup_folder . '/data.sql', $output)) { die(PATH_site . 'uploads/tx_multishop/tmp/' . $backup_folder . '/data.sql is not writable.'); } else { $backup_file = date("Y-m-d_G-i-s"); if ($this->zipPack(PATH_site . 'uploads/tx_multishop/tmp/' . $backup_folder . '/', PATH_site . 'uploads/tx_multishop/tmp/' . $backup_folder . '/' . $backup_file . '.zip')) { $output = mslib_fe::file_get_contents(PATH_site . 'uploads/tx_multishop/tmp/' . $backup_folder . '/' . $backup_file . '.zip');