%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/11976/task/11976/root/home/bitrix/www/local/php_interface/include/
Upload File :
Create Path :
Current File : //proc/11976/task/11976/root/home/bitrix/www/local/php_interface/include/parse_push.php

<?
require_once dirname(__DIR__).'/include/parse-php-sdk-master/autoload.php';	

use Parse\ParseInstallation;
use Parse\ParsePush;
use Parse\ParseClient;

class NotifyPusher
{

  public static function setUp()
  {
	  /*
		ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    // */

    ParseClient::initialize(
      'qm4k9D3nakNrnOEAUs697M9hXHx0tMv8hQVFPimr',
      'mqLsbsPI923Z1Yz7PNbBeJzmWmPszRJlsYHtXXTj'
    );
  }

	static function sendNewCasting($country=0)
	{
		self::sendToAll(
			[
				'ru' => 'Для Вас добавлен новый кастинг',
				'en' => 'Here’s a new casting just for you!',
			],
			intval($country) > 0 ? array('PROPERTY_COUNTRY'=>$country) : array()
		);
	}

	static function sendToAll($arMessage, $arProfileFilter = array())
	{
		$arResult = array();
		$bProfileFilter = count($arProfileFilter)>0;
		
		if ($bProfileFilter) $arProfileFilter = array_merge($arProfileFilter, array('IBLOCK_ID'=> IBLOCK_PROFILE_ID,'ACTIVE'=>'Y'));
		
		$rsUsers = CUser::GetList(
			($by="id"),($order="asc"),
			array('!UF_TOKEN'=>false,'!UF_LANG'=>false),
			array('SELECT'=>array('UF_TOKEN','UF_LANG'))
		);
		
		while($arUser = $rsUsers->Fetch())
		{
			if ($bProfileFilter)
			{
				$arProfileFilter['PROPERTY_ACCOUNT'] = $arUser['ID'];
				$dbProfile = CIBlockElement::GetList(array(), $arProfileFilter, false, false, array('ID','IBLOCK_ID'));
				if ($arProfile = $dbProfile->Fetch())
				{
					if (isset($arMessage[$arUser['UF_LANG']])) $arResult[$arUser['UF_LANG']][] = $arUser['UF_TOKEN'];
				}
			}
		}

		if (count($arResult)>0)
		{
			self::setUp();
						
			foreach($arResult as $lang=>$arDeviceToken)
			{
				self::send($arMessage[$lang],$arDeviceToken);
			}
		}

	}

	static function send($message,$arDeviceToken)
	{
    $query = ParseInstallation::query();
    $query->containedIn('deviceToken', $arDeviceToken);
    ParsePush::send(
      [
      'data' =>
	      [
	      	'alert' => $message,
					'badge' => 'Increment',
	        'sound' => 'default'
	      ],
			'where' => $query,
			]
    );
	}
	
}

?>

Zerion Mini Shell 1.0