@html_student
Молодой и глупый.

Как в битрикс записать изменить поля пользователя и добавить элемент?

Такой вопрос
Есть действие после которого я инициирую php файл где у пользователя должен измениться статус и прописаться 2 даты
Дата текущая ( на момент выполнения и год вперед)
$mysqli = new mysqli("localhost","name","pass","name");
$uid=$_POST['uid'];
$start=date("Y-m-d H:i:s");
$finish=date('Y-m-d H:i:s', strtotime('+1 year', strtotime($start)));
$mysqli->query("update `b_uts_user` set `UF_STATUS`=4,`UF_DATE_FROM`='$start' `UF_DATE_TO`='$finish' where `VALUE_ID`=$uid");

Через $_POST я получаю VALUE_ID пользователя и уже по нему меняю UF_STATUS на 4, и прописываю 2 даты.
Также есть инфоблок ID 29 , где я бы хотел добавлять имя пользователя и дату $start , но как лучше это сделать?
Также запросом query? или черзе модули Bitrix?
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
@html_student Автор вопроса
Молодой и глупый.
В общем кому то может пригодится
<?
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');
$user_id = intval($_POST['uid']);
$rsUser = CUser::GetByID($user_id);

	$arUser = $rsUser->Fetch();
	$email = $arUser['EMAIL'];
	$fields = Array(
		"UF_DATE_FROM" => ConvertTimeStamp(strtotime(), 'FULL'),
		"UF_DATE_TO" => ConvertTimeStamp(strtotime("+1 year"), 'FULL'),
		"UF_STATUS" => 4,
		
	);
	$user = new CUser;
	$user->Update($user_id, $fields);



	if(CModule::IncludeModule("iblock")){ 
		
		$el = new CIBlockElement;

		$PROP = array();
		$PROP['USER'] = $user_id; 
		$PROP['DATE'] = ConvertTimeStamp(date(), 'FULL');
		$PROP['DATE_PAYMENT'] = ConvertTimeStamp(date(), 'FULL');
		$PROP['TOTAL_PRICE'] = 1000;

		$arLoadProductArray = Array(
			"IBLOCK_ID"      => 29,
			"PROPERTY_VALUES"=> $PROP,
			"NAME"           => $email
		);
		$PRODUCT_ID = $el->Add($arLoadProductArray);
	}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
В Битриксе не принято делать прямые запросы в БД, нужно использовать API.

С инфоблоком - недостаточно информации, как именно Вы хотите добавлять. Возможностей масса - например, создавать элемент инфоблока, имя пользователя пойдёт в поле NAME, $start и $finish - в поля ACTIVE_FROM, ACTIVE_TO ( если это подходит по задаче). А можно $start писать в поле DATE_CREATE . А можно - создать свойство инфоблока и туда писать.
Смотрите поля элементов и создание элемента инфоблока
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы