• Telegram: mibazarow
  • Whatsapp: MihailBazarow
  • E-mail: mihail@bazarow.ru

Загрузка изображений секций каталога

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Проблема такая, есть список картинок которые нужно установить как картинки секций каталога товаров. Но в каталоге в районе 500 секции и ходить и делать это руками очень долго. Цель автоматизировать этот процесс.

Написал такой скрипт
Код
        //Точка входа с файлами, скрипт думаю будет хранится в папке админ, там же и файлы
        $sectionIconsFolder = "/bitrix/admin/custom/section-icons";
   $path =$_SERVER['DOCUMENT_ROOT'].$sectionIconsFolder;
        
        //Получаем содержимое
   $images = scandir($path);
        
        //Проходимся по всем файлам
   while(list($key, $filename) = each($images)) {
                
                //По какой-то причине первые два айтема в массиве с файлами это ., .., для тестовых целей пока что сделал так
      if($filename != '.' && $filename != '..') {
                        //Здесь пока что статичные данные для тестовых целей                
                        //Находим секци по названию секции
              $arFilter = Array('IBLOCK_ID'=>2, 'CODE'=>'underwear');
                $data = CIBlockSection::GetList(array("ASC" => "DESC"), $arFilter)->GetNext();

                        // Здесь я так полагаю происходит ошибка алгоритма
                        // Насколько я знаю в картинку обычно добавляются данные файла с помощью CFile:MakeFikeArray
                        // Здесь это не работает, есть подозрение что он не может добавить файл так как его нету в дб битрикса и 
                        // не в папке upload, скорее всего нужно добавить шаг с добавлением картинки в дб, мб я ошибаюсь
         $newPicture = CFile::MakeFileArray($path . "/" . $filename);
         CIBlockSection::Update($data["ID"], Array("PICTURE" => $newPicture));
         echo print_r($newPicture);
      }
   };
Проставил комментарии, в общем буду очень благодарен если поможете решить данную проблему
Ребят, думаю ошибка в алгоритме что в целом возможно, но по итогу вот что мне консоль вывела на метод CIBlockSection::Update
Код
Using $this when not in object context (0)
site.ru/bitrix/modules/iblock/classes/general/iblocksection.php:772 
Есть подозрения что ошибка в самом методе
Решил проблему, метод update не является статикой и вызывать его так CIBlockSection::Update было ошибкой, вот верный синтаксис $bs = new CIBlockSection; $bs->Update. Тему можно закрывать.  
Да, что бы кому-то (кто нарвется на этот вопрос) было понятнее

Код
$bs = new CIBlockSection;

$sectionIconsFolder = "/bitrix/admin/custom/section-icons";
$path = $_SERVER['DOCUMENT_ROOT'] . $sectionIconsFolder;
$images = scandir($path);

while (list($key, $filename) = each($images)) {
    if ($filename == '.' && $filename == '..') {
        continue;
    }
    $dbData = CIBlockSection::GetList(
        false,
        array(
            'IBLOCK_ID' => 2,
            'CODE' => 'underwear'
        )
    );
    while ($arSection = $dbData->Fetch()) {
        $arNewPicture = CFile::MakeFileArray($path . "/" . $filename);
        $arFields = array(
            "PICTURE" => $arNewPicture
        );
        $res = $bs->Update($arSection['ID'], $arFields);
    }
}
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить картинки
 

Стоимость разработки на 1С-Битрикс:

Индивидуальная разработка магазина

от 400 000 руб. от 5-ти недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Запуск сайта на готовом решении

от 100 000 руб. от 7-ми дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Мобильное приложение

от 400 000 руб. от 1-го месяца

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Сайт компании

от 250 000 руб. от 1-го месяца

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Инфресурс

от 300 000 руб. от 5-ти недель

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

Лечение сайтов от вирусов

от 30 000 руб. от 2-х дней

Выполню полную проверку сайта и окружения. В случае обнаружения вирусов проведу полный комплекс лечения проекта и закрытия лазеек.