Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

дополнительные изображения в множественной загрузке файлов

26.09.2016, 11:02
msweb
«МастерВеб»
msweb

Зарегистрирован:
2006-05-26
Сообщений: 17

Добрый день!

Поле "множественная загрузке файлов" позволяет генерировать одно изображение и превью к нему.
А мне нужно несколько разных по размеру изображений.

Мне нужно:
1. Чтобы при закачке "Картинка большая - img_file_big" автоматически создавалось превью в "Маленькое превью (из большого) - img_file_small"
И это работает, превью создается с помощью:

Код:
if ($_FILES['f_img_file_big']['size']!=0 && $_FILES['f_img_file_big']['type']!=''){
nc_ImageTransform::createThumb('img_file_big', 'img_file_small', 80, 80);
}

2. По аналогии я пытался сделать, чтоб из "Множественная загрузка картинок (Больших) - img_multifile_big" бралась самая первая картинка и создавалась ее превью в поле "Превью первой картинки из множ.загр - img_multifile_first"

вот мой код:

Код:
$files_data = $f_img_multifile_big->to_array(); 

$img_multifile_first_path = $files_data[0]->Path;
nc_ImageTransform::createThumb($img_multifile_first_path,'img_multifile_first',50,50);

Но почему-то превью создается не из img_multifile_big, а из img_file_big.

3. Также мне нужно, чтобы из "Множественная загрузка картинок (Больших) - img_multifile_big" брались все картинки и создавались превью в "Множественная загрузка файлов (Превью из больших) - img_multifile_small"

мой код:
Код:
nc_ImageTransform::createThumb('img_multifile_big','img_multifile_small',150,150);

Он также не работает.
Как же все-таки сделать то, что мне нужно?

netcat 5.6

msweb
26.09.2016, 13:09
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 1037

Создать компонент в котором будете загружать изображение, а то уже будет делится на десятки если так пожелаете. Далее можете добавить тег и по нему выбирать эти изображения. Или можете пойти дальше и создать множественную привязку.

Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
26.09.2016, 13:20
msweb
«МастерВеб»
msweb

Зарегистрирован:
2006-05-26
Сообщений: 17

можно ли поподробнее?
Пока не понял, как можно добавить тег и как по нему выбирать.
И для одного только изображения нужно делать отдельный компонент?

Мне-то нужно сделать каталог товаров. В товаре будет множество полей текстовый и цифровых. В том числе, будут картинки.
Картинки хочу чтоб загружались с помощью поля "множественная загрузка файлов".
И нужно чтобы автоматически генерировалось 5 разных размеров одной и той же картинки.

msweb
26.09.2016, 18:01
Игорь
Игорь Мишарин
Игорь

Зарегистрирован:
2011-11-20
Сообщений: 479

Можно воспользоваться сторонним скриптом, который будет обрабатывать изображения "на лету". Т.е. не генерировать 5 разных размеров, а загрузить одно изображения и из него делать хоть 5, хоть 20 вариантов.

Stark
27.09.2016, 15:24
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 1037

Обычный компонент в нем обычное поле файл (Image), поля на каждый размер (Image_Preview, Image_Preview_2) и поле для тега строкой (Tag). Теги можете указывать через запятую если сделаете все как указано ниже.
В действия после добавления/изменения
Код:
// Обработка изображений
if($_FILES['f_Image']['size'] != 0 && $_FILES['f_Image']['type'] != ''){
global $nc_core;
require_once($nc_core->INCLUDE_FOLDER . "classes/nc_imagetransform.class.php");
nc_ImageTransform::createThumb('Image', 'Image_Preview', 170, 70, 1); # Превью
nc_ImageTransform::createThumb('Image', 'Image_Preview_2', 190, 157, 1); # Превью
...
}

У вас будет несколько копий одного изображения.
В системных настройках компонента укажите.
Код:
if($tag) $query_where = "(a.`Tag` = '".$tag."' OR a.`Tag` LIKE '".$tag.",%' OR a.`Tag` LIKE '%,".$tag.",%' OR a.`Tag` LIKE '%,".$tag."')";

Далее в в месте вывода
Код:
<?= nc_objects_list($sub, $cc, "tag=петрушка", true) ?>

Со списком объектов уже сами разберетесь что нужно вывести.

Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
198 196 2016-09-27 15:24:03 14595
Описание проекта