Автоматическое подтверждение вступления в группу

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

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

Для реализации механизма подтверждения в ядре модуля социальной сети имеется функция "UserConfirmRequestToBeMember".

Реализация:

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

Дальше, перед подключением компонента с выводом информации о группе прописываем проверку на наличие нужного компонента в адресной строке и в случае наличия параметра пишем код:

$dbRequests = CSocNetUserToGroup::GetList(
		array("USER_LAST_NAME" => "ASC", "USER_NAME" => "ASC"),
		array(
			"GROUP_ID" => intval($arResult["VARIABLES"]["group_id"]),
			"USER_ID" => intval($GLOBALS["USER"]->GetID()),
			'ROLE'=>SONET_ROLES_REQUEST,
			"!INITIATED_BY_USER_ID"=>intval($GLOBALS["USER"]->GetID())
		),
		false,
		$arNavParams,
		array("ID", "USER_ID", "ROLE")
	);
	if ($arRequests = $dbRequests->GetNext())
	{
		$bAutoSubscribe = (array_key_exists("USE_AUTOSUBSCRIBE", $arParams) && $arParams["USE_AUTOSUBSCRIBE"] == "N" ? false : true);
		CSocNetUserToGroup::UserConfirmRequestToBeMember($GLOBALS["USER"]->GetID(),IntVal($arRequests['ID']), $bAutoSubscribe);
	}

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

Количество показов: 2993
04.09.2015

Возврат к списку

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

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