public static function OnBeforeSocNetLogRightsAdd($logID, $groupCode) { if (!CModule::IncludeModule('socialnetwork')) { return; } $logID = intval($logID); $groupCode = strval($groupCode); if ($logID <= 0 || $groupCode === '') { return; } $dbResult = CSocNetLog::GetList(array(), array('ID' => $logID), false, false, array('ID', 'ENTITY_TYPE', 'ENTITY_ID', 'EVENT_ID')); $fields = is_object($dbResult) ? $dbResult->Fetch() : null; if (!is_array($fields)) { return; } $logEntityType = isset($fields['ENTITY_TYPE']) ? $fields['ENTITY_TYPE'] : ''; $logEntityID = isset($fields['ENTITY_ID']) ? intval($fields['ENTITY_ID']) : 0; $logEventID = isset($fields['EVENT_ID']) ? $fields['EVENT_ID'] : ''; if (!CCrmLiveFeedEntity::IsDefined($logEntityType)) { return; } $relations = array(); $groupCodeData = array(); if (!self::TryParseGroupCode($groupCode, $groupCodeData)) { return; } $entityType = $groupCodeData['ENTITY_TYPE']; $entityID = $groupCodeData['ENTITY_ID']; if (!CCrmLiveFeedEntity::IsDefined($entityType) || $entityID <= 0 || $entityType === $logEntityType && $entityID === $logEntityID) { return; } $relations[] = array('ENTITY_TYPE_ID' => CCrmLiveFeedEntity::ResolveEntityTypeID($entityType), 'ENTITY_ID' => $entityID); CCrmSonetRelation::RegisterRelation($logID, $logEventID, CCrmLiveFeedEntity::ResolveEntityTypeID($entityType), $logEntityID, CCrmLiveFeedEntity::ResolveEntityTypeID($entityType), $entityID, CCrmSonetRelationType::Correspondence); }