Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Как скриптом создать превью изображения из детального?

00 голосов
5
Как запустить тот же механизм, что в админке создает превью из детальной картинки?
спросил 17 Окт, 13 от Lisica (900 баллов)

5 Ответы

00 голосов
Конкретно в админке не знаю, но могу посоветовать функции:

CFile::ShowImage
CFile::Show2Images
CFile::ResizeImageGet
ответил 09 Ноя, 13 от BRENN (1,080 баллов)
00 голосов
Спасибо за участие, конечно, только каким образом эти функции мне помогут создать превью из детальной?
Разве, что ResizeImageGet...
ответил 16 Фев, 14 от Lisica (900 баллов)
00 голосов
функцией создаешь превью. запустить нельзя, напиши свой и будет тебе счастье.
ответил 07 Июнь, 14 от VitaliyKR (360 баллов)
00 голосов
Цитата
Рамиль Миннигалиев пишет:
могу посовето
По подробнее пжс - где именно надо создать? Если при добавления инфоблока, то во вкладке "Поля" настраиваешь показ "картинки анонса" и ставишь галочку на против пункта "Создавать картинку анонса из детальной" - а так дай более развернутый вопрос!
ответил 05 Окт, 14 от yye (220 баллов)
00 голосов
Виталий, ну вот то, где настраивается и надо, только это было упущено и нужно сделать скриптом, а не добавлять по новой товары, в этом же и вопрос.
Сорри, что не отписался сразу как сделал, CFile::ResizeImageGet() давно юзал, но думал мб есть какая-нить ф-ия или другой механизм...


Код
    $arOrder = Array("NAME"=>"ASC");
    $arFilter = Array("IBLOCK_ID"=>34,"ACTIVE"=>"Y");
    $arGroupBy = false;
    $arNavStartParams = false;
    $arSelectedFields = false;

    $ItemsList = CIBlockElement::GetList($arOrder,$arFilter,$arGroupBy,$arNavStartParams,$arSelectedFields);

    $el = new CIBlockElement;

    while($arItem = $ItemsList->Fetch()) {
   if($arItem["DETAIL_PICTURE"] == "") continue;
   $preview_img = CFile::ResizeImageGet($arItem["DETAIL_PICTURE"], array('width'=>120, 'height'=>120), BX_RESIZE_IMAGE_PROPORTIONAL, false);
   $arLoadProductArray = Array(
       "DETAIL_PICTURE" => CFile::MakeFileArray(CFile::GetPath($arItem["DETAIL_PICTURE"])),
       "PREVIEW_PICTURE" => CFile::MakeFileArray($preview_img["src"]),
   );
   $res = $el->Update($arItem["ID"], $arLoadProductArray);
    }
 
ответил 06 Фев, 15 от Lisica (900 баллов)

Похожие вопросы

0 голосов
1 ответ
0 голосов
3 ответов
0 голосов
4 ответов
спросил 14 Янв, 14 от Daeno (520 баллов)
0 голосов
3 ответов
0 голосов
7 ответов
спросил 20 Июль, 13 от Hellbound (180 баллов)