%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/main.user.link/templates/.default/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/main.user.link/templates/.default/card.php |
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $arFieldsSorted = array( "LOGIN", "NAME", "SECOND_NAME", "LAST_NAME", "WORK_POSITION", "UF_DEPARTMENT", "MANAGERS", "EMAIL", "LAST_LOGIN", "DATE_REGISTER", "PERSONAL_BIRTHDAY", "PERSONAL_GENDER", "PERSONAL_COUNTRY", "PERSONAL_STATE", "PERSONAL_ZIP", "PERSONAL_CITY", "PERSONAL_STREET", "PERSONAL_MAILBOX", "PERSONAL_PROFESSION", "PERSONAL_PHONE", "PERSONAL_FAX", "PERSONAL_MOBILE", "PERSONAL_WWW", "PERSONAL_ICQ", "PERSONAL_PAGER", "PERSONAL_NOTES", "WORK_COMPANY", "WORK_LOGO", "WORK_WWW", "WORK_PROFILE", "WORK_COUNTRY", "WORK_STATE", "WORK_ZIP", "WORK_CITY", "WORK_STREET", "WORK_MAILBOX", "WORK_DEPARTMENT", "WORK_PHONE", "WORK_FAX", "WORK_PAGER", "WORK_NOTES", ); $arUserOutFields = array(); // USER FIELDS if (count($arParams["SHOW_FIELDS"]) > 0) { foreach ($arFieldsSorted as $userFieldName) { if (in_array($userFieldName, $arParams["SHOW_FIELDS"])) { $val = $arResult["User"][$userFieldName]; switch ($userFieldName) { case 'LOGIN': case 'NAME': case 'LAST_NAME': case 'SECOND_NAME': case 'PERSONAL_PROFESSION': case 'PERSONAL_NOTES': case 'PERSONAL_PAGER': case 'PERSONAL_STATE': case 'PERSONAL_ZIP': case 'PERSONAL_CITY': case 'PERSONAL_STREET': case 'PERSONAL_MAILBOX': case 'WORK_COMPANY': case 'WORK_DEPARTMENT': case 'WORK_POSITION': case 'WORK_PROFILE': case 'WORK_NOTES': case 'WORK_PAGER': case 'WORK_STATE': case 'WORK_ZIP': case 'WORK_CITY': case 'WORK_STREET': case 'WORK_MAILBOX': if (strLen($val) > 0) { $val = htmlspecialcharsbx($val); } break; case 'LAST_LOGIN': case 'DATE_REGISTER': if (StrLen($val) > 0) $val = date($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($val, CSite::GetDateFormat("FULL"))); break; case 'EMAIL': if ($bIntranet && StrLen($val) > 0): $val = '<a href="mailto:'.htmlspecialcharsbx($val).'">'.htmlspecialcharsbx($val).'</a>'; else: $val = ''; endif; break; case 'PERSONAL_WWW': case 'WORK_WWW': if ($val == "http://") $val = ""; elseif (StrLen($val) > 0) { $val = htmlspecialcharsbx($val); $valLink = $val; if (StrToLower(SubStr($val, 0, StrLen("http://"))) != "http://") $valLink = "http://".$val; $val = '<a href="'.$valLink.'" target="_blank">'.$val.'</a>'; } break; case 'PERSONAL_COUNTRY': case 'WORK_COUNTRY': if (StrLen($val) > 0) $val = GetCountryByID($val); break; case 'PERSONAL_ICQ': if (StrLen($val) > 0) $val = htmlspecialcharsbx($val).'<!-- <img src="http://web.icq.com/whitepages/online?icq='.htmlspecialcharsbx($val).'&img=5" alt="" />-->'; break; case 'PERSONAL_PHONE': case 'PERSONAL_FAX': case 'PERSONAL_MOBILE': case 'WORK_PHONE': case 'WORK_FAX': if (StrLen($val) > 0) { $valEncoded = preg_replace('/[^\d\+]+/', '', htmlspecialcharsbx($val)); $val = '<a href="callto:'.$valEncoded.'">'.htmlspecialcharsbx($val).'</a>'; } break; case 'PERSONAL_GENDER': $val = (($val == 'F') ? GetMessage("MAIN_UL_SEX_F") : (($val == 'M') ? GetMessage("MAIN_UL_SEX_M") : "")); break; case 'PERSONAL_BIRTHDAY': if (StrLen($val) > 0) { $arDateTmp = ParseDateTime($val, CSite::GetDateFormat('SHORT')); $day = IntVal($arDateTmp["DD"]); $month = IntVal($arDateTmp["MM"]); $year = IntVal($arDateTmp["YYYY"]); $val = $day.' '.ToLower(GetMessage('MONTH_'.$month.'_S')); if (($arParams['SHOW_YEAR'] == 'Y') || ($arParams['SHOW_YEAR'] == 'M' && $arResult["User"]['PERSONAL_GENDER'] == 'M')) $val .= ' '.$year; $arResult['IS_BIRTHDAY'] = (intval($arDateTmp['MM']) == date('n') && intval($arDateTmp['DD']) == date('j')); } break; case 'WORK_LOGO': if (IntVal($val) > 0) { $iSize = 150; $imageFile = CFile::GetFileArray($val); if ($imageFile !== false) { $arFileTmp = CFile::ResizeImageGet( $imageFile, array("width" => $iSize, "height" => $iSize), BX_RESIZE_IMAGE_PROPORTIONAL, false ); $val = CFile::ShowImage($arFileTmp["src"], $iSize, $iSize, "border=0", ""); } } break; case 'MANAGERS': $sManagers = ''; if(is_array($val)) { foreach($val as $manager) { $sManagers .= ($sManagers <> ''? ', ':'').( $arResult["CurrentUser"] && !in_array($arResult["CurrentUser"]["EXTERNAL_AUTH_ID"], array('email')) ? '<a href="'.$manager["URL"].'">'.$manager["NAME_FORMATTED"].'</a>' : $manager["NAME_FORMATTED"] ); } } $val = $sManagers; break; default: $val = ""; break; } if($val <> '') { $arUserOutFields[$userFieldName] = array( "code" => $userFieldName, "name" => getMessage("MAIN_UL_".$userFieldName), "value" => $val ); } } } } // USER PROPERIES if (count($arParams["USER_PROPERTY"]) > 0) { $arUserFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("USER", $arResult["User"]["ID"], LANGUAGE_ID); foreach ($arUserFields as $fieldName => $arUserField) { if (in_array($fieldName, $arParams["USER_PROPERTY"])) { if ( $bIntranet && $arUserField["FIELD_NAME"] == "UF_DEPARTMENT" && strlen(trim($arParams["PATH_TO_CONPANY_DEPARTMENT"])) > 0 ) { $arUserField['SETTINGS']['SECTION_URL'] = trim($arParams["PATH_TO_CONPANY_DEPARTMENT"]); } if ( ( CModule::IncludeModule('extranet') && !CExtranet::IsIntranetUser() ) || ( $arResult["CurrentUser"] && in_array($arResult["CurrentUser"]["EXTERNAL_AUTH_ID"], array('email')) ) ) { $arUserField['SETTINGS']['SECTION_URL'] = false; } $arUserField["EDIT_FORM_LABEL"] = StrLen($arUserField["EDIT_FORM_LABEL"]) > 0 ? $arUserField["EDIT_FORM_LABEL"] : $arUserField["FIELD_NAME"]; $arUserField["EDIT_FORM_LABEL"] = htmlspecialcharsEx($arUserField["EDIT_FORM_LABEL"]); $arUserField["~EDIT_FORM_LABEL"] = $arUserField["EDIT_FORM_LABEL"]; $tmpVal = ""; if ( ( (is_array($arUserField["VALUE"]) && count($arUserField["VALUE"]) == 0) || (!is_array($arUserField["VALUE"]) && !$arUserField["VALUE"]) ) && $arUserField["USER_TYPE_ID"] != "boolean" ) { continue; } ob_start(); $APPLICATION->IncludeComponent( "bitrix:system.field.view", $arUserField["USER_TYPE_ID"], array("arUserField" => $arUserField), null, array("HIDE_ICONS"=>"Y") ); $tmpVal .= ob_get_contents(); ob_end_clean(); if($tmpVal <> '') { $arUserOutFields[$fieldName] = array( "code" => $fieldName, "name" => htmlspecialcharsEx( strLen($arUserField["EDIT_FORM_LABEL"]) > 0 ? $arUserField["EDIT_FORM_LABEL"] : $arUserField["FIELD_NAME"] ), "value" => $tmpVal ); } } } } if(!function_exists('__card_sort')) { function __card_sort($a, $b) { if(isset($a["sort"]) && !isset($b["sort"])) return -1; if(!isset($a["sort"]) && isset($b["sort"])) return 1; if($a["sort"] == $b["sort"]) return 0; return ($a["sort"] < $b["sort"]? -1 : 1); } } //sorting fields foreach($arFieldsSorted as $index=>$field) { if(isset($arUserOutFields[$field])) { $arUserOutFields[$field]["sort"] = $index; } } uasort($arUserOutFields, '__card_sort'); $strPosition = $strUserFields = ''; foreach($arUserOutFields as $field) { if ( $bIntranet && $arResult["VERSION"] >= 2 && $field['code'] == 'WORK_POSITION' ) { $strPosition = $field["value"]; } else { $strUserFields .= "<span class='field-row field-row-".htmlspecialcharsbx(strtolower($field["code"]))."'><span class='field-name'>".$field["name"]."</span>: <span class='field-value'>".$field["value"]."</span></span>".($arResult["VERSION"] < 2 ? "<br>" : "")."\n"; } } // RATING $strTmpUserRatings = ""; if (array_key_exists("USER_RATING", $arParams) && is_array($arParams["USER_RATING"]) && count($arParams["USER_RATING"]) > 0) { $tmpVal = ""; foreach ($arParams["USER_RATING"] as $rating_id) { ob_start(); $arRating = $APPLICATION->IncludeComponent( "bitrix:rating.result", "", Array( "RATING_ID" => $rating_id, "ENTITY_ID" => $arResult["User"]["ID"], "TEMPLATE_HIDE" => "Y", ), null, array("HIDE_ICONS"=>"Y") ); ob_end_clean(); if (is_array($arRating)) $strTmpUserRatings .= '<span class="field-name">'.htmlspecialcharsEx($arRating["RATING_NAME"]).'</span>: <span title="'.$arRating["RATING_NAME"].': '.$arRating["CURRENT_VALUE"].' ('.GetMessage("MAIN_UL_RATING_PROGRESS").' '.$arRating["PROGRESS_VALUE"].')">'.$arRating["ROUND_CURRENT_VALUE"].'</span><br>'; } } if (in_array("PERSONAL_PHOTO", $arParams["SHOW_FIELDS"])) { $iSize = $arParams["THUMBNAIL_DETAIL_SIZE"]; $imageFile = false; $imageImg = false; if (intval($arResult["User"]["PERSONAL_PHOTO"]) > 0) { $imageFile = CFile::GetFileArray($arResult["User"]["PERSONAL_PHOTO"]); if ($imageFile !== false) { $arFileTmp = CFile::ResizeImageGet( $imageFile, array("width" => $iSize, "height" => $iSize), ($arResult["VERSION"] >= 2 ? BX_RESIZE_IMAGE_EXACT : BX_RESIZE_IMAGE_PROPORTIONAL), false ); $arTmpUser["PERSONAL_PHOTO"] = CFile::ShowImage($arFileTmp["src"], $iSize, $iSize, "border=0", ""); } } else { switch ($arResult["User"]["PERSONAL_GENDER"]) { case "M": $suffix = "male"; break; case "F": $suffix = "female"; break; default: $suffix = "unknown"; } $tmpImageID = COption::GetOptionInt("socialnetwork", "default_user_picture_".$suffix, false, SITE_ID); $imageFile = CFile::GetFileArray($tmpImageID); if ($imageFile !== false) { $arFileTmp = CFile::ResizeImageGet( $imageFile, array("width" => $iSize, "height" => $iSize), BX_RESIZE_IMAGE_PROPORTIONAL, false ); $arTmpUser["PERSONAL_PHOTO"] = CFile::ShowImage($arFileTmp["src"], $iSize, $iSize, "border=0", ""); } } } if (array_key_exists("PERSONAL_PHOTO", $arTmpUser) && strlen($arTmpUser["PERSONAL_PHOTO"]) > 0) { $photoClass = $arResult["stylePrefix"]."-info-data-photo"; $strPhoto = $arTmpUser["PERSONAL_PHOTO"]; } else { $photoClass = $arResult["stylePrefix"]."-info-data-photo no-photo"; $strPhoto = ""; } if (IsModuleInstalled('extranet') || IsModuleInstalled('mail')) { if ( !is_array($arUserFields) || count($arUserFields) <= 0 ) { $arUserFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("USER", $arResult["User"]["ID"], LANGUAGE_ID); } $bExtranetUser = ( (is_array($arUserFields["UF_DEPARTMENT"]["VALUE"]) && count($arUserFields["UF_DEPARTMENT"]["VALUE"]) <= 0) || (!is_array($arUserFields["UF_DEPARTMENT"]["VALUE"]) && intval($arUserFields["UF_DEPARTMENT"]["VALUE"]) <= 0) ); $bEmailUser = ($arResult["User"]["EXTERNAL_AUTH_ID"] == 'email'); $bCrmEmailUser = !empty($arUserFields["UF_USER_CRM_ENTITY"]["VALUE"]); if ($bCrmEmailUser) { $strUserNameClass = " ".$arResult["stylePrefix"]."-info-emailcrm"; } elseif ($bEmailUser) { $strUserNameClass = " ".$arResult["stylePrefix"]."-info-email"; } elseif ($bExtranetUser) { $strUserNameClass = " ".$arResult["stylePrefix"]."-info-extranet"; } else { $strUserNameClass = ""; } } $strNameFormatted = CUser::FormatName($arParams['NAME_TEMPLATE'], $arTmpUser, $bUseLogin); $strPhoto = '<a href="'.$arTmpUser["DETAIL_URL"].'" class="'.$photoClass.'">'.$strPhoto.'</a>'; $data_cont_class = ($GLOBALS["USER"]->IsAuthorized() && $arResult["CurrentUserPerms"]["Operations"]["videocall"] ? $arResult["stylePrefix"]."-info-data-cont-video" : $arResult["stylePrefix"]."-info-data-cont"); $strCard = '<div class="'.$data_cont_class.'" id="bx_user_info_data_cont_'.$arTmpUser["ID"].'">'; if ($arResult["VERSION"] < 2) { $strCard .= '<div class="'.$arResult["stylePrefix"].'-info-data-name '.$strUserNameClass.'"><a href="'.($arResult["CurrentUser"] && !in_array($arResult["CurrentUser"]["EXTERNAL_AUTH_ID"], array('email')) ? $arTmpUser["DETAIL_URL"] : 'javascript:void(0);').'">'.$strNameFormatted.'</a></div>'; $strCard .= ($bExtranetUser ? '<div class="'.$arResult["stylePrefix"].'-info-extranet-description">'.GetMessage("MAIN_UL_EXTRANET_USER").'</div>' : ''); } else { if ($arResult["CurrentUser"] && !in_array($arResult["CurrentUser"]["EXTERNAL_AUTH_ID"], array('email'))) { $strNameFormatted = '<a href="'.$arTmpUser["DETAIL_URL"].'">'.$strNameFormatted.'</a>'; } if ($bExtranetUser) { $strPosition = GetMessage("MAIN_UL_EXTRANET_USER"); } } $strCard .= '<div class="'.$arResult["stylePrefix"].'-info-data-info">'.$strUserFields.$strTmpUserRatings.'</div>'; $strCard .= '</div>'; static $includedOnce = false; if (!$includedOnce) { $arScripts = array("BX.message({ MULSonetMessageChatTemplate: '".CUtil::JSEscape($arParams["~PATH_TO_SONET_MESSAGES_CHAT"])."', MULVideoCallTemplate: '".CUtil::JSEscape($arParams["~PATH_TO_VIDEO_CALL"])."' });"); } $includedOnce = true; ?>