Меню

Серия 3: Создаем персональный раздел, создаем компонент добавления объявлений

В этой серии создадим структуру персонального раздела пользователя, добавим базовый функционал добавления объявлений пользователем. Для реализации понадобится заметка:
Форма добавления элемента на API Битрикс

Чеклист:

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

Дополнительные файлы

Полная версия серии на Boosty: Смотреть
Михаил Базаров марта 10, 2024 11:48 am
Пригодится для видео
Добавление цены к добавленному товару:
Код
 $arFields = Array(
      "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
      "IBLOCK_SECTION_ID" => false,          // элемент лежит в корне раздела
      "IBLOCK_ID"      => 4,
      "NAME"           => $row[3],
      "ACTIVE"         => "Y",            // активен
      "PREVIEW_TEXT"   => $row[5],
      "DETAIL_TEXT"    => $row[4],
   );
   
   if($last_el_id = $el_ob->Add($arFields))
   {
      echo 'New ID: ' . $last_el_id . '<br>';

      $arFields = array(
         "ID" => $last_el_id, 
         "VAT_INCLUDED" => "Y"
      );

      if(CCatalogProduct::Add($arFields))
      {
         echo "Добавили параметры товара к элементу каталога " . $last_el_id . '<br>';
         
         $arFields = Array(
            "PRODUCT_ID" => $last_el_id,
            "CATALOG_GROUP_ID" => 1,
            "PRICE" => $row[6],
            "CURRENCY" => "RUB",
         );
         CPrice::Add($arFields);
      }
      else
         echo 'Ошибка добавления параметров товара<br>';
   }
   else
      echo 'Error: ' . $el_ob->LAST_ERROR

Вариант добавления цены на D7
Код
$result = \Bitrix\Catalog\Model\Product::add([
         'external_fields' => [
            'IBLOCK_ID' => ID_торгового_каталога, // необязательный ключ, минус 1 запрос к базе
         ],
         'fields' => $fields,
      ]);

Получения разделов инфоблока с D7
Код
$arResult['SECTIONS'] = \Bitrix\Iblock\SectionTable::getList(array(
    'filter' => array(
        'IBLOCK_ID' => 14,
        'DEPTH_LEVEL' => 2,
    ),
    'select' =>  array(
        'ID', 'NAME'
    ),
))->fetchAll();

Блог-note: заметки разработчика

Обновление 1С-Битрикс до поддержки версии PHP 8.3 с PHP 7

Задача: обновить устаревший сайт на платформе 1С-Битрикс, который не получал обновлений уже более 4 лет и работает на PH...

Следующая/предыдущая новость/статья при просмотре подробной в Битрикс

Странное дело, в Битрикс по умолчанию, отсутсвует функционал для навигации внутри новостей или статей типа: "Следующая/...

XML в формате Commerce ML-2, города России и Мира, для выгрузки в инфоблок Битрикс

Подвернулась задачка, создать инфоблок для Битрикс, в котором будут просто города России и мира в виде элементов инфобло...

Создание агента в 1С-Битрикс, на реальном примере

Задача: Каждый час нужно обновлять свойство элементов/товаров с типом строка "В наличии", вписывать в него либ...

Вывести дату окончания скидки в карточке товара

Если нужно вывести информацию о скидке в карточке товара, можно воспользоваться методом CCatalogDiscount::GetList. Данны...

Заполнение габаритов товара, после обмена с 1С, из свойств элемента инфоблока.

Если Ваш интернет-магазин интегрирован с 1С, скорее всего столкнулись с такой проблемой: 1С не умеет выгружать параметры...

Настройка push уведомлений через Firebase, в мобильном приложении Apache Cordova

Задача: Apache Cordova предоставляет удобный способ разработки кроссплатформенных мобильных приложений. В данной статье ...

Наличие на складах в умном фильтре 1С-Битрикс, с автоматическим обновлением

Задача: добавить возможность фильтрации товаров по складам в умном фильтре. Данные должны обновляться автоматически, при...

Перенос Битрикс сайта с хостинга на хостинг, инструкция

Достаточно часто спрашивают как перенести сайт работающий на 1С Битрикс с одного хостинга на другой, как раз подвернулас...