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

Детальная картинка инфо блока

00 голосов
7
Здравствуйте, вот я так понимаю что по умолчанию файл одни для всех инфо блоков который обрабатывает данные после добавления записи!
мне необходимо сделать чтобы после добавления если небыла добавлена детальная картинка, ее поставить свою!
подскажите
спросил 10 Июль, 13 от 666KREVED (760 баллов)

7 Ответы

00 голосов
Вариант 1. Создать обработчик события OnAfterIBlockElementAdd и добавлять вою картинку, если не добавлена.
Вариант 2. Сделать "Файл для редактирования элемента, позволяющий модифицировать поля перед сохранением".
ответил 10 Июль, 13 от Eddie (2,060 баллов)
00 голосов
OnAfterIBlockElementAdd, а куда этот обработчик ставить, т.е. на какую страницу(на каждую добавления элементов?)?а то в пользовательской документации ничего непонятно, кроме массива!
ответил 25 Авг, 13 от 666KREVED (760 баллов)
00 голосов
Сюда
/bitrix/php_interface/init.php

этот файл загружается всегда при генерации любой страницы.
ответил 24 Ноя, 13 от FlashMeat (100 баллов)
00 голосов
спасибо
ответил 05 Март, 14 от 666KREVED (760 баллов)
00 голосов
т.е. получается в файле /bitrix/php_interface/init.php вписываем скрипт:
Код
<?
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("MyClass", "OnAfterIBlockElementAddHandler"));

class MyClass
{
    function OnAfterIBlockElementAddHandler(&$arFields)
    {
        if(is_array($arFields["DETAIL_PICTURE"]))
         //ничего неделаем
        else
         //записываем свою картинку
    }
}
?>


Правильно?
И не моглибы дать код как записать свою картинку? она напрмер лежит в папке images
ответил 25 Июнь, 14 от 666KREVED (760 баллов)
00 голосов
вот так?
Код
<?
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("MyClass", "OnAfterIBlockElementAddHandler"));

class MyClass
{
    function OnAfterIBlockElementAddHandler(&$arFields)
    {
        if(is_array($arFields["DETAIL_PICTURE"]))
         //ничего неделаем
        else
         $arFields["DETAIL_PICTURE"]["SRC"] = "/images/logo.jpg";
         $arFields["DETAIL_PICTURE"]["WIDTH"] = "255";
         $arFields["DETAIL_PICTURE"]["HEIGHT"] = "156";
    }
}
?> 
ответил 25 Окт, 14 от 666KREVED (760 баллов)
00 голосов
Может, лучше вписывать айди существующего в системе файла?
ответил 23 Фев, 15 от Eddie (2,060 баллов)

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

0 голосов
4 ответов
спросил 28 Сен, 13 от Kiriel (2,010 баллов)
0 голосов
8 ответов
0 голосов
3 ответов
спросил 04 Апр, 14 от asagava (680 баллов)
0 голосов
4 ответов
0 голосов
3 ответов
спросил 13 Дек, 13 от AmoH (180 баллов)