コード例 #1
0
ファイル: im.ajax.php プロジェクト: k-kalashnikov/geekcon_new
     }
 }
 $bOpenMessenger = isset($_POST['OPEN_MESSENGER']) && intval($_POST['OPEN_MESSENGER']) == 1 ? true : false;
 $bOpenContactList = isset($_POST['OPEN_CONTACT_LIST']) && intval($_POST['OPEN_CONTACT_LIST']) == 1 ? true : false;
 // Online
 $arOnline = array();
 if ($bOpenMessenger || $bOpenContactList) {
     $CIMContactList = new CIMContactList();
     $arOnline = $CIMContactList->GetStatus();
 }
 // Counters
 $arResult["COUNTERS"] = CUserCounter::GetValues($USER->GetID(), $_POST['SITE_ID']);
 // Exchange
 $arResult["MAIL_COUNTER"] = 0;
 if (CModule::IncludeModule("dav")) {
     $ar = CDavExchangeMail::GetTicker($GLOBALS["USER"]);
     if ($ar !== null) {
         $arResult["MAIL_COUNTER"] = intval($ar["numberOfUnreadMessages"]);
     }
 }
 $arSend = array('REVISION' => IM_REVISION, 'USER_ID' => $USER->GetId(), 'ONLINE' => !empty($arOnline) ? $arOnline['users'] : array(), 'COUNTERS' => $arResult["COUNTERS"], 'MAIL_COUNTER' => $arResult["MAIL_COUNTER"], 'SERVER_TIME' => time(), 'ERROR' => "");
 if (CModule::IncludeModule('pull')) {
     $arChannel = CPullChannel::Get($USER->GetId());
     if (is_array($arChannel)) {
         $arSend['PULL_CONFIG'] = array('CHANNEL_ID' => $arChannel['CHANNEL_ID'], 'LAST_ID' => $arChannel['LAST_ID'], 'PATH' => $arChannel['PATH'], 'PATH_WS' => $arChannel['PATH_WS'], 'METHOD' => $arChannel['METHOD'], 'ERROR' => '');
     }
 }
 $CIMMessage = new CIMMessage();
 $arMessage = $CIMMessage->GetUnreadMessage(array('USE_TIME_ZONE' => 'N', 'ORDER' => 'ASC'));
 if ($arMessage['result']) {
     CIMMessage::GetFlashMessage($arMessage['unreadMessage']);
コード例 #2
0
ファイル: exchangemail.php プロジェクト: DarneoStudio/bitrix
 public static function DataSync($paramUserId = 0)
 {
     $exchangeScheme = COption::GetOptionString("dav", "exchange_scheme", "http");
     $exchangeServer = COption::GetOptionString("dav", "exchange_server", "");
     $exchangePort = COption::GetOptionString("dav", "exchange_port", "80");
     $exchangeUsername = COption::GetOptionString("dav", "exchange_username", "");
     $exchangePassword = COption::GetOptionString("dav", "exchange_password", "");
     if (empty($exchangeServer)) {
         CAgent::RemoveAgent("CDavExchangeMail::DataSync();", "dav");
         COption::SetOptionString("dav", "agent_mail", "N");
         return "";
     }
     $exchange = new CDavExchangeMail($exchangeScheme, $exchangeServer, $exchangePort, $exchangeUsername, $exchangePassword);
     //$exchange->Debug();
     $exchangeMailbox = COption::GetOptionString("dav", "exchange_mailbox", "");
     $exchangeUseLogin = COption::GetOptionString("dav", "exchange_use_login", "Y");
     self::InitUserEntity();
     $maxNumber = 5;
     $index = 0;
     $paramUserId = intval($paramUserId);
     $arUserFilter = array("ACTIVE" => "Y", "!UF_DEPARTMENT" => false);
     if ($paramUserId > 0) {
         $arUserFilter["ID_EQUAL_EXACT"] = $paramUserId;
     }
     if ($exchangeUseLogin == "N") {
         $arUserFilter["!UF_BXDAVEX_MAILBOX"] = false;
     }
     $dbUserList = CUser::GetList($by = "UF_BXDAVEX_MLSYNC", $order = "asc", $arUserFilter, array('SELECT' => array('UF_BXDAVEX_MAILBOX', 'UF_BXDAVEX_MLSYNC'), 'FIELDS' => array('ID', 'LOGIN')));
     while ($arUser = $dbUserList->Fetch()) {
         $index++;
         if ($index > $maxNumber) {
             break;
         }
         $GLOBALS["USER_FIELD_MANAGER"]->Update("USER", $arUser["ID"], array("UF_BXDAVEX_MLSYNC" => ConvertTimeStamp(time(), FULL)));
         $mailbox = $exchangeUseLogin == "Y" ? $arUser["LOGIN"] . $exchangeMailbox : $arUser["UF_BXDAVEX_MAILBOX"];
         if (empty($mailbox)) {
             continue;
         }
         $numberOfUnread = 0;
         $arInbox = $exchange->GetFolderById(array("XML_ID" => "inbox", "Mailbox" => $mailbox));
         if (is_array($arInbox)) {
             foreach ($arInbox as $inbox) {
                 if (isset($inbox["UNREAD_COUNT"])) {
                     $numberOfUnread += intval($inbox["UNREAD_COUNT"]);
                 }
                 $arInbox1 = $exchange->GetFoldersList(array("XML_ID" => $inbox["XML_ID"], "Mailbox" => $mailbox));
                 if (is_array($arInbox1)) {
                     foreach ($arInbox1 as $inbox1) {
                         if (isset($inbox1["UNREAD_COUNT"])) {
                             $numberOfUnread += intval($inbox1["UNREAD_COUNT"]);
                         }
                     }
                 }
             }
         }
         $GLOBALS["USER_FIELD_MANAGER"]->Update("USER", $arUser["ID"], array("UF_UNREAD_MAIL_COUNT" => $numberOfUnread));
         CUserCounter::Set($arUser["ID"], 'dav_unread_mail', $numberOfUnread, '**');
     }
     return "CDavExchangeMail::DataSync();";
 }