%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.user_requests.ex/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/socialnetwork.user_requests.ex/component.php |
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/** @var CBitrixComponent $this */
/** @var array $arParams */
/** @var array $arResult */
/** @var string $componentPath */
/** @var string $componentName */
/** @var string $componentTemplate */
/** @global CDatabase $DB */
/** @global CUser $USER */
/** @global CMain $APPLICATION */
/** @global CCacheManager $CACHE_MANAGER */
/** @global CUserTypeManager $USER_FIELD_MANAGER */
if (!CModule::IncludeModule("socialnetwork"))
{
ShowError(GetMessage("SONET_MODULE_NOT_INSTALL"));
return;
}
if (!function_exists('getRelatedUser'))
{
function getRelatedUser($firstUserID, $relationID)
{
$arRel = CSocNetUserRelations::GetByID($relationID);
if ($arRel)
{
$secondUserID = ($firstUserID == $arRel["FIRST_USER_ID"]) ? $arRel["SECOND_USER_ID"] : $arRel["FIRST_USER_ID"];
$dbUser = CUser::GetByID($secondUserID);
if ($arUser = $dbUser->Fetch())
return CUser::FormatName(CSite::GetNameFormat(false), $arUser, true);
else
return false;
}
else
return false;
}
}
if (!function_exists('getRelatedGroup'))
{
function getRelatedGroup($relationID)
{
$arRel = CSocNetUserToGroup::GetByID($relationID);
if ($arRel)
return $arRel["GROUP_NAME"];
else
return false;
}
}
$arParams["SET_NAV_CHAIN"] = ($arParams["SET_NAV_CHAIN"] == "N" ? "N" : "Y");
$bAutoSubscribe = (array_key_exists("USE_AUTOSUBSCRIBE", $arParams) && $arParams["USE_AUTOSUBSCRIBE"] == "N" ? false : true);
$arParams["USER_ID"] = IntVal($arParams["USER_ID"]);
if ($arParams["USER_ID"] < 0)
return false;
if (strLen($arParams["USER_VAR"]) <= 0)
$arParams["USER_VAR"] = "user_id";
if (strLen($arParams["PAGE_VAR"]) <= 0)
$arParams["PAGE_VAR"] = "page";
$arParams["PATH_TO_USER"] = trim($arParams["PATH_TO_USER"]);
if (strlen($arParams["PATH_TO_USER"]) <= 0)
$arParams["PATH_TO_USER"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=user&".$arParams["USER_VAR"]."=#user_id#");
$arParams["PATH_TO_MESSAGE_FORM"] = trim($arParams["PATH_TO_MESSAGE_FORM"]);
if (strlen($arParams["PATH_TO_MESSAGE_FORM"]) <= 0)
$arParams["PATH_TO_MESSAGE_FORM"] = htmlspecialcharsbx($APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=message_form&".$arParams["USER_VAR"]."=#user_id#");
$arParams["ITEMS_COUNT"] = intval($arParams["ITEMS_COUNT"]);
if ($arParams["ITEMS_COUNT"] <= 0)
$arParams["ITEMS_COUNT"] = 30;
$arParams["THUMBNAIL_LIST_SIZE"] = intval($arParams["THUMBNAIL_LIST_SIZE"]);
if ($arParams["THUMBNAIL_LIST_SIZE"] <= 0)
$arParams["THUMBNAIL_LIST_SIZE"] = 30;
$arParams["PATH_TO_SMILE"] = trim($arParams["PATH_TO_SMILE"]);
$arParams['NAME_TEMPLATE'] = $arParams['NAME_TEMPLATE'] ? $arParams['NAME_TEMPLATE'] : CSite::GetNameFormat();
$bUseLogin = $arParams['SHOW_LOGIN'] != "N" ? true : false;
// for bitrix:main.user.link
if (IsModuleInstalled('intranet'))
{
$arTooltipFieldsDefault = serialize(array(
"EMAIL",
"PERSONAL_MOBILE",
"WORK_PHONE",
"PERSONAL_ICQ",
"PERSONAL_PHOTO",
"PERSONAL_CITY",
"WORK_COMPANY",
"WORK_POSITION",
));
$arTooltipPropertiesDefault = serialize(array(
"UF_DEPARTMENT",
"UF_PHONE_INNER",
));
}
else
{
$arTooltipFieldsDefault = serialize(array(
"PERSONAL_ICQ",
"PERSONAL_BIRTHDAY",
"PERSONAL_PHOTO",
"PERSONAL_CITY",
"WORK_COMPANY",
"WORK_POSITION"
));
$arTooltipPropertiesDefault = serialize(array());
}
if (!array_key_exists("SHOW_FIELDS_TOOLTIP", $arParams))
$arParams["SHOW_FIELDS_TOOLTIP"] = unserialize(COption::GetOptionString("socialnetwork", "tooltip_fields", $arTooltipFieldsDefault));
if (!array_key_exists("USER_PROPERTY_TOOLTIP", $arParams))
$arParams["USER_PROPERTY_TOOLTIP"] = unserialize(COption::GetOptionString("socialnetwork", "tooltip_properties", $arTooltipPropertiesDefault));
if (!$USER->IsAuthorized())
{
$arResult["NEED_AUTH"] = "Y";
}
else
{
/*********************** ACTIONS *******************************/
if (
$_SERVER["REQUEST_METHOD"] == "POST"
&& (in_array($_POST["action"], array("accept", "reject")))
&& check_bitrix_sessid()
)
{
if ($_POST["ajax_request"] == "Y")
{
CUtil::JSPostUnescape();
}
$errorMessage = "";
$arUserRelationIDs = array();
$arGroupRelationIDs = array();
if (strlen($errorMessage) <= 0)
{
for ($i = 0; $i <= intval($_POST["max_count"]); $i++)
{
if ($_POST["checked_".$i] == "Y")
{
if ($_POST["type_".$i] == "INVITE_GROUP")
{
$arGroupRelationIDs[] = intval($_POST["id_".$i]);
}
else
{
$arUserRelationIDs[] = intval($_POST["id_".$i]);
}
}
}
}
if (count($arUserRelationIDs) <= 0 && count($arGroupRelationIDs) <= 0)
{
$errorMessage .= GetMessage("SONET_URE_NOT_SELECTED").". ";
}
if (strlen($errorMessage) <= 0)
{
$type = ($_POST["type"] == "out" ? "out" : "in");
if ($type == "in")
{
if (count($arGroupRelationIDs) > 0)
{
foreach ($arGroupRelationIDs as $relationID)
{
$errorMessage = "";
if ($_POST["action"] == "accept")
{
if (!CSocNetUserToGroup::UserConfirmRequestToBeMember($arParams["USER_ID"], $relationID, $bAutoSubscribe))
{
if ($e = $APPLICATION->GetException())
{
$errorMessage .= $e->GetString();
}
}
}
elseif ($_POST["action"] == "reject")
{
if (!CSocNetUserToGroup::UserRejectRequestToBeMember($arParams["USER_ID"], $relationID))
{
if ($e = $APPLICATION->GetException())
{
$errorMessage .= $e->GetString();
}
}
}
}
}
if (count($arUserRelationIDs) > 0)
{
$errorMessage = "";
foreach ($arUserRelationIDs as $relationID)
{
if ($_POST["action"] == "accept")
{
if (!CSocNetUserRelations::ConfirmRequestToBeFriend($arParams["USER_ID"], $relationID, $bAutoSubscribe))
{
if ($e = $APPLICATION->GetException())
{
$errorMessage .= $e->GetString();
}
}
}
elseif ($_POST["action"] == "reject")
{
$arRelation = CSocNetUserRelations::GetByID($relationID);
if (!$arRelation)
{
continue;
}
if (!CSocNetUserRelations::RejectRequestToBeFriend($arParams["USER_ID"], $relationID))
{
if ($e = $APPLICATION->GetException())
{
$errorMessage .= $e->GetString();
}
}
}
}
}
}
else //outgoing
{
if ($_POST["action"] == "reject")
{
// groups
if (count($arGroupRelationIDs) > 0)
{
$errorMessage = "";
foreach($arGroupRelationIDs as $relationID)
{
$arRelation = CSocNetUserToGroup::GetByID($relationID);
if (!$arRelation)
{
continue;
}
if (!CSocNetUserToGroup::Delete($arRelation["ID"]))
{
if ($e = $APPLICATION->GetException())
{
$errorMessage .= $e->GetString();
}
if (StrLen($errorMessage) <= 0)
{
$errorMessage .= GetMessage("SONET_GRE_CANT_DELETE_INVITATION", array("#RELATION_ID#" => $arRelation["ID"]));
}
}
}
}
// users
if (count($arUserRelationIDs) > 0)
{
$errorMessage = "";
foreach($arUserRelationIDs as $relationID)
{
$arRelation = CSocNetUserRelations::GetByID($relationID);
if (!$arRelation)
{
continue;
}
if (!CSocNetUserRelations::Delete($arRelation["ID"]))
{
if ($e = $APPLICATION->GetException())
{
$errorMessage .= $e->GetString();
}
if (StrLen($errorMessage) <= 0)
{
$errorMessage .= GetMessage("SONET_GRE_CANT_DELETE_INVITATION", array("#RELATION_ID#" => $arRelation["ID"]));
}
}
}
}
}
}
}
if ($_POST["ajax_request"] == "Y")
{
$APPLICATION->RestartBuffer();
echo CUtil::PhpToJsObject(array(
'MESSAGE' => (strlen($errorMessage) > 0 ? 'ERROR' : 'SUCCESS'),
'ERROR_MESSAGE' => (strlen($errorMessage) > 0 ? $errorMessage : ''),
));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
die();
}
}
//Handling confirmation with e-mail links
if (
$_SERVER["REQUEST_METHOD"] == "GET"
&& isset($_GET["CONFIRM"])
)
{
$errorMessage = "";
//ACCESS CHECK: only user himself and socnet admin are allowed to confirm
if (
$USER->GetID() != $arParams["USER_ID"]
&& !CSocNetUser::IsCurrentUserModuleAdmin()
)
{
$errorMessage = GetMessage("SONET_URE_NO_PERMS");
}
if (isset($_GET["INVITE_GROUP"]))
{
$relationID = intval($_GET["INVITE_GROUP"]);
if ($_GET["CONFIRM"] == "Y")
{
if (CSocNetUserToGroup::UserConfirmRequestToBeMember($arParams["USER_ID"], $relationID, $bAutoSubscribe))
{
$infoMessage = GetMessage("SONET_URE_GROUP_CONFIRM", array('#GROUP#' => getRelatedGroup($relationID)));
}
else
{
if ($e = $APPLICATION->GetException())
$errorMessage .= $e->GetString();
}
}
elseif ($_GET["CONFIRM"] == "N")
{
$group = getRelatedGroup($relationID);
if ($group && CSocNetUserToGroup::UserRejectRequestToBeMember($arParams["USER_ID"], $relationID))
{
$infoMessage = GetMessage("SONET_URE_GROUP_REJECT", array("#GROUP#" => $group));
}
else
{
if ($e = $APPLICATION->GetException())
$errorMessage .= $e->GetString();
}
}
}
//friendship
if (isset($_GET["INVITE_USER"]))
{
$relationID = intval($_GET["INVITE_USER"]);
if ($_GET["CONFIRM"] == "Y")
{
if (CSocNetUserRelations::ConfirmRequestToBeFriend($arParams["USER_ID"], $relationID, $bAutoSubscribe))
{
$infoMessage = GetMessage("SONET_URE_FRIEND_CONFIRM", array("#USER#" => getRelatedUser($arParams["USER_ID"], $relationID)));
}
else
{
if ($e = $APPLICATION->GetException())
$errorMessage .= $e->GetString();
}
}
elseif ($_GET["CONFIRM"] == "N")
{
$secondUser = getRelatedUser($arParams["USER_ID"], $relationID);
if ($secondUser && CSocNetUserRelations::RejectRequestToBeFriend($arParams["USER_ID"], $relationID))
{
$infoMessage = GetMessage("SONET_URE_FRIEND_REJECT", array("#USER#" => $secondUser));
}
else
{
if ($e = $APPLICATION->GetException())
$errorMessage .= $e->GetString();
}
}
}
}
/********************* END ACTIONS *****************************/
$dbUser = CUser::GetByID($arParams["USER_ID"]);
$arResult["User"] = $dbUser->GetNext();
$arResult["User"]["NAME_FORMATTED"] = CUser::FormatName($arParams['NAME_TEMPLATE'], $arResult['User'], $bUseLogin);
if ($arParams["SET_TITLE"] == "Y")
$APPLICATION->SetTitle(htmlspecialcharsback($arResult["User"]["NAME_FORMATTED"]).": ".GetMessage("SONET_URE_PAGE_TITLE"));
if ($arParams["SET_NAV_CHAIN"] != "N")
$APPLICATION->AddChainItem(GetMessage("SONET_URE_PAGE_TITLE"));
if (is_array($arResult["User"]))
{
$arResult["CurrentUserPerms"] = CSocNetUserPerms::InitUserPerms($USER->GetID(), $arResult["User"]["ID"], CSocNetUser::IsCurrentUserModuleAdmin());
if ($arResult["CurrentUserPerms"]["Operations"]["modifyuser"])
{
$parser = new CSocNetTextParser(LANGUAGE_ID, $arParams["PATH_TO_SMILE"]);
/********************* Incoming Requests ***********************/
/* Friends Incoming */
$arResult["RequestsIn"] = array();
$dbUserRequests = CSocNetUserRelations::GetList(
array("DATE_UPDATE" => "ASC"),
array(
"SECOND_USER_ID" => $arParams["USER_ID"],
"RELATION" => SONET_RELATIONS_REQUEST
),
false,
false,
array("ID", "FIRST_USER_ID", "MESSAGE", "FIRST_USER_NAME", "DATE_UPDATE", "FIRST_USER_LAST_NAME", "FIRST_USER_FIRST_NAME", "FIRST_USER_LOGIN", "FIRST_USER_PERSONAL_PHOTO", "FIRST_USER_PERSONAL_GENDER", "FIRST_USER_IS_ONLINE")
);
while ($arUserRequest = $dbUserRequests->GetNext())
{
$pu = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arUserRequest["FIRST_USER_ID"]));
$canViewProfile = CSocNetUserPerms::CanPerformOperation($arParams["USER_ID"], $arUserRequest["FIRST_USER_ID"], "viewprofile", CSocNetUser::IsCurrentUserModuleAdmin());
if (intval($arParams["THUMBNAIL_LIST_SIZE"]) > 0)
{
if (intval($arUserRequest["FIRST_USER_PERSONAL_PHOTO"]) <= 0)
{
switch ($arUserRequest["FIRST_USER_PERSONAL_GENDER"])
{
case "M":
$suffix = "male";
break;
case "F":
$suffix = "female";
break;
default:
$suffix = "unknown";
}
$arUserRequest["FIRST_USER_PERSONAL_PHOTO"] = COption::GetOptionInt("socialnetwork", "default_user_picture_".$suffix, false, SITE_ID);
}
$arImage = CFile::ResizeImageGet(
$arUserRequest["FIRST_USER_PERSONAL_PHOTO"],
array("width" => $arParams["THUMBNAIL_LIST_SIZE"], "height" => $arParams["THUMBNAIL_LIST_SIZE"]),
BX_RESIZE_IMAGE_EXACT,
false
);
}
$arTmpUser = array(
"NAME" => $arUserRequest["FIRST_USER_NAME"],
"LAST_NAME" => $arUserRequest["FIRST_USER_LAST_NAME"],
"FIRST_NAME" => $arUserRequest["FIRST_USER_FIRST_NAME"],
"LOGIN" => $arUserRequest["FIRST_USER_LOGIN"],
);
$strNameFormatted = CUser::FormatName($arParams['NAME_TEMPLATE'], $arTmpUser, $bUseLogin);
$arEventTmp = array(
"EVENT_TYPE" => "INVITE_USER",
"ID" => $arUserRequest["ID"],
"USER_ID" => $arUserRequest["FIRST_USER_ID"],
"USER_NAME" => $arUserRequest["FIRST_USER_NAME"],
"USER_LAST_NAME" => $arUserRequest["FIRST_USER_LAST_NAME"],
"USER_FIRST_NAME" => $arUserRequest["FIRST_USER_FIRST_NAME"],
"USER_LOGIN" => $arUserRequest["FIRST_USER_LOGIN"],
"USER_NAME_FORMATTED" => $strNameFormatted,
"USER_PERSONAL_PHOTO" => $arUserRequest["FIRST_USER_PERSONAL_PHOTO"],
"USER_PERSONAL_PHOTO_IMG" => $arImage,
"USER_PROFILE_URL" => $pu,
"SHOW_PROFILE_LINK" => $canViewProfile,
"IS_ONLINE" => ($arUserRequest["FIRST_USER_IS_ONLINE"] == "Y"),
"DATE_UPDATE" => $arUserRequest["DATE_UPDATE"],
"MESSAGE" => $parser->convert(
$arUserRequest["~MESSAGE"],
false,
array(),
array(
"HTML" => "N",
"ANCHOR" => "Y",
"BIU" => "Y",
"IMG" => "Y",
"LIST" => "Y",
"QUOTE" => "Y",
"CODE" => "Y",
"FONT" => "Y",
"SMILES" => "Y",
"UPLOAD" => "N",
"NL2BR" => "N"
)
),
);
$arTmpResult["RequestsIn"][] = $arEventTmp;
}
/* Groups Incoming */
$arNavParams = array("nPageSize" => $arParams["ITEMS_COUNT"], "bDescPageNumbering" => false);
$dbRequests = CSocNetUserToGroup::GetList(
array("DATE_CREATE" => "ASC"),
array(
"ROLE" => SONET_ROLES_REQUEST,
"USER_ID" => $arParams["USER_ID"],
"!INITIATED_BY_USER_ID" => $arParams["USER_ID"]
),
false,
$arNavParams,
array("ID", "GROUP_ID", "USER_ID", "DATE_CREATE", "DATE_UPDATE", "MESSAGE", "INITIATED_BY_USER_ID", "INITIATED_BY_USER_NAME", "INITIATED_BY_USER_LAST_NAME", "INITIATED_BY_USER_SECOND_NAME", "INITIATED_BY_USER_LOGIN", "INITIATED_BY_USER_PHOTO", "INITIATED_BY_USER_GENDER")
);
if ($dbRequests)
{
while ($arRequest = $dbRequests->GetNext())
{
$gu = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arRequest["GROUP_ID"]));
$arGroup = CSocNetGroup::GetByID($arRequest["GROUP_ID"]);
$arImage = array();
if (intval($arParams["THUMBNAIL_LIST_SIZE"]) > 0)
{
if (intval($arGroup["IMAGE_ID"]) <= 0)
$arGroup["IMAGE_ID"] = COption::GetOptionInt("socialnetwork", "default_group_picture", false, SITE_ID);
$arImage = CFile::ResizeImageGet(
$arGroup["IMAGE_ID"],
array("width" => $arParams["THUMBNAIL_LIST_SIZE"], "height" => $arParams["THUMBNAIL_LIST_SIZE"]),
BX_RESIZE_IMAGE_EXACT,
false
);
}
$arEventTmp = array(
"EVENT_TYPE" => "INVITE_GROUP",
"ID" => $arRequest["ID"],
"USER_ID" => $arRequest["USER_ID"],
"GROUP_ID" => $arRequest["GROUP_ID"],
"GROUP_URL" => $gu,
"GROUP_NAME" => $arGroup["NAME"],
"GROUP_IMG" => $arImage,
"DATE_CREATE" => $arRequest["DATE_CREATE"],
"MESSAGE" => $parser->convert(
$arRequest["~MESSAGE"],
false,
array(),
array(
"HTML" => "N",
"ANCHOR" => "Y",
"BIU" => "Y",
"IMG" => "Y",
"LIST" => "Y",
"QUOTE" => "Y",
"CODE" => "Y",
"FONT" => "Y",
"SMILES" => "Y",
"UPLOAD" => "N",
"NL2BR" => "N"
)
),
);
$arTmpResult["RequestsIn"][] = $arEventTmp;
}
}
$rsRequestsIn = new CDBResult;
$rsRequestsIn->InitFromArray($arTmpResult["RequestsIn"]);
$rsRequestsIn->NavStart();
while($arRecord = $rsRequestsIn->GetNext())
$arResult["RequestsIn"]["List"][] = $arRecord;
$arResult["RequestsIn"]["NAV_STRING"] = $rsRequestsIn->GetPageNavStringEx($navComponentObject, GetMessage("SONET_URE_NAV"), "", false);
/********************* Outogoing Requests ***********************/
/* Friends Outgoing */
$arResult["RequestsOut"] = array();
$dbUserRequests = CSocNetUserRelations::GetList(
array("DATE_UPDATE" => "ASC"),
array(
"FIRST_USER_ID" => $arParams["USER_ID"],
"RELATION" => SONET_RELATIONS_REQUEST
),
false,
false,
array("ID", "FIRST_USER_ID", "SECOND_USER_ID", "MESSAGE", "SECOND_USER_NAME", "DATE_UPDATE", "SECOND_USER_LAST_NAME", "SECOND_USER_SECOND_NAME", "SECOND_USER_LOGIN", "SECOND_USER_PERSONAL_PHOTO", "SECOND_USER_PERSONAL_GENDER", "SECOND_USER_IS_ONLINE")
);
while ($arUserRequest = $dbUserRequests->GetNext())
{
$pu = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arUserRequest["SECOND_USER_ID"]));
$canViewProfile = CSocNetUserPerms::CanPerformOperation($arParams["USER_ID"], $arUserRequest["SECOND_USER_ID"], "viewprofile", CSocNetUser::IsCurrentUserModuleAdmin());
if (intval($arParams["THUMBNAIL_LIST_SIZE"]) > 0)
{
if (intval($arUserRequest["SECOND_USER_PERSONAL_PHOTO"]) <= 0)
{
switch ($arUserRequest["SECOND_USER_PERSONAL_GENDER"])
{
case "M":
$suffix = "male";
break;
case "F":
$suffix = "female";
break;
default:
$suffix = "unknown";
}
$arUserRequest["SECOND_USER_PERSONAL_PHOTO"] = COption::GetOptionInt("socialnetwork", "default_user_picture_".$suffix, false, SITE_ID);
}
$arImage = CFile::ResizeImageGet(
$arUserRequest["SECOND_USER_PERSONAL_PHOTO"],
array("width" => $arParams["THUMBNAIL_LIST_SIZE"], "height" => $arParams["THUMBNAIL_LIST_SIZE"]),
BX_RESIZE_IMAGE_EXACT,
false
);
}
$arTmpUser = array(
"NAME" => $arUserRequest["SECOND_USER_NAME"],
"LAST_NAME" => $arUserRequest["SECOND_USER_LAST_NAME"],
"SECOND_NAME" => $arUserRequest["SECOND_USER_SECOND_NAME"],
"LOGIN" => $arUserRequest["SECOND_USER_LOGIN"],
);
$strNameFormatted = CUser::FormatName($arParams['NAME_TEMPLATE'], $arTmpUser, $bUseLogin);
$arEventTmp = array(
"EVENT_TYPE" => "INVITE_USER",
"ID" => $arUserRequest["ID"],
"USER_ID" => $arUserRequest["SECOND_USER_ID"],
"USER_NAME" => $arUserRequest["SECOND_USER_NAME"],
"USER_LAST_NAME" => $arUserRequest["SECOND_USER_LAST_NAME"],
"USER_SECOND_NAME" => $arUserRequest["SECOND_USER_SECOND_NAME"],
"USER_LOGIN" => $arUserRequest["SECOND_USER_LOGIN"],
"USER_NAME_FORMATTED" => $strNameFormatted,
"USER_PERSONAL_PHOTO" => $arUserRequest["SECOND_USER_PERSONAL_PHOTO"],
"USER_PERSONAL_PHOTO_IMG" => $arImage,
"USER_PROFILE_URL" => $pu,
"SHOW_PROFILE_LINK" => $canViewProfile,
"IS_ONLINE" => ($arUserRequest["SECOND_USER_IS_ONLINE"] == "Y"),
"DATE_UPDATE" => $arUserRequest["DATE_UPDATE"],
"MESSAGE" => $parser->convert(
$arUserRequest["~MESSAGE"],
false,
array(),
array(
"HTML" => "N",
"ANCHOR" => "Y",
"BIU" => "Y",
"IMG" => "Y",
"LIST" => "Y",
"QUOTE" => "Y",
"CODE" => "Y",
"FONT" => "Y",
"SMILES" => "Y",
"UPLOAD" => "N",
"NL2BR" => "N"
)
),
);
$arTmpResult["RequestsOut"][] = $arEventTmp;
}
/* Groups Outgoing */
$dbRequests = CSocNetUserToGroup::GetList(
array("DATE_CREATE" => "ASC"),
array(
"ROLE" => SONET_ROLES_REQUEST,
"USER_ID" => $arParams["USER_ID"],
"INITIATED_BY_TYPE" => "U"
),
false,
$arNavParams,
array("ID", "GROUP_ID", "USER_ID", "DATE_CREATE", "DATE_UPDATE", "MESSAGE", "USER_NAME", "USER_LAST_NAME", "USER_SECOND_NAME", "USER_LOGIN", "USER_PERSONAL_PHOTO", "USER_PERSONAL_GENDER")
);
if ($dbRequests)
{
while ($arRequest = $dbRequests->GetNext())
{
$gu = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arRequest["GROUP_ID"]));
$arGroup = CSocNetGroup::GetByID($arRequest["GROUP_ID"]);
$arImage = array();
if (intval($arParams["THUMBNAIL_LIST_SIZE"]) > 0)
{
if (intval($arGroup["IMAGE_ID"]) <= 0)
$arGroup["IMAGE_ID"] = COption::GetOptionInt("socialnetwork", "default_group_picture", false, SITE_ID);
$arImage = CFile::ResizeImageGet(
$arGroup["IMAGE_ID"],
array("width" => $arParams["THUMBNAIL_LIST_SIZE"], "height" => $arParams["THUMBNAIL_LIST_SIZE"]),
BX_RESIZE_IMAGE_EXACT,
false
);
}
$arEventTmp = array(
"EVENT_TYPE" => "INVITE_GROUP",
"ID" => $arRequest["ID"],
"USER_ID" => $arRequest["USER_ID"],
"GROUP_ID" => $arRequest["GROUP_ID"],
"GROUP_URL" => $gu,
"GROUP_NAME" => $arGroup["NAME"],
"GROUP_IMG" => $arImage,
"DATE_CREATE" => $arRequest["DATE_CREATE"],
"MESSAGE" => $parser->convert(
$arRequest["~MESSAGE"],
false,
array(),
array(
"HTML" => "N",
"ANCHOR" => "Y",
"BIU" => "Y",
"IMG" => "Y",
"LIST" => "Y",
"QUOTE" => "Y",
"CODE" => "Y",
"FONT" => "Y",
"SMILES" => "Y",
"UPLOAD" => "N",
"NL2BR" => "N"
)
),
);
$arTmpResult["RequestsOut"][] = $arEventTmp;
}
}
$rsRequestsOut = new CDBResult;
$rsRequestsOut->InitFromArray($arTmpResult["RequestsOut"]);
$rsRequestsOut->NavStart();
while($arRecord = $rsRequestsOut->GetNext())
$arResult["RequestsOut"]["List"][] = $arRecord;
$arResult["RequestsOut"]["NAV_STRING"] = $rsRequestsOut->GetPageNavStringEx($navComponentObject, GetMessage("SONET_URE_NAV"), "", false);
}
else
$arResult["FatalError"] = GetMessage("SONET_URE_NO_PERMS");
}
else
$arResult["FatalError"] = GetMessage("SONET_URE_NO_USER");
$arResult["InfoMessage"] = $infoMessage;
$arResult["ErrorMessage"] = $errorMessage;
}
$this->IncludeComponentTemplate();
?>