示例#1
0
 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);
 }