$canViewProfile = CSocNetUserPerms::CanPerformOperation($GLOBALS["USER"]->GetID(), $arFriends[$pref . "_USER_ID"], "viewprofile", CSocNetUser::IsCurrentUserModuleAdmin()); if (intval($arParams["THUMBNAIL_LIST_SIZE"]) > 0) { if (intval($arFriends[$pref . "_USER_PERSONAL_PHOTO"]) <= 0) { switch ($arFriends[$pref . "_USER_PERSONAL_GENDER"]) { case "M": $suffix = "male"; break; case "F": $suffix = "female"; break; default: $suffix = "unknown"; } $arFriends[$pref . "_USER_PERSONAL_PHOTO"] = COption::GetOptionInt("socialnetwork", "default_user_picture_" . $suffix, false, SITE_ID); } $arImage = CSocNetTools::InitImage($arFriends[$pref . "_USER_PERSONAL_PHOTO"], $arParams["THUMBNAIL_LIST_SIZE"], "/bitrix/images/socialnetwork/nopic_30x30.gif", 30, $pu, $canViewProfile); } else { // old $arImage = CSocNetTools::InitImage($arFriends[$pref . "_USER_PERSONAL_PHOTO"], 150, "/bitrix/images/socialnetwork/nopic_user_150.gif", 150, $pu, $canViewProfile); } $arResult["Friends"]["List"][] = array("ID" => $arFriends["ID"], "USER_ID" => $arFriends[$pref . "_USER_ID"], "USER_NAME_FORMATED" => CSocNetUser::FormatNameEx($arFriends[$pref . "_USER_NAME"], $arFriends[$pref . "_USER_SECOND_NAME"], $arFriends[$pref . "_USER_LAST_NAME"], $arFriends[$pref . "_USER_LOGIN"], $bIntranet ? $arFriends[$pref . "_USER_EMAIL"] : "", $arFriends[$pref . "_USER_ID"]), "USER_NAME" => $arFriends[$pref . "_USER_NAME"], "USER_LAST_NAME" => $arFriends[$pref . "_USER_LAST_NAME"], "USER_SECOND_NAME" => $arFriends[$pref . "_USER_SECOND_NAME"], "USER_LOGIN" => $arFriends[$pref . "_USER_LOGIN"], "USER_PERSONAL_PHOTO" => $arFriends[$pref . "_USER_PERSONAL_PHOTO"], "USER_PERSONAL_PHOTO_FILE" => $arImage["FILE"], "USER_PERSONAL_PHOTO_IMG" => $arImage["IMG"], "USER_PROFILE_URL" => $pu, "SHOW_PROFILE_LINK" => $canViewProfile, "IS_ONLINE" => $arFriends[$pref . "_USER_IS_ONLINE"] == "Y"); } } } } } } } $arResult["bIntranet"] = $bIntranet; } $this->IncludeComponentTemplate();
/** * <p>Метод ищет пользователя по его имени или коду.</p> * * * * * @param string $user Имя или код пользователя. Если параметр является числом или * строкой, в которой содержится число в квадратных скобках, то это * число рассматривается как код пользователя. В противном случае * параметр рассматривается как строка, содержащая ФИО * пользователя. * * * * @param bool $bIntranet = false Флаг, определяющий, осуществляется ли работа в рамках решения * интранет. Необязательный параметр. По умолчанию равен false. * * * * @return array <p>Массив пользователей, удовлетворяющих условию поиска.</p> <br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/socialnetwork/classes/CSocNetUser/searchuser.php * @author Bitrix */ public static function SearchUser($user, $bIntranet = false) { $user = Trim($user); if (StrLen($user) <= 0) { return false; } $userID = 0; if ($user . "|" == IntVal($user) . "|") { $userID = IntVal($user); } if ($userID <= 0) { $arMatches = array(); if (preg_match("#\\[(\\d+)\\]#i", $user, $arMatches)) { $userID = IntVal($arMatches[1]); } } $dbUsers = false; if ($userID > 0) { $arFilter = array("ID_EQUAL_EXACT" => $userID); $dbUsers = CUser::GetList($by = "LAST_NAME", $order = "asc", $arFilter, array("NAV_PARAMS" => false)); } else { $email = ""; $arMatches = array(); if (preg_match("#<(.+?)>#i", $user, $arMatches)) { if (check_email($arMatches[1])) { $email = $arMatches[1]; $user = Trim(Str_Replace("<" . $email . ">", "", $user)); } } $arUser = array(); $arUserTmp = Explode(" ", $user); foreach ($arUserTmp as $s) { $s = Trim($s); if (StrLen($s) > 0) { $arUser[] = $s; } } if (count($arUser) <= 0 && strlen($email) > 0) { $arFilter = array("ACTIVE" => "Y", "EMAIL" => $email); $dbUsers = CUser::GetList($by = "id", $order = "asc", $arFilter); } else { $dbUsers = CUser::SearchUserByName($arUser, $email); } } if ($dbUsers) { $arResult = array(); while ($arUsers = $dbUsers->GetNext()) { $arResult[$arUsers["ID"]] = CSocNetUser::FormatNameEx($arUsers["NAME"], $arUsers["SECOND_NAME"], $arUsers["LAST_NAME"], $arUsers["LOGIN"], $bIntranet ? $arUsers["EMAIL"] : "", $arUsers["ID"]); } return $arResult; } return false; }
function __ShowUserField($name, $value, $form_name) { ?> <input type="radio" name="USER_TYPE_<?php echo $name; ?> " id="ID_USER_TYPE_NONE_<?php echo $name; ?> "<?php echo StrLen($value) <= 0 ? " checked" : ""; ?> value="none"> <label for="ID_USER_TYPE_NONE_<?php echo $name; ?> "><?php echo GetMessage("INTVT_NOT_SET"); ?> </label><br /> <input type="radio" name="USER_TYPE_<?php echo $name; ?> " id="ID_USER_TYPE_CURRENT_<?php echo $name; ?> "<?php echo $value == "current" ? " checked" : ""; ?> value="current"> <label for="ID_USER_TYPE_CURRENT_<?php echo $name; ?> "><?php echo GetMessage("INTVT_CUR_USER"); ?> </label><br /> <input type="radio" name="USER_TYPE_<?php echo $name; ?> " id="ID_USER_TYPE_SELECTED_<?php echo $name; ?> "<?php echo StrLen($value) > 0 && $value != "current" ? " checked" : ""; ?> value="selected"> <label for="ID_USER_TYPE_SELECTED_<?php echo $name; ?> "><?php echo GetMessage("INTVT_THIS_USER"); ?> </label><br /><br /> <?php $val = ""; if (StrLen($value) > 0 && $value != "current") { $dbUser = CUser::GetByID($value); $arUser = $dbUser->Fetch(); $val = CSocNetUser::FormatNameEx($arUser["NAME"], $arUser["SECOND_NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"], $arUser["EMAIL"], $arUser["ID"]); } if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite()) { $bExtranet = true; } elseif (CModule::IncludeModule('extranet')) { $bIntranet = true; } $GLOBALS["APPLICATION"]->IncludeComponent("bitrix:socialnetwork.user_search_input", ".default", array("TEXT" => "style='width:98%'", "NAME" => $name, "FUNCTION" => "", "EXTRANET" => $bExtranet ? "E" : ($bIntranet ? "I" : ""), "VALUE" => htmlspecialcharsback($val)), null, array('HIDE_ICONS' => 'Y')); }