Перейти к содержимому


Модуль массовой загрузки изображений


  • Вы не можете ответить в тему
Сообщений в теме: 3

#1 asdos

    Пользователь

  • Download User
  • PipPip
  • 26 сообщений
Репутация: 4
Начинающий

Отправлено 21 October 2015 - 07:32 PM

Здравствуйте. Есть у кого модуль массовой загрузки изображений, чтобы можно было сразу выделить несколько файлов и нажать кнопку "загрузить"?
  • 0

#2 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 21 October 2015 - 07:51 PM

http://d-sell.net/product_117.html
  • 0
Изображение Изображение Изображение

#3 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 21 October 2015 - 08:01 PM

Платно, но не дорого - например, http://d-sell.net/product_117.html
Бесплатно, но менее красиво и не работает в IE<10 - мне казалось, что я его выкладывал это дополнение.

=================================
Дополнение позволяет мультизагрузку фотографий, т.е. не грузить фотки товара по одной, а сразу выбрать все нужные три-пять-семь.
До кучи оно включает в себя трикивебовское дополнение (функцию), позволяющую не грузить большую/среднюю/малую фотки,
а грузить только одну большую. Средняя и малая сделаются из нее.
На IE младше десятого, если верить htmlbook.ru, input multiple работать не должно, но врядли это критично для админки.


Установка:
==========


1. в файле admin.php

1.1. ищем

echo ADD_BUTTON26;

чуть ниже будет

<td align="center"><?php
		  echo ADMIN_ON2;
?></td>

заменяем на (т.е. комментируем этот блок)

<!-- BEGIN Picture-Multiload -->
<!--
<td align="center"><?php
		  echo ADMIN_ON2;
?></td>
-->
<!-- END Picture-Multiload -->

1.2. еще чуть ниже будет

<td align="center" width="32%"><?php
		  echo ADMIN_PRODUCT_SPPICTURE;
?></td>

меняем 32% на 99%

1.3. еще чуть ниже будет блок

<td align="center" width="32%"><?php
		  echo ADMIN_PRODUCT_THUMBNAIL;
?></td>
<td align="center" width="32%"><?php
		  echo ADMIN_PRODUCT_BIGPICTURE;
?></td>

его тоже заменяем на (комментируем)

<!-- BEGIN Picture-Multiload -->
<!--
<td align="center" width="32%"><?php
		  echo ADMIN_PRODUCT_THUMBNAIL;
?></td>
<td align="center" width="32%"><?php
		  echo ADMIN_PRODUCT_BIGPICTURE;
?></td>
-->
<!-- END Picture-Multiload -->

1.3. еще чуть ниже та же история - блок

<td align="left" valign="middle"><input type=radio name=default_picture
										<?php
		  if (!isset($default_picture_exists))
		  {
?>
												checked
										<?php
		  }
?>
												value=-1 >

								</td>
								<td align="center" valign="middle"><input id="pic1" onchange="confstatus(this,'pic2'),confstatus(this,'pic3');" type="file" name="new_filename" class="file" size="13"></td>
								<td align="center" valign="middle"><input disabled id="pic2" type="file" name="new_thumbnail" class="file" size="13"></td>
								<td align="center" valign="middle"><input disabled id="pic3" type="file" name="new_enlarged" class="file" size="13"></td>

заменяем на (комментируя исходный блок)

<!-- BEGIN Picture-Multiload -->
<!--
<td align="center" valign="middle"><input type=radio name=default_picture
										<?php
		  if (!isset($default_picture_exists))
		  {
?>
												checked
										<?php
		  }
?>
												value=-1 >

								</td>
								<td align="center" valign="middle"><input id="pic1" onchange="confstatus(this,'pic2'),confstatus(this,'pic3');" type="file" name="new_filename" class="file" size="13"></td>
								<td align="center" valign="middle"><input disabled id="pic2" type="file" name="new_thumbnail" class="file" size="13"></td>
								<td align="center" valign="middle"><input disabled id="pic3" type="file" name="new_enlarged" class="file" size="13"></td>
-->
<td align="center" valign="middle">
<?php if (!isset($default_picture_exists)) { ?>
<input type=hidden name="default_picture" value=-1>
<?php } ?>
<input multiple id="pic1" type="file" name="new_filename[]" class="file" size="180">
</td>
<!-- END Picture-Multiload -->


2. в файле picture_functions.php

2.1. заменяем функцию AddNewPictures на


function AddNewPictures($productID, $filename, $thumbnail, $enlarged, $default_picture)
{
if (isset($_FILES[$filename]) && $_FILES[$filename]["name"]/* && $_FILES[$filename]["size"] > 0*/) //Picture-Multiload
{
# BEGIN Picture-Multiload
$tmp = $_FILES['new_filename'];
foreach ($_FILES[$filename]['name'] as $key => $val)
{
$_FILES['new_filename']['name'] = $tmp['name'][$key];
$_FILES['new_filename']['type'] = $tmp['type'][$key];
$_FILES['new_filename']['tmp_name'] = $tmp['tmp_name'][$key];
$_FILES['new_filename']['error'] = $tmp['error'][$key];
$_FILES['new_filename']['size'] = $tmp['size'][$key];

# $new_filename = Rendernames($filename,"data/small/");
# $new_thumbnail = Rendernames($thumbnail,"data/medium/");
# $new_enlarged = Rendernames($enlarged,"data/big/");
$new_filename = Rendernames($filename,"data/small/");
copy('data/small/'.$new_filename, $_FILES[$filename]['tmp_name']);
$new_thumbnail = Rendernames($filename,"data/medium/");
copy('data/small/'.$new_filename, $_FILES[$filename]['tmp_name']);
$new_enlarged = Rendernames($filename,"data/big/");
# END Picture-Multiload

if ($new_filename != "")
{
db_query("insert into ".PRODUCT_PICTURES."(productID, filename, thumbnail, enlarged)".
" values( ".(int)$productID.", '".xEscSQL($new_filename)."', '".xEscSQL($new_thumbnail).
"', '".xEscSQL($new_enlarged)."' ) ");

if (CONF_PHOTO_RESIZE)
{

if ($new_filename != "") Renderimage($new_filename, CONF_PHOTO_WIDTH1,"data/small/");
if ($new_thumbnail != "") Renderimage($new_thumbnail, CONF_PHOTO_WIDTH2,"data/medium/");
if ($new_enlarged != "") Renderimage($new_enlarged, CONF_PHOTO_WIDTH3,"data/big/");
}

if (CONF_PUT_WATERMARK)
{

if ($new_filename != "") Renderwatermark($new_filename,"data/small/");
if ($new_thumbnail != "") Renderwatermark($new_thumbnail,"data/medium/");
if ($new_enlarged != "") Renderwatermark($new_enlarged,"data/big/");
}

if ($default_picture == -1)
{
$default_pictureID = db_insert_id();
db_query("update ".PRODUCTS_TABLE." set default_picture = ".$default_pictureID." where productID=".(int)$productID);
}
}
# BEGIN Picture-Multiload
$default_picture = 1;
}
# END Picture-Multiload
}
}


2.2 заменяем функцию Rendernames на


// BEGIN Patch make thumbnails from single file
// by http://trickywebs.org.ua
function Rendernames($tempname, $folder)
{
$new_tempname = "";

if (isset($_FILES[$tempname]) && $_FILES[$tempname]["size"] > 0)
{
$picture_name = strtolower(str_replace(" ", "_", $_FILES[$tempname]["name"]));
$pos = strrpos($picture_name, ".");
$name = substr($picture_name, 0, $pos);
$ext = substr($picture_name, $pos + 1);

if (file_exists($folder.$picture_name))
{
$taskDone = false;
for ($i = 1; (($i < 500) && ($taskDone == false)); $i++)
{
if (!file_exists($folder.$name."_".$i.".".$ext))
{
if (is_uploaded_file($_FILES[$tempname]['tmp_name']))
{
if (move_uploaded_file($_FILES[$tempname]['tmp_name'], $folder.$name."_".
$i.".".$ext))
{
SetRightsToUploadedFile($folder.$name."_".$i.".".$ext);
$new_tempname = $name."_".$i.".".$ext;
}
} else {
if (rename($_FILES[$tempname]['tmp_name'], $folder.$name."_".$i.".".$ext))
{
SetRightsToUploadedFile($folder.$name."_".$i.".".$ext);
$new_tempname = $name."_".$i.".".$ext;
}
}
$taskDone = true;
}
}

}
else
{
if (is_uploaded_file($_FILES[$tempname]['tmp_name']))
{
if (move_uploaded_file($_FILES[$tempname]['tmp_name'], $folder.$picture_name))
{
SetRightsToUploadedFile($folder.$picture_name);
$new_tempname = $picture_name;
}
} else {
if (rename($_FILES[$tempname]['tmp_name'], $folder.$picture_name))
{
SetRightsToUploadedFile($folder.$picture_name);
$new_tempname = $picture_name;
}
}
}
}
return $new_tempname;
}
// END Patch make thumbnails from single file

  • 2
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#4 asdos

    Пользователь

  • Download User
  • PipPip
  • 26 сообщений
Репутация: 4
Начинающий

Отправлено 21 October 2015 - 08:25 PM

Платно, но не дорого - например, http://d-sell.net/product_117.html
Бесплатно, но менее красиво и не работает в IE<10 - мне казалось, что я его выкладывал это дополнение.


Огромное спасибо! Всё работает корректно. На ИЕ наплевать =)
  • 0