Серия 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: заметки разработчика

Установка Битрикс24 "Интернет-Магазин + CRM" на один домен и настройка работы почты.

Задача: установить лицензию "Интернет-Магазин + CRM" на один домен. Что бы crm была доступна по адресу crm...

Если предложение SKU в корзине, поменять кнопку добавления на "В корзине"

Данная заметка является дополнением к ранее опубликованной: Если товар в корзине, поменять значение input на "В корзине"...

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

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

Пункты меню из разделов инфоблока Битрикс

В принципе это стандартная возможность системы управления битрикс, но почему-то часто спрашивают как это сделать. Возмож...

Ссылка и название раздела в списке новостей Битрикс

Если нужно вывести название раздела инфоблока в котором находится конкретный элемент/новость в компоненте "списк новосте...

Создание раздела инфоблока при регистрации пользователя в Битрикс

Например вам нужно выводить информацию исключительно для определенного пользователя. Само собой, это можно сделать с пом...

Дополнительные опции/услуги, добавляемые в корзину, в карточке товаров

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

Умный фильтр только на последнем уровне разделов каталога.

Если в разработаываемом магазине или в принципе в каталоге на Битрикс, вы выводите умный фильтр в разделах - он выводитс...

Вывести артикул в печатную форму бланка заказа

Задача: в печатную форму бланка заказа добавить артикулы товаров и данные о пользователе.