public static function formatAttach($linkParam) { $attach = null; if ($linkParam['TYPE'] == UrlPreview\UrlMetadataTable::TYPE_STATIC) { if (intval($linkParam['IMAGE_ID']) > 0) { $image = CFile::ResizeImageGet($linkParam['IMAGE_ID'], array('width' => 450, 'height' => 120), BX_RESIZE_IMAGE_PROPORTIONAL, false, false, true); $linkParam['IMAGE_ID'] = empty($image['src']) ? '' : $image['src']; } else { if (strlen($linkParam['IMAGE']) > 0) { $linkParam['IMAGE_ID'] = $linkParam['IMAGE']; } else { $linkParam['IMAGE_ID'] = ''; } } $attach = new CIMMessageParamAttach($linkParam['ID'], CIMMessageParamAttach::CHAT); $attach->AddLink(array("NAME" => $linkParam['TITLE'], "DESC" => $linkParam['DESCRIPTION'], "LINK" => $linkParam['URL'], "PREVIEW" => $linkParam['IMAGE_ID'])); } else { if (false && $linkParam['TYPE'] == UrlPreview\UrlMetadataTable::TYPE_DYNAMIC) { $attach = new CIMMessageParamAttach($linkParam['ID'], CIMMessageParamAttach::CHAT); $attach->AddHtml($linkParam['HTML']); } } return $attach; }
protected static function notifyJoinFinish($userId) { if (count(static::$notifyStack) > 0 && Main\Loader::includeModule('im')) { $attach = new \CIMMessageParamAttach(null, \CIMMessageParamAttach::NORMAL); $count = 0; foreach (static::$notifyStack as $contactInfo) { if (++$count > static::NOTIFY_CONTACT_COUNT) { $attach->AddHtml('<a href="' . str_replace("#USER_ID#", $userId, Option::get("intranet", "path_user", "/company/persona/user/#USER_ID#/")) . '">' . Loc::getMessage("SS_JOIN_NOTIFY_MORE", array("#NUM#" => count(static::$notifyStack) - $count + 1)) . '</a>'); break; } else { $attachParams = array("NAME" => \CUser::FormatName(\CSite::GetNameFormat(), array("NAME" => $contactInfo["CONTACT_NAME"], "LAST_NAME" => $contactInfo["CONTACT_LAST_NAME"]), false, false)); if ($contactInfo["CONTACT_PHOTO"]) { $attachParams["AVATAR"] = $contactInfo["CONTACT_PHOTO"]; } $attachParams["NETWORK_ID"] = static::getConnectId($contactInfo["CONNECT"][0]); $attach->AddUser($attachParams); } } $messageFields = array("TO_USER_ID" => $userId, "FROM_USER_ID" => 0, "NOTIFY_TYPE" => IM_NOTIFY_SYSTEM, "NOTIFY_MODULE" => "socialservices", "NOTIFY_EVENT" => "multiple_contacts", "NOTIFY_MESSAGE" => Loc::getMessage("SS_JOIN_NOTIFY_MULTIPLE"), "NOTIFY_MESSAGE_OUT" => IM_MAIL_SKIP, "ATTACH" => array($attach)); \CIMNotify::Add($messageFields); static::$notifyStack = array(); } }