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

Просмотров: 12365

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

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

Что мы сделаем: При регистрации пользователя будем создавать раздел с его логином в инфоблоке. С помощью API методов 1С-Битрикс "OnAfterUserAdd" и "CIBlockSection"

Для этого — Создаем новый инфоблок на сайте
— в файл /bitrix/php_interface/init.php вставляем код

// Регистрируем обработчик AddSectionInBlock 
AddEventHandler("main", "OnAfterUserAdd", Array("AddSectionInBlock", "OnAfterUserAddHandler")); 
class AddSectionInBlock 
	 { 
	 	// создаем обработчик события "OnAfterUserAdd" 
	 	function OnAfterUserAddHandler(&$arFields) 
	 { 
	 if (CModule::IncludeModule('iblock')) { 
		 $bs = new CIBlockSection; 
		 $arFieldsi = Array( 
			 "ACTIVE" => "Y",
			 "IBLOCK_ID" => 10, //ID инфоблока в котором создастся раздел 
			 "NAME" => $arFields["LOGIN"], //Название раздела с логином пользователя 
			 "CODE" => $arFields["LOGIN"], //Символьный код раздела с логином пользователя 
			 "SORT" => $SORT, 
		 );
		 if ($ID > 0) { 
			 $res = $bs->Update($ID, $arFieldsi); 
		 } else { 
			 $ID = $bs->Add($arFieldsi); 
			 $res = ($ID > 0); 
		 } 
		 if (!$res) 
		 	echo $bs->LAST_ERROR; 
		 } 
	} 
} 

Способы применения данного функционала достаточно обширны. Как простой пример: Это фильтровать разделы в кабинете пользователя, куда вы (как администратор) будете складывать элементы, доступные только этому пользователю.

Вариант на D7

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

use Bitrix\Main\EventManager;
use Bitrix\Iblock\SectionTable;
use Bitrix\Main\Loader;

class AddSectionInBlock
{
    public static function onAfterUserAddHandler(&$arFields)
    {
        if (Loader::includeModule('iblock')) {
            $iblockId = 10; // ID инфоблока, в котором создастся раздел
            $sectionData = [
                'ACTIVE' => 'Y',
                'IBLOCK_ID' => $iblockId,
                'NAME' => $arFields['LOGIN'], // Название раздела с логином пользователя
                'CODE' => $arFields['LOGIN'], // Символьный код раздела с логином пользователя
                'SORT' => 500, // Укажите нужный порядок сортировки
            ];

            // Создаем новый раздел
            $result = SectionTable::add($sectionData);

/*
            if (!$result->isSuccess()) {
                // Если произошла ошибка, выводим ее
                $errors = $result->getErrorMessages();
                foreach ($errors as $error) {
                    echo $error;
                }
            }
*/
        }
    }
}

// Регистрируем обработчик события
EventManager::getInstance()->addEventHandler(
    'main',
    'OnAfterUserAdd',
    ['AddSectionInBlock', 'onAfterUserAddHandler']
);

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

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

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

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

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

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

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

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

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

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

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

от 300 000 руб. от 2-х недель

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

Инфоресурс

от 300 000 руб. от 4-х недель

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

3D‑моделирование, визуализация

от 25 000 руб. от 3-х дней

По вашим фото, чертежам или описанию создадим 3D‑модели и отрендерим набор изображений для каталога товаров: общий вид, крупные планы и технические ракурсы или 360°‑обзор товара.