%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/self/root/home/bitrix/www/bitrix/components/bitrix/socialnetwork.group_users.ex/
Upload File :
Create Path :
Current File : //proc/self/root/home/bitrix/www/bitrix/components/bitrix/socialnetwork.group_users.ex/class.php

<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

final class SocialnetworkGroupUsersEx extends CBitrixComponent
{
	protected function getUserList($key, $arParams, $arResult, $arNavParams)
	{
		global $USER;

		$userList = false;
		$bUseLogin = $arParams['SHOW_LOGIN'] != "N" ? true : false;

		if (
			(
				$key == 'UsersAuto'
				&& (
					$arParams["USE_AUTO_MEMBERS"] != "Y"
					|| !$arResult["bIntranetInstalled"]
				)
			)
			|| (
				$key == 'Ban'
				&& !(
					$arParams["GROUP_USE_BAN"] == "Y"
					&& $arResult["CurrentUserPerms"]
					&& $arResult["CurrentUserPerms"]["UserCanModerateGroup"]
				)
			)
		)
		{
			return $userList;
		}

		$arSelect = array("ID", "USER_ID", "USER_ACTIVE", "ROLE", "DATE_CREATE", "DATE_UPDATE", "USER_NAME", "USER_LAST_NAME", "USER_SECOND_NAME", "USER_LOGIN", "USER_PERSONAL_PHOTO", "USER_PERSONAL_GENDER", "USER_IS_ONLINE", "USER_WORK_POSITION");

		$arFilter = array(
			"GROUP_ID" => $arResult["Group"]["ID"],
		);

		switch($key)
		{
			case "Users":
			case "UsersAuto":
				$arFilter["<=ROLE"] = \Bitrix\Socialnetwork\UserToGroupTable::ROLE_USER;
				break;
			case "Moderators":
				$arFilter["<=ROLE"] = \Bitrix\Socialnetwork\UserToGroupTable::ROLE_MODERATOR;
				break;
			case "Ban":
				$arFilter["=ROLE"] = \Bitrix\Socialnetwork\UserToGroupTable::ROLE_BAN;
				break;
			default:
				$arFilter["<=ROLE"] = \Bitrix\Socialnetwork\UserToGroupTable::ROLE_USER;
		}

		if (!$arResult["CurrentUserPerms"]["UserCanModifyGroup"])
		{
			$arFilter["USER_ACTIVE"] = "Y";
		}

		if ($arResult["bIntranetInstalled"])
		{
			if (
				$key == 'Users'
				&& $arParams["USE_AUTO_MEMBERS"] == "Y"
			)
			{
				$arFilter["!=AUTO_MEMBER"] = "Y";
			}
			elseif ($key == 'UsersAuto')
			{
				$arFilter["=AUTO_MEMBER"] = "Y";
			}
		}

		$dbRequests = CSocNetUserToGroup::GetList(
			array("USER_LAST_NAME" => "ASC", "USER_NAME" => "ASC"),
			$arFilter,
			false,
			$arNavParams,
			$arSelect
		);

		if ($dbRequests)
		{
			$userList = array();
			$userList["List"] = false;

			while ($arRequests = $dbRequests->GetNext())
			{
				$pu = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arRequests["USER_ID"]));
				$canViewProfile = CSocNetUserPerms::CanPerformOperation($USER->GetID(), $arRequests["USER_ID"], "viewprofile", CSocNetUser::IsCurrentUserModuleAdmin());

				$arImage = false;
				if (intval($arParams["THUMBNAIL_LIST_SIZE"]) > 0)
				{
					if (intval($arRequests["USER_PERSONAL_PHOTO"]) <= 0)
					{
						switch ($arRequests["USER_PERSONAL_GENDER"])
						{
							case "M":
								$suffix = "male";
								break;
							case "F":
								$suffix = "female";
								break;
							default:
								$suffix = "unknown";
						}
						$arRequests["USER_PERSONAL_PHOTO"] = COption::GetOptionInt("socialnetwork", "default_user_picture_".$suffix, false, SITE_ID);
					}

					$arImage = CFile::ResizeImageGet(
						$arRequests["USER_PERSONAL_PHOTO"],
						array("width" => $arParams["THUMBNAIL_LIST_SIZE"], "height" => $arParams["THUMBNAIL_LIST_SIZE"]),
						BX_RESIZE_IMAGE_EXACT,
						false
					);
				}

				$arTmpUser = array(
					"NAME" => $arRequests["USER_NAME"],
					"LAST_NAME" => $arRequests["USER_LAST_NAME"],
					"SECOND_NAME" => $arRequests["USER_SECOND_NAME"],
					"LOGIN" => $arRequests["USER_LOGIN"],
				);
				$NameFormatted = CUser::FormatName($arParams['NAME_TEMPLATE_WO_NOBR'], $arTmpUser, $bUseLogin);

				if ($userList["List"] == false)
				{
					$userList["List"] = array();
				}

				$record = array(
					"ID" => $arRequests["ID"],
					"USER_ID" => $arRequests["USER_ID"],
					"USER_ACTIVE" => $arRequests["USER_ACTIVE"],
					"USER_NAME" => $arRequests["USER_NAME"],
					"USER_LAST_NAME" => $arRequests["USER_LAST_NAME"],
					"USER_SECOND_NAME" => $arRequests["USER_SECOND_NAME"],
					"USER_LOGIN" => $arRequests["USER_LOGIN"],
					"USER_NAME_FORMATTED" => $NameFormatted,
					"USER_PERSONAL_PHOTO" => $arRequests["USER_PERSONAL_PHOTO"],
					"USER_PERSONAL_PHOTO_IMG" => $arImage,
					"USER_PERSONAL_GENDER" => $arRequests["USER_PERSONAL_GENDER"],
					"USER_WORK_POSITION" => $arRequests["USER_WORK_POSITION"],
					"USER_PROFILE_URL" => $pu,
					"SHOW_PROFILE_LINK" => $canViewProfile,
					"IS_ONLINE" => ($arRequests["USER_IS_ONLINE"] == "Y"),
					"USER_IS_EXTRANET" => (isset($GLOBALS["arExtranetUserID"]) && is_array($GLOBALS["arExtranetUserID"]) && in_array($arRequests["USER_ID"], $GLOBALS["arExtranetUserID"]) ? "Y" : "N")
				);

				if (in_array($key, array("Moderators", "Users")))
				{
					$record["IS_OWNER"] = ($arRequests["ROLE"] == \Bitrix\Socialnetwork\UserToGroupTable::ROLE_OWNER);
				}
				$userList["List"][] = $record;
			}

			switch($key)
			{
				case "Users":
					$navTitle = GetMessage("SONET_GUE_USERS_NAV");
					break;
				case "UsersAuto":
					$navTitle = GetMessage("SONET_GUE_USERS_AUTO_NAV");
					break;
				case "Moderators":
					$navTitle = GetMessage("SONET_GUE_MODS_NAV");
					break;
				case "Ban":
					$navTitle = GetMessage("SONET_GUE_BAN_NAV");
					break;
				default:
					$navTitle = '';
			}

			$userList["NAV_STRING"] = $dbRequests->GetPageNavStringEx($navComponentObject, $navTitle, "", false);
		}

		return $userList;
	}
}

Zerion Mini Shell 1.0