Example #1
0
 public static function GetSendMode($userId)
 {
     $result = self::SEND_IMMEDIATELY;
     $isMobile = false;
     if (CModule::IncludeModule('mobile')) {
         $isMobile = Bitrix\Mobile\User::checkOnline($userId);
     }
     $isDesktop = false;
     $isDesktopIdle = false;
     if (CModule::IncludeModule('im')) {
         $arOnline = CIMStatus::GetList(array('ID' => $userId, 'SKIP_CHECK' => 'Y'));
         $isOnline = isset($arOnline['users'][$userId]) && $arOnline['users'][$userId]['status'] != 'offline';
         $isDesktop = CIMMessenger::CheckDesktopStatusOnline($userId);
         if ($isDesktop && intval($arOnline['users'][$userId]['idle']) > 0) {
             $isDesktopIdle = true;
         }
     } else {
         $isOnline = CUser::IsOnLine($userId, 120);
     }
     if ($isMobile) {
         $result = self::SEND_IMMEDIATELY;
     } else {
         if ($isOnline) {
             $result = self::SEND_DEFERRED;
             if ($isDesktop) {
                 $result = self::SEND_SKIP;
                 if ($isDesktopIdle) {
                     $result = self::SEND_IMMEDIATELY;
                 }
             }
         }
     }
     return $result;
 }
Example #2
0
 public function AddQueue($arParams)
 {
     global $DB;
     if (isset($arParams['USER_ID']) && intval($arParams['USER_ID']) > 0) {
         $arFields['USER_ID'] = intval($arParams['USER_ID']);
     } else {
         return false;
     }
     if (isset($arParams['MESSAGE']) && strlen(trim($arParams['MESSAGE'])) > 0) {
         $arFields['MESSAGE'] = str_replace(array("\r\n", "\n\r", "\n", "\r"), " ", trim($arParams['MESSAGE']));
         if (strlen($arFields['MESSAGE']) > 110) {
             $arFields['MESSAGE'] = substr($arFields['MESSAGE'], 0, 105) . ' ...';
         }
     } else {
         return false;
     }
     $arFields['TAG'] = '';
     if (isset($arParams['TAG']) && strlen(trim($arParams['TAG'])) > 0 && strlen(trim($arParams['TAG'])) <= 255) {
         $arFields['TAG'] = trim($arParams['TAG']);
     }
     $arFields['PARAMS'] = '';
     if (isset($arParams['PARAMS']) && strlen(trim($arParams['PARAMS'])) > 0) {
         $arFields['PARAMS'] = $arParams['PARAMS'];
     }
     if ((IsModuleInstalled('im') || IsModuleInstalled('socialnetwork')) && !CUser::IsOnLine($arFields['USER_ID'], 120)) {
         $arAdd = array('USER_ID' => $arFields['USER_ID'], 'MESSAGE' => $arFields['MESSAGE'], 'PARAMS' => $arFields['PARAMS']);
         $CPushManager = new CPushManager();
         $CPushManager->SendMessage(array($arAdd), defined('PULL_PUSH_SANDBOX') ? true : false);
     } else {
         $arAdd = array('USER_ID' => $arFields['USER_ID'], 'MESSAGE' => $arFields['MESSAGE'], 'TAG' => $arFields['TAG'], 'PARAMS' => $arFields['PARAMS'], '~DATE_CREATE' => $DB->CurrentTimeFunction());
         $DB->Add("b_pull_push_queue", $arAdd, array("PARAMS"));
         CAgent::AddAgent("CPushManager::SendAgent();", "pull", "N", 30, "", "Y", ConvertTimeStamp(time() + CTimeZone::GetOffset() + 30, "FULL"));
     }
     return true;
 }
Example #3
0
        echo $COMMENT['ID'];
        ?>
">	
					<?php 
        if ($COMMENT['USER']['PERSONAL_PHOTO'] != "") {
            $file = CFile::ResizeImageGet($COMMENT['USER']['PERSONAL_PHOTO'], array('width' => 50, 'height' => 50), BX_RESIZE_IMAGE_EXACT, true);
        } else {
            $file["src"] = "/images/user_photo.png";
        }
        ?>
					<div class="gallery_comm_item_avatar" style="background-image: url('<?php 
        echo $file["src"];
        ?>
');">
						<div <?php 
        if (CUser::IsOnLine($COMMENT['USER']["ID"], 12000)) {
            echo 'class="gallery_comm_item_avatar_online"';
        }
        ?>
></div>
					</div>
					<?php 
        $username = $COMMENT['USER']['NAME'] != "" ? $COMMENT['USER']['NAME'] . ' ' . $COMMENT['USER']['LAST_NAME'] : $COMMENT['USER']['LOGIN'];
        ?>
					<div class="gallery_comm_item_info">
						<div class="gallery_comm_item_date"><?php 
        echo $COMMENT['DATE_CREATE'];
        ?>
</div>
						<div class="gallery_comm_item_name">
							<?php 
Example #4
0
 public function AddQueue($arParams)
 {
     if (!CPullOptions::GetPushStatus()) {
         return false;
     }
     global $DB;
     if (isset($arParams['USER_ID']) && intval($arParams['USER_ID']) > 0) {
         $arFields['USER_ID'] = intval($arParams['USER_ID']);
     } else {
         return false;
     }
     if (isset($arParams['MESSAGE']) && strlen(trim($arParams['MESSAGE'])) > 0) {
         $arFields['MESSAGE'] = str_replace(array("\r\n", "\n\r", "\n", "\r"), " ", trim($arParams['MESSAGE']));
         if (strlen($arFields['MESSAGE']) > 110) {
             $arFields['MESSAGE'] = substr($arFields['MESSAGE'], 0, 105) . ' ...';
         }
     }
     $arFields['TAG'] = '';
     if (isset($arParams['TAG']) && strlen(trim($arParams['TAG'])) > 0 && strlen(trim($arParams['TAG'])) <= 255) {
         $arFields['TAG'] = trim($arParams['TAG']);
     }
     $arFields['SUB_TAG'] = '';
     if (isset($arParams['SUB_TAG']) && strlen(trim($arParams['SUB_TAG'])) > 0 && strlen(trim($arParams['SUB_TAG'])) <= 255) {
         $arFields['SUB_TAG'] = trim($arParams['SUB_TAG']);
     }
     $arFields['BADGE'] = -1;
     if (isset($arParams['BADGE']) && $arParams['BADGE'] != '' && intval($arParams['BADGE']) >= 0) {
         $arFields['BADGE'] = intval($arParams['BADGE']);
     }
     $arFields['PARAMS'] = '';
     if (isset($arParams['PARAMS']) && strlen(trim($arParams['PARAMS'])) > 0) {
         $arFields['PARAMS'] = $arParams['PARAMS'];
     }
     if (strlen($arParams['SOUND']) > 0) {
         $arFields['SOUND'] = $arParams['SOUND'];
     }
     $arFields['APP_ID'] = strlen($arParams['APP_ID']) > 0 ? $arParams['APP_ID'] : "Bitrix24";
     if (isset($arParams['SEND_IMMEDIATELY']) && $arParams['SEND_IMMEDIATELY'] == 'Y' || !CUser::IsOnLine($arFields['USER_ID'], 120)) {
         $arAdd = array('USER_ID' => $arFields['USER_ID']);
         if (strlen($arFields['MESSAGE']) > 0) {
             $arAdd['MESSAGE'] = $arFields['MESSAGE'];
         }
         if (strlen($arFields['PARAMS']) > 0) {
             $arAdd['PARAMS'] = $arFields['PARAMS'];
         }
         if (intval($arFields['BADGE']) >= 0) {
             $arAdd['BADGE'] = $arFields['BADGE'];
         }
         if (strlen($arFields['SOUND']) > 0) {
             $arAdd['SOUND'] = $arFields['SOUND'];
         }
         if (strlen($arParams['EXPIRY']) > 0) {
             $arAdd['EXPIRY'] = $arParams['EXPIRY'];
         }
         $arAdd['APP_ID'] = $arFields['APP_ID'];
         $CPushManager = new CPushManager();
         $CPushManager->SendMessage(array($arAdd));
     } else {
         $arAdd = array('USER_ID' => $arFields['USER_ID'], 'TAG' => $arFields['TAG'], 'SUB_TAG' => $arFields['SUB_TAG'], '~DATE_CREATE' => $DB->CurrentTimeFunction());
         if (strlen($arFields['MESSAGE']) > 0) {
             $arAdd['MESSAGE'] = $arFields['MESSAGE'];
         }
         if (strlen($arFields['PARAMS']) > 0) {
             $arAdd['PARAMS'] = $arFields['PARAMS'];
         }
         if (intval($arFields['BADGE']) >= 0) {
             $arAdd['BADGE'] = $arFields['BADGE'];
         }
         $arAdd['APP_ID'] = $arFields['APP_ID'];
         $DB->Add("b_pull_push_queue", $arAdd, array("PARAMS"));
         CAgent::AddAgent("CPushManager::SendAgent();", "pull", "N", 30, "", "Y", ConvertTimeStamp(time() + CTimeZone::GetOffset() + 30, "FULL"));
     }
     return true;
 }
Example #5
0
 /**
  * <p>Метод проверяет, находится ли сейчас пользователь на сайте. Пользователь находится на сайте, если он совершал на сайте какие-либо действия за последние 2 минуты.</p>
  *
  *
  *
  *
  * @param int $userID  Код пользователя. </h
  *
  *
  *
  * @return bool <p>True, если пользователь сейчас на сайте. Иначе - false.</p> <br><br>
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/socialnetwork/classes/CSocNetUser/IsOnLine.php
  * @author Bitrix
  */
 public static function IsOnLine($userID)
 {
     $userID = IntVal($userID);
     if ($userID <= 0) {
         return false;
     }
     return CUser::IsOnLine($userID, 120);
 }
Example #6
0
	function IsOnLine($userID)
	{
		$userID = IntVal($userID);
		if ($userID <= 0)
			return false;

		return CUser::IsOnLine($userID, 120);
	}