• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_destination.php
  • Класс: CSocNetLogDestination
  • Вызов: CSocNetLogDestination::searchSonetGroups
static function searchSonetGroups($params = array())
{
	global $USER;

	$result = array();

	CUtil::JSPostUnescape();

	$search = is_array($params) && isset($params['SEARCH']) ? trim($params['SEARCH']) : '';
	if (empty($search))
	{
		return $result;
	}

	if (
		$search == ''
		|| !getFilterQuery("TEST", $search)
	)
	{
		return $result;
	}

	$siteId = (
		isset($params['SITE_ID'])
		&& $params['SITE_ID'] <> ''
			? $params['SITE_ID']
			: SITE_ID
	);

	$currentUserAdmin = CSocNetUser::isCurrentUserModuleAdmin($siteId);

	$tmpList = array();

	$filter = array(
		'%NAME' => $search,
		"SITE_ID" => $siteId,
		"ACTIVE" => "Y",
	);

	if (
		!empty($params['LANDING'])
		&& $params['LANDING'] === 'Y'
	)
	{
		$filter['LANDING'] = 'Y';
	}

	if (!$currentUserAdmin)
	{
		$filter["CHECK_PERMISSIONS"] = $USER->getId();
	}

	$res = CSocnetGroup::getList(
		array("NAME" => "ASC"),
		$filter,
		false,
		array("nTopCount" => 50),
		array("ID", "NAME", "DESCRIPTION", "IMAGE_ID")
	);

	$extranetGroupsIdList = BitrixSocialnetworkComponentHelper::getExtranetSonetGroupIdList();

	while ($group = $res->fetch())
	{
		$tmp = array(
			"id" => $group["ID"],
			"entityId" => $group["ID"],
			"name" => htmlspecialcharsbx(Emoji::decode($group["NAME"])),
			"desc" => htmlspecialcharsbx(Emoji::decode($group["DESCRIPTION"])),
			"isExtranet" => (in_array($group["ID"], $extranetGroupsIdList) ? 'Y' : 'N')
		);

		if($group["IMAGE_ID"])
		{
			$imageFile = CFile::getFileArray($group["IMAGE_ID"]);
			if ($imageFile !== false)
			{
				$arFileTmp = CFile::resizeImageGet(
					$imageFile,
					array(
						"width" => (intval($params["THUMBNAIL_SIZE_WIDTH"]) > 0 ? $params["THUMBNAIL_SIZE_WIDTH"] : 100),
						"height" => (intval($params["THUMBNAIL_SIZE_HEIGHT"]) > 0 ? $params["THUMBNAIL_SIZE_HEIGHT"] : 100)
					),
					BX_RESIZE_IMAGE_PROPORTIONAL,
					false
				);
				$tmp["avatar"] = $arFileTmp["src"];
			}
		}
		unset($group["IMAGE_ID"]);
		$tmpList[$tmp['id']] = $tmp;
	}

	if (
		!$currentUserAdmin
		&& isset($params['FEATURES'])
		&& is_array($params['FEATURES'])
		&& !empty($params['FEATURES'])
	)
	{
		self::getSocnetGroupFilteredByFeaturePerms($tmpList, $params['FEATURES']);
	}

	if (
		!$currentUserAdmin
		&& isset($params['INITIATE'])
		&& $params['INITIATE'] === 'Y'
	)
	{
		self::getSocnetGroupFilteredByInitiatePerms($tmpList);
	}

	foreach ($tmpList as $value)
	{
		$value['id'] = 'SG'.$value['id'];
		$result[$value['id']] = $value;
	}

	return $result;
}