Документация для разработчиков
Темная тема

CreateGroup

Описание и параметры

int
CSocNetGroup::CreateGroup(
	int ownerID,
	array arFields,
	bool bAutoSubscribe = true
);

Статический метод создает новую рабочую группу. Для создания группы необходимо задать права пользователей (Параметры INITIATE_PERMS и SPAM_PERMS). Лучше использовать константы (см. ключи массива), но можно использовать и символы:

  • A (Только владелец группы),
  • E (Владелец группы и модераторы группы),
  • K (Все члены группы ).

Примечание: при работе метода вызываются события OnBeforeSocNetGroupAdd и OnSocNetGroupAdd.

Параметры

Параметр Описание С версии
ownerID Код пользователя - владельца новой рабочей группы.
arFields Массив параметров новой группы. Допустимые ключи массива:
SITE_ID - код сайта (обязательное поле),
NAME - название группы (обязательное поле),
DESCRIPTION - описание группы,
VISIBLE - флаг Y/N - видна ли группа в списке групп,
OPENED - флаг Y/N - открыта ли группа для свободного вступления,
SUBJECT_ID - код темы (обязательное поле),
KEYWORDS - ключевые слова,
IMAGE_ID - иконка группы,
INITIATE_PERMS - кто имеет право на приглашение пользователей в группу (обязательное поле): SONET_ROLES_OWNER - только владелец группы, SONET_ROLES_MODERATOR - владелец группы и модераторы группы , SONET_ROLES_USER - все члены группы,
CLOSED - флаг Y/N - является ли группа архивной,
SPAM_PERMS - кто имеет право на отправку сообщений в группу (обязательное поле): SONET_ROLES_OWNER - только владелец группы, SONET_ROLES_MODERATOR - владелец группы и модераторы группы, SONET_ROLES_USER - все члены группы, SONET_ROLES_ALL - все пользователи.
PROJECT Y/N. Является группа проектом или нет. по умолчанию - не является. (С версии 18.0.0)
PROJECT_DATE_FINISH Задаётся окончание проекта. (С версии 18.0.0)
PROJECT_DATE_START Задаётся начало проекта. (С версии 18.0.0)
bAutoSubscribe Автоподписывание на созданную тему. Необязательный параметр. По умолчанию имеет значение True. 10.0.0

Возвращаемое значение

Метод возвращает код вновь созданной группы или false в случае ошибки.

Примеры использования

<?
$arImageID = $GLOBALS["HTTP_POST_FILES"]["GROUP_IMAGE_ID"];
if (StrLen($arImageID["tmp_name"]) > 0)
	CFile::ResizeImage($arImageID, array("width" => 300, "height" => 300), BX_RESIZE_IMAGE_PROPORTIONAL);

$arFields = array(
	"SITE_ID" => SITE_ID,
	"NAME" => $_POST["GROUP_NAME"],
	"DESCRIPTION" => $_POST["GROUP_DESCRIPTION"],
	"VISIBLE" => ($_POST["GROUP_VISIBLE"] == "Y" ? "Y" : "N"),
	"OPENED" => ($_POST["GROUP_OPENED"] == "Y" ? "Y" : "N"),
	"CLOSED" => ($_POST["GROUP_CLOSED"] == "Y" ? "Y" : "N"),
	"SUBJECT_ID" => $_POST["GROUP_SUBJECT_ID"],
	"KEYWORDS" => $_POST["GROUP_KEYWORDS"],
	"IMAGE_ID" => $arImageID,
	"INITIATE_PERMS" => $_POST["GROUP_INITIATE_PERMS"],
	"SPAM_PERMS" => $_POST["GROUP_SPAM_PERMS"],
);

$groupId = CSocNetGroup::CreateGroup($GLOBALS["USER"]->GetID(), $arFields);
if (!$groupId)
{
	if ($e = $GLOBALS["APPLICATION"]->GetException())
		$errorMessage .= $e->GetString();
}
?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
jabir_sabitov
Сообщение не промодерировано, возможны ошибки и неточности.
Чтобы корректно создать группу в экстранете, нужно передать идентификатор основного сайта и сайта экстранета:
Код
'SITE_ID' => ['s1', 'ex']
3
Кирилл Васильев
Код
<?
 \Bitrix\Main\Loader::includeModule('socialnetwork');
 $arFields = array(
     "SITE_ID" => 's1',
     "NAME" => $data["name_project"],
     "VISIBLE" => "Y",
     "OPENED" => "Y",
     "CLOSED" =>  "N",
    "SUBJECT_ID" => '1',     
     "INITIATE_PERMS" => SONET_ROLES_MODERATOR,
     "SPAM_PERMS" => SONET_ROLES_USER,
     );

 $groupId = CSocNetGroup::CreateGroup(1, $arFields);
 if (!$groupId)
 {
 if ($e = $GLOBALS["APPLICATION"]->GetException())
     $errorMessage .= $e->GetString();
 }
?>

Минимальный набор данных для создания группы.
SUBJECT_ID можно взять из раздела админ части Сервисы > Социальная сеть > Темы
2
alsagan
Параметр типа SONET_ROLES_OWNER необходимо указывать в массиве полей группы без кавычек.
В кавычках не будет работать.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх