Файл: system/connections/cheader/web_push.php
Строк: 52
<?php
if (user('ID') > 0) {
$url = 'https://onesignal.com/api/v1/notifications';
$APP_ID = config('WEB_PUSH_APP_ID');
$REST_API_KEY = config('WEB_PUSH_KEY');
$fields = null;
$wbp_data = db::get_string_all("SELECT * FROM `WEB_PUSH_LIST` LIMIT 10");
while ($wbp = $wbp_data->fetch()) {
$token_data = db::get_string_all("SELECT * FROM `WEB_PUSH_TOKEN` WHERE `USER_ID` = ? ORDER BY `ID` DESC LIMIT 3", [$wbp['USER_ID']]);
while ($token = $token_data->fetch()) {
/*
----------------
Личные сообщения
----------------
*/
if ($wbp['TYPE'] == 'message') {
$fields = array(
'app_id' => $APP_ID,
'target_channel' => 'push',
'include_subscription_ids' => [$token['TOKEN']],
'data' => array("foo" => "bar"),
'contents' => array("en" => 'от '.user::login_mini($wbp['MY_ID'])),
'headings' => array("en" => '+1 новое сообщение в почте'),
'large_icon' => '',
'url' => 'https://'.HTTP_HOST.'/account/mail/'
);
}
/*
---------------------
Уведомления с журнала
---------------------
*/
if ($wbp['TYPE'] == 'comments' || $wbp['TYPE'] == 'users' || $wbp['TYPE'] == 'user' || $wbp['TYPE'] == 'likes') {
$fields = array(
'app_id' => $APP_ID,
'target_channel' => 'push',
'include_subscription_ids' => [$token['TOKEN']],
'data' => array("foo" => "bar"),
'contents' => array("en" => 'от '.user::login_mini($wbp['MY_ID'])),
'headings' => array("en" => '+1 новое уведомление в журнале'),
'large_icon' => '',
'url' => 'https://'.HTTP_HOST.'/account/journal/'
);
}
$fields = json_encode($fields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Basic '.$REST_API_KEY.''));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$response = curl_exec($ch);
curl_close($ch);
}
db::get_set("DELETE FROM `WEB_PUSH_LIST` WHERE `ID` = ? LIMIT 1", [$wbp['ID']]);
}
}