コード例 #1
0
ファイル: contact.php プロジェクト: DarneoStudio/bitrix
 protected static function processContacts($owner, array $contactsList)
 {
     $existedContacts = array();
     $dbRes = ContactTable::getList(array('filter' => array('=USER_ID' => $owner["USER_ID"]), 'select' => array('ID', 'CONTACT_XML_ID')));
     while ($existedContact = $dbRes->fetch()) {
         $existedContacts[$existedContact['CONTACT_XML_ID']] = $existedContact['ID'];
     }
     foreach ($contactsList as $contact) {
         $contactFields = array("USER_ID" => $owner["USER_ID"], "CONTACT_XML_ID" => $contact["CONTACT_ID"], "CONTACT_NAME" => $contact["NAME"], "CONTACT_LAST_NAME" => $contact["LAST_NAME"], "CONTACT_PHOTO" => $contact["PHOTO"], "NOTIFY" => $contact["NOTIFY"]);
         $contactId = false;
         if (isset($existedContacts[$contactFields["CONTACT_XML_ID"]])) {
             $contactId = $existedContacts[$contactFields["CONTACT_XML_ID"]];
             $result = static::update($contactId, $contactFields);
             if (!$result->isSuccess()) {
                 AddMessage2Log($result->getErrorMessages());
             }
         } else {
             $result = static::add($contactFields);
             if ($result->isSuccess()) {
                 $contactId = $result->getId();
             }
         }
         if ($contactId > 0 && isset($contact["profile"]) && count($contact["profile"]) > 0) {
             if (isset($existedContacts[$contactFields["CONTACT_XML_ID"]])) {
                 ContactConnectTable::deleteByContact($contactId);
             }
             foreach ($contact["profile"] as $profile) {
                 $connectFields = array('CONTACT_ID' => $contactId, 'CONTACT_PROFILE_ID' => $profile['PROFILE_ID'], 'CONTACT_PORTAL' => $profile['PORTAL'], 'CONNECT_TYPE' => $profile['TYPE']);
                 $r = ContactConnectTable::add($connectFields);
                 if ($r->isSuccess()) {
                     if (!isset($contactFields["CONNECT"])) {
                         $contactFields["CONNECT"] = array($connectFields);
                     } else {
                         $contactFields["CONNECT"][] = $connectFields;
                     }
                 }
             }
             if (!isset($existedContacts[$contactFields["CONTACT_XML_ID"]])) {
                 static::notifyJoin($contactId, $contactFields);
             }
         }
     }
     static::notifyJoinFinish($owner["USER_ID"]);
 }