Bitrix ошибка сохранения картинки для анонса

Добрый день, сообщество!

Следующим кодом пытаюсь полю PREVIEW_PICTURE присвоить значение поля DETAIL_PICTURE. Выдается ошибка
Error: Ошибка сохранения картинки для анонса.
Пробую вместо DETAIL_PICTURE подсунуть значение. Результат тот же.
ЧЯДНТ?
У картинки для анонса в настройках ИБ не стоят никакие галочки, ни обязательность, ни изменение размера. Никакие.

Код
   if (CModule::IncludeModule("iblock")){
      
      $res = CIBlockElement::GetList(
         Array("ID"=>"DESC"),
         Array("IBLOCK_ID"=>1, "IBLOCK_TYPE" => "news", "ACTIVE"=>"Y","SECTION_ID"=>'636'),
         false,
         false,
         Array("ID", "IBLOCK_ID", "DETAIL_PICTURE", "PREVIEW_PICTURE", "NAME", "DETAIL_PAGE_URL","SECTION_ID")
      );
      
      while($ob = $res->GetNextElement()){ 
         $arFields = $ob->GetFields();  
         
         $el = new CIBlockElement; 
         if(!$res = $el->Update($arFields["ID"], array('PREVIEW_PICTURE'=>$arFields["DETAIL_PICTURE"]))):
            echo "Error: ".$el->LAST_ERROR;
         endif;
      }

   }

Сделал типо комментарии на ИБ (так мне удобно), сделал форму добавления комментария с вот таким обработчиком:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die('Скрипт должен быть запущен в битриксе');
?>
<?
if($APPLICATION->CaptchaCheckCode($_POST["captcha_word"], $_POST["captcha_code"]) || ($USER->IsAuthorized()))
{


    CModule::IncludeModule('iblock');

    $el = new CIBlockElement;

    $fields = array(
        "DATE_CREATE" => date("d.m.Y H:i:s"),
        "DATE_ACTIVE_FROM" => date("d.m.Y H:i:s"),
        "IBLOCK_ID" => (int) $_POST['iblockID'],
        "NAME" => strip_tags($_POST['authorName']),
        "ACTIVE" => "Y",
        "PREVIEW_TEXT" => strip_tags($_REQUEST['comment']),
        "PREVIEW_PICTURE" => NULL,
        "PROPERTY_VALUES" => [
            "LINKED_USER" => NULL,
            "LINKED_ELEMENT" => $_POST['linkedElement'],
        ]
    );
    
    if ($USER->IsAuthorized()){
        $fields['PREVIEW_PICTURE'] = CFile::GetFileArray($USER->GetParam('PERSONAL_PHOTO'));
        $fields['PROPERTY_VALUES']['LINKED_USER'] = $USER->GetID();
    }

    if ($ID = $el->Add($fields)) {
        echo "Сохранено";
        dump($fields['PREVIEW_PICTURE']);
        $rs = CIBlockElement::GetList(array(), array("ID" => $ID), false, false, array("ID", "PREVIEW_PICTURE")); 
        if($ar = $rs->GetNext()) 
            dump($ar);
        //header('Location: '.$_SERVER['HTTP_REFERER']);
    } else {
        echo '<p>Ошибка при добавлении:<br>'.$el->LAST_ERROR.'</p>';
    }
    
}else{
    die('<p>Капча введена неправильно!</p>');
}
?>

Не могу заставить метод add добавить к элементу массив PREVIEW_PICTURE. В первом дампе все нормально, а во втором массива нет:
5ee744210a411590810657.png

Как это исправить?

Веб-Разработчик

82 / 82 / 9

Регистрация: 23.01.2012

Сообщений: 701

1

Не добавляется картинка анонса в элемент инфоблока

29.07.2013, 17:44. Показов 15553. Ответов 7


Студворк — интернет-сервис помощи студентам

Здравствуйте уважаемые форумчане, есть такая внезапная проблема.
Вроде ничего особо не трогал. всё работало. понадобилось создать новый тип инфоблока и инфоблок естественно. создал. всё по дефолту. назвал Новости. прописал всё что требовалось. никаких особых настроек и свойств не добавлял. пытаюсь добавить элемент. всё работает. но картинка для анонса и для детального просмотра не сохраняется. пытался добавлять разными способами. (из админки и при редактировании на сайте) после выбора картинки вижу её и строку описания. нажимаю сохранить. открываю элемент — картинки нет. пусто. Подскажите кто нибудь в чём может быть косяк и/или как это протестировать, диагностировать и т.п. ?
Всем заранее благодарен!

Добавлено через 5 часов 34 минуты
Неужели никто не сталкивался?



0



694 / 534 / 40

Регистрация: 22.06.2009

Сообщений: 1,293

31.07.2013, 06:40

2

Места не хватает



0



Веб-Разработчик

82 / 82 / 9

Регистрация: 23.01.2012

Сообщений: 701

31.07.2013, 10:21

 [ТС]

3

Alorian, где? как? в другие инфоблоки всё добавляется. с таким же конфигом на локальном серваке тоже работает.



0



694 / 534 / 40

Регистрация: 22.06.2009

Сообщений: 1,293

31.07.2013, 14:31

4

Цитата
Сообщение от Itachi261092
Посмотреть сообщение

где? как? в другие инфоблоки всё добавляется

Хз тогда.
Единственный случай когда не добавлялись фотографии у меня был связан с недостатком свободного места на диске. В бд запись добавлялась, а сам файл фотографии не закачивался.



0



Веб-Разработчик

82 / 82 / 9

Регистрация: 23.01.2012

Сообщений: 701

31.07.2013, 14:48

 [ТС]

5

Alorian, в бд тоже нет записи. выводил в шаблоне через echo массив $arResult[«ITEMS»] — поле PICTURE пустое.



0



52 / 53 / 3

Регистрация: 12.03.2010

Сообщений: 212

31.07.2013, 16:58

6

Может что то с картинкой? Проведите проверку сайта/бд средствами Битрикса. Посмотрите права доступа. Если ничего не поможет — пишите в техподдержку



0



Веб-Разработчик

82 / 82 / 9

Регистрация: 23.01.2012

Сообщений: 701

31.07.2013, 17:47

 [ТС]

7

Flan, я разные пробовал. как по ссылкам с других сайтов так и разные картинки из медиабиблиотеки

Добавлено через 28 минут
Проверка БД успешно выполнена. все таблицы в порядке

Добавлено через 4 минуты
права доступа не менялись и я не вижу логики если элемент создаётся, оисание анонса и детальное добавляется, а картинка не хочет. на что прав я могу не иметь при таком раскладе? право добавления картинки? или доста к папке upload? при чём тут права доступа?



0



5 / 5 / 0

Регистрация: 15.04.2017

Сообщений: 23

07.07.2017, 08:52

8

такая же проблема



0



Что делать, если при импорте или при любых других условиях у вас не записывается свойство картинка анонса?

Как в битриксе заново сгенерировать картинки анонса

Для этого создадим файл в корне сайта, например import.php – в который запишем код:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("iblock");
CModule::IncludeModule("file");

$ID = 1;//id инфоблока

$arFilter = Array("IBLOCK_ID"=>$ID);
$rsEl = CIBlockElement::GetList(Array(), $arFilter);
while($arEl = $rsEl->GetNext()){ 
   $el = new CIBlockElement;
        $arFields = Array();
   if($arEl["DETAIL_PICTURE"]){
      $arFields['PREVIEW_PICTURE'] = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"] . CFile::GetFileArray($arEl["DETAIL_PICTURE"])["SRC"]);
      $arFields['PREVIEW_PICTURE']["del"] = "Y";
         $el->Update($arEl["ID"], $arFields);
   }
}

Указываем ID информационного блока и после запуска в браузере и окончания выполнения скрипта в поле для анонса запишется та же самая картинка что и в детальном.

Если вам необходимо записать фото в превью с учетом ресайза, то скрипт придется доработать.

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

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

isbaturin

Сообщения: 113
Зарегистрирован: 09 мар 2020 08:06

В битрикс можно грузить фото для анонса масштабируя ее до нужных размеров?
Основное фото грузится, а анонс не генерится.

Аватара пользователя

TechAdmin

Администратор
Сообщения: 4283
Зарегистрирован: 27 авг 2008 14:30

08 апр 2020 16:40

Анонс должен ресайзиться автоматически самой CMS, если заданы такие настройки для инфоблока.
Программа добавляет только основные фото.
В программе нет функции ресаза.

isbaturin

Сообщения: 113
Зарегистрирован: 09 мар 2020 08:06

09 апр 2020 08:40

Программа пишет в SQL минуя API, поэтому думаю, что этого не произойдет. Битрикс просто не знает о том, что добавлено фото. В инфоблоке настроена функция делать анонс из детального фото. Если ручками добавлять фото — работает.

Написали скрипт автогенерации анонсов там где пусто…

Вложения
QIP Shot - Screen 09.04.20 12-39-18.png
QIP Shot — Screen 09.04.20 12-39-18.png (41.29 КБ) 1710 просмотров

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Black desert online ошибка установки 400
  • Black desert online ошибка установки 200
  • Black desert online ошибка загрузки обновления клиента
  • Black desert online не устанавливается ошибка 400
  • Black desert launcher ошибка

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии