query($sql); $user = $result->fetch_assoc(); $response=array( 'chat_id' => $user['telegram_id'], 'text' => $user['users_name']." ".$user['users_patronymic']."!\n\n".$message ); $ch = curl_init('https://api.telegram.org/bot'.TELEGRAM_TOKEN.'/sendMessage'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $response); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $res = curl_exec($ch); curl_close($ch); return $res; } function sendemailbyuserid($db, $userid, $subject,$message){ require_once ('phpmailer/PHPMailerAutoload.php'); $sql=$db->query("SELECT * FROM `users` WHERE users_id='".$userid."'"); $user = $sql->fetch_assoc(); $from = SMTP_FROM; // Почта отправителя $fromname = SMTP_FROM_NAME; // Почта отправителя $username = SMTP_USER; // Имя пользователя почты $password = SMTP_PASSWORD; // Пароль почты $mail = new PHPMailer; $mail->isSMTP(); $mail->Host = SMTP_HOST; $mail->SMTPAuth = true; $mail->Username = $username; $mail->Password = $password; $mail->SMTPSecure = 'ssl'; $mail->Port = SMTP_PORT; $mail->CharSet = 'UTF-8'; $mail->setFrom($from, $fromname); $mail->addAddress($user['email']); $mail->Subject = $subject; $filename ='/home/di-re/web/cmit.di-re.ru/public_html/static/templates/notify.html'; $text = file_get_contents($filename); $text=preg_replace("/{message}/", $message, $text); $text=preg_replace("/{name}/", $user['users_name'], $text); $text=preg_replace("/{lastname}/", $user['users_patronymic'], $text); $mail->msgHTML($text); $result = $mail->send(); return $result; } function createItemComment($db, $registerid, $itemid, $comment, $userid){ $sql="INSERT INTO `gl_comments` SET registerid='".$registerid."', itemid='".$itemid."', users_id='".$userid."', comment='".$comment."'"; $db->query($sql); #Отправка уведомлений $sql = $db->query("SELECT * FROM gl_rolesofresources WHERE reesterid='".$registerid."' AND itemid='".$itemid."'"); while ($item = $sql->fetch_assoc()){ $message="По заказу №".$itemid." оставлен новый комментарий.\n\nПодробности по ссылке: https://cmit.di-re.ru/super/orderitem.php?secret=".$item['secret']; sendTelegramByUserId($db, $item['userid'], $message); $subject="Новый комментарий по заказу №".$itemid; $message="По заказу №".$itemid." оставлен новый комментарий.\n\nПодробности по ссылке"; //sendemailbyuserid($db, $item['userid'], $subject, $message); } } function createUniversalJornalItem($db, $title, $description, $fdeadlinedatetime, $itemsubtypeid, $clientid, $contractprice, $materialprice, $cmitprice, $coexecutorprice, $executorid, $managerid, $files){ #require_once ('OneDriveScript.php'); #Вытаскиваем исполнителя по умолчанию и тип сущности if(isset($description)==false){ $description=" "; } #Вытаскиваем начальный статус $sql2="SELECT `gl_workflowstatus`.`id` as `initialstatus`, `gl_itemsubtype`.`title` AS `title`, `gl_itemsubtype`.`defaultexecutorid` AS `defaultexecutorid`, `gl_itemsubtype`.`defaultmanagerid` AS `defaultmanagerid` FROM `gl_itemsubtype` INNER JOIN `gl_workflowstatus` ON `gl_itemsubtype`.`workflowid`=`gl_workflowstatus`.`workflow_id` WHERE `gl_workflowstatus`.`order`=1 AND `gl_itemsubtype`.`id`='".$itemsubtypeid."'"; echo $sql2; $query = $db->query($sql2); $row = $query->fetch_assoc(); $initialstatus = $row['initialstatus']; $itemtypetitle = $row['title']; if(isset($executorid)==false){ $executorid=$row['defaultexecutorid']; } if(isset($managerid)==false){ $managerid=$row['defaultmanagerid']; } #Пишем заявку в базу данных $query="INSERT INTO `orders` SET `name`='".$title."', `comment`='".$description."', `status_new`='".$initialstatus."', `type`='внешний', `cmitprice`='".$cmitprice."', `clientid`='".$clientid."', `coexecutorprice`='".$coexecutorprice."', `materialprice`='".$materialprice."', `contractprice`='".$contractprice."', `deadline`='".$fdeadlinedatetime."', `curator`='0', `calcid`='0', `creator`='0', `crmlink`=''"; echo $query; $result=$db->query($query); #Вытаскиваем последний id в БД $query = $db->query("SELECT MAX(id) AS `maxid` FROM orders"); $row = $query->fetch_assoc(); $itemid = $row['maxid']; #(new OneDriveScript())->createorderFolder($itemid, $title); #Пишем создателя заявки $db->query("INSERT INTO gl_rolesofresources (reesterid, itemid, userid, role) VALUES (1,".$itemid.", ".$managerid.", 'manager')"); #Пишем исполнителей заявки $db->query("INSERT INTO gl_rolesofresources (reesterid, itemid, userid, role) VALUES (1,".$itemid.", ".$executorid.", 'executor')"); #Вычисляем секреты для доступов $db->query("CALL update_secret (".$itemid.", 1)"); #Отправка уведомлений $sql = $db->query("SELECT * FROM gl_rolesofresources WHERE reesterid=1 AND itemid='".$itemid."'"); while ($item = $sql->fetch_assoc()){ if($item['role']=='executor'){ $message="Вы назначены исполнителем по новому заказу №".$itemid."\nТип заказа: ".$itemtypetitle."\n\nОписание: ".$description."\n\nПодробности по ссылке: https://cmit.di-re.ru/super/orderitem.php?secret=".$item['secret']; sendTelegramByUserId($db, $item['userid'], $message); $subject="Новый запрос"; #sendemailbyuserid($db, $item['userid'], $subject, $message); } else if($item['role']=='manager') { $message="Вы назначены менеджером по новому заказу №".$itemid."\nТип заказа: ".$itemtypetitle."\n\nОписание: ".$description."\n\nПодробности по ссылке: https://cmit.di-re.ru/super/orderitem.php?secret=".$item['secret']; sendTelegramByUserId($db, $item['userid'], $message); $subject="Новый запрос"; #sendemailbyuserid($db, $item['userid'], $subject, $message); } } #Разбор файлов for ($n = 0; $n < count($files); $n++){ $sqlquery="INSERT INTO `gl_files` SET `itemid`='".$itemid."',`registerid`='1',`filename`='".$files[$n]['filename']."',`filepath`='".$files[$n]['filepath']."'"; $db->query($sqlquery); } } ?> $phone, // Телефон получателя 'body' => $imagespatch."/".$image, // Сообщение 'filename' => $image, // Сообщение 'caption' => $message, // Сообщение ]; // URL для запроса POST /message $url = 'https://api.1msg.io/'.$instanceId.'/sendFile?token='.$token; } else { $data = [ 'phone' => $phone, // Телефон получателя 'body' => $message, // Сообщение ]; // URL для запроса POST /message $url = 'https://api.1msg.io/'.$instanceId.'/sendMessage?token='.$token; } $json = json_encode($data); // Закодируем данные в JSON // Сформируем контекст обычного POST-запроса $options = stream_context_create(['http' => [ 'method' => 'POST', 'header' => 'Content-type: application/json', 'content' => $json ] ]); // Отправим запрос $result = file_get_contents($url, false, $options); //$result=json_decode($result); //if(strcmp($result->sent,"true")){ //$result=1; //}else{ // $result=0; //} return $result; } function checkwsphone($phone) { $data = [ 'blocking' => 'wait', // Телефон получателя 'contacts' => $phone, // Сообщение ]; $json = json_encode($data); // Закодируем данные в JSON //print_r($data); // URL для запроса POST /message $token = CHATAPI_TOKEN; $instanceId = CHATAPI_INSTANCE; $url = 'https://api.1msg.io/'.$instanceId.'/contacts?token='.$token; // Сформируем контекст обычного POST-запроса $options = stream_context_create(['http' => [ 'method' => 'POST', 'header' => 'Content-type: application/json', 'content' => $json ] ]); // Отправим запрос $result = file_get_contents($url, false, $options); //var_dump($result); $result=json_decode($result); //echo($result->contacts[0]->status); if(!strcmp($result->contacts[0]->status,"valid")){ $result=1; }else{$result=0;} //echo "result - ".$result."
"; return $result; } function sendwsbyphone_noconfirm($phone, $message) { $data = [ 'phone' => $phone, // Телефон получателя 'body' => $message, // Сообщение ]; $json = json_encode($data); // Закодируем данные в JSON // URL для запроса POST /message $token = CHATAPI_TOKEN; $instanceId = CHATAPI_INSTANCE; $url = 'https://api.1msg.io/'.$instanceId.'/sendMessage?token='.$token; // Сформируем контекст обычного POST-запроса $options = stream_context_create(['http' => [ 'method' => 'POST', 'header' => 'Content-type: application/json', 'content' => $json ] ]); // Отправим запрос file_get_contents($url, false, $options); //$result = file_get_contents($url, false, $options); //$result=json_decode($result); //if(strcmp($result->sent,"true")){ //$result=1; //}else{$result=0;} //return $result; } #ОТПРАВКА ЗАПРОСА МЕТОДОМ GET function get_api_whatsapp($curl_url){ $curl = curl_init($curl_url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);// Принимаем в виде массива. (false - в виде объекта) $result = curl_exec($curl); $output=json_decode($result); curl_close($curl); return $output; } function get_ip() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } else if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $ip = $ip[0]; } else { $ip = $_SERVER['REMOTE_ADDR']; } return trim($ip); } // Функция вызова методов API. function sendTelegram($method, $response) { $ch = curl_init('https://api.telegram.org/bot' . TOKEN . '/' . $method); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $response); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $res = curl_exec($ch); curl_close($ch); return $res; } function sendsmsbyphone($phone,$message,$from){ require_once 'sms.ru.php'; $smsru = new SMSRU(SMSRU_TOKEN); // Ваш уникальный программный ключ, который можно получить на главной странице $data = new stdClass(); $data->from = $from; $data->to = $phone; $data->text = $message; // Текст сообщения $sms = $smsru->send_one($data); // Отправка сообщения и возврат данных в переменную return $sms; } function sendsmsbyphone_noconfirm($phone,$message,$from){ require_once 'sms.ru.php'; $smsru = new SMSRU(SMSRU_TOKEN); // Ваш уникальный программный ключ, который можно получить на главной странице $data = new stdClass(); $data->from = $from; $data->to = $phone; $data->text = $message; // Текст сообщения $smsru->send_one($data); // Отправка сообщения и возврат данных в переменную //return $sms; } function sendemailbyemail($to,$subject,$message){ require_once ('phpmailer/PHPMailerAutoload.php'); $from = SMTP_FROM; // Почта отправителя $username = SMTP_USER; // Имя пользователя почты $password = SMTP_PASSWORD; // Пароль почты $mail = new PHPMailer; $mail->isSMTP(); $mail->Host = SMTP_HOST; $mail->SMTPAuth = true; $mail->Username = $username; $mail->Password = $password; $mail->SMTPSecure = 'ssl'; $mail->Port = SMTP_PORT; $mail->CharSet = 'UTF-8'; $mail->setFrom($from); $mail->addAddress($to); $mail->Subject = $subject; $mail->msgHTML($message); $result = $mail->send(); return $result; } function phone_format($phone) { $phone = trim($phone); $res = preg_replace( array( '/[\+]?([7|8])[-|\s]?\([-|\s]?(\d{3})[-|\s]?\)[-|\s]?(\d{3})[-|\s]?(\d{2})[-|\s]?(\d{2})/', '/[\+]?([7|8])[-|\s]?(\d{3})[-|\s]?(\d{3})[-|\s]?(\d{2})[-|\s]?(\d{2})/', '/[\+]?([7|8])[-|\s]?\([-|\s]?(\d{4})[-|\s]?\)[-|\s]?(\d{2})[-|\s]?(\d{2})[-|\s]?(\d{2})/', '/[\+]?([7|8])[-|\s]?(\d{4})[-|\s]?(\d{2})[-|\s]?(\d{2})[-|\s]?(\d{2})/', '/[\+]?([7|8])[-|\s]?\([-|\s]?(\d{4})[-|\s]?\)[-|\s]?(\d{3})[-|\s]?(\d{3})/', '/[\+]?([7|8])[-|\s]?(\d{4})[-|\s]?(\d{3})[-|\s]?(\d{3})/', ), array( '+7$2$3$4$5', '+7$2$3$4$5', '+7$2$3$4$5', '+7$2$3$4$5', '+7$2$3$4', '+7$2$3$4', ), $phone ); return $res; } function phone_format_without_plus($phone) { $phone = trim($phone); $res = preg_replace( array( '/[\+]?([7|8])[-|\s]?\([-|\s]?(\d{3})[-|\s]?\)[-|\s]?(\d{3})[-|\s]?(\d{2})[-|\s]?(\d{2})/', '/[\+]?([7|8])[-|\s]?(\d{3})[-|\s]?(\d{3})[-|\s]?(\d{2})[-|\s]?(\d{2})/', '/[\+]?([7|8])[-|\s]?\([-|\s]?(\d{4})[-|\s]?\)[-|\s]?(\d{2})[-|\s]?(\d{2})[-|\s]?(\d{2})/', '/[\+]?([7|8])[-|\s]?(\d{4})[-|\s]?(\d{2})[-|\s]?(\d{2})[-|\s]?(\d{2})/', '/[\+]?([7|8])[-|\s]?\([-|\s]?(\d{4})[-|\s]?\)[-|\s]?(\d{3})[-|\s]?(\d{3})/', '/[\+]?([7|8])[-|\s]?(\d{4})[-|\s]?(\d{3})[-|\s]?(\d{3})/', ), array( '7$2$3$4$5', '7$2$3$4$5', '7$2$3$4$5', '7$2$3$4$5', '7$2$3$4', '7$2$3$4', ), $phone ); return $res; } #ПРОВЕРКА НА JSON function isJSON($string) { return ((is_string($string) && (is_object(json_decode($string)) || is_array(json_decode($string))))) ? true : false; } #ОТПРАВКА ЗАПРОСА POST function post_api($data_in,$curl_url){ $data_string = json_encode ($data_in, JSON_UNESCAPED_UNICODE); #var_dump($data_string); $curl = curl_init($curl_url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);// Принимаем в виде массива. (false - в виде объекта) curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)) ); $result = curl_exec($curl); $output=json_decode($result); curl_close($curl); //print_r($output); return $output; } #ОТПРАВКА ЗАПРОСА POST ДЛЯ https://api-messenger.com/ function post_apiv2($data_in,$curl_url,$token){ $ch = curl_init(); $curl_url=$curl_url.'?token='.$token; curl_setopt($ch, CURLOPT_URL, $curl_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data_in)); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8')); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); //$result = curl_exec($ch); // Отправим запрос curl_exec($ch); // Отправим запрос //$result="{\"status\": \"OK\", \"message\": \"OK without approvement\"}"; curl_close($ch); //$data = json_decode($result, true); // Разберем полученный JSON в массив //print_r($data); //return $data; } function post_apiv3($data_in,$curl_url,$token){ $ch = curl_init(); $curl_url=$curl_url.'?token='.$token; curl_setopt($ch, CURLOPT_URL, $curl_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data_in)); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; charset=utf-8')); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); $result = curl_exec($ch); // Отправим запрос //curl_exec($ch); // Отправим запрос //$result="{\"status\": \"OK\", \"message\": \"OK without approvement\"}"; curl_close($ch); $data = json_decode($result, true); // Разберем полученный JSON в массив //print_r($data); return $data; } #ОТПРАВКА ЗАПРОСА МЕТОДОМ POST С АВТОРИЗАЦИЕЙ function post_api_token($data_in,$curl_url,$token){ $data_string = json_encode ($data_in, JSON_UNESCAPED_UNICODE); $curl = curl_init($curl_url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);// Принимаем в виде массива. (false - в виде объекта) $headers=array( 'Content-Type: application/json', 'Content-Length: '.strlen($data_string).'', 'x-access-token: '.$token); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($curl); $output=json_decode($result); curl_close($curl); return $output; } #ОТПРАВКА ЗАПРОСА МЕТОДОМ POST С АВТОРИЗАЦИЕЙ function post_api_authorization($data_in,$curl_url,$token){ $data_string = json_encode ($data_in, JSON_UNESCAPED_UNICODE); $curl = curl_init($curl_url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);// Принимаем в виде массива. (false - в виде объекта) $headers=array( 'Content-Type: application/json', 'Content-Length: '.strlen($data_string).'', 'Authorization: '.$token); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($curl); $output=json_decode($result); curl_close($curl); return $output; } function get_api($data_in,$curl_url,$token, $file){ $data_string = json_encode ($data_in, JSON_UNESCAPED_UNICODE); #echo "data_string - ".$data_string; #fwrite($file,'X0 data_string - '.$data_string.PHP_EOL); $headers =array( 'Content-Type: application/json', 'x-access-token: '.$token); // создаем заголовки $curl = curl_init(); // создаем экземпляр curl curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_VERBOSE, 1); curl_setopt($curl, CURLOPT_POST, false); curl_setopt($curl, CURLOPT_URL, $curl_url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string); #DEBUGGING CURL #curl_setopt($curl, CURLOPT_VERBOSE, true); #curl_setopt($curl, CURLOPT_STDERR, $file); $result = curl_exec($curl); //fwrite($file,'X0 result - '.$result.PHP_EOL); #if ($result === FALSE) { # printf("cUrl error (#%d): %s
\n", curl_errno($handle), # htmlspecialchars(curl_error($handle))); #} #rewind($file); #$verboseLog = stream_get_contents($file); #echo "Verbose information:\n
", htmlspecialchars($verboseLog), "
\n"; #fwrite($file,'11 result - '.htmlspecialchars($verboseLog).PHP_EOL); #fwrite($file,'before decode - '.PHP_EOL); $output=json_decode($result); #fwrite($file,'before curl_close - '.PHP_EOL); curl_close($curl); #DEBUG OUTPUT #fwrite($file,'22 output - '.print_r($output,true).PHP_EOL); #$output=''; if(empty($output))$output=0; return $output; } function pruffme_webinar_create($name,$start,$end){ $start_time=new DateTime($start); $end_time=new DateTime($end); $since_start = $end_time->diff($start_time); var_dump($since_start); $duration=60*$since_start->h+$since_start->i; echo $start_time->format('m/d/Y g:i A')." ".$end_time->format('m/d/Y g:i A'); echo "duration - ".$duration; //use_record значение 1 и type значение meeting //use_record Включить автоматическую запись 1 - да, 0 - нет[по умолчанию] //type Вебинар или конференция [webinar,meeting][по умолчанию webinar] $content = [ "name"=>$name, "use_record"=>0, "type"=>"meeting", "time"=> [ "selected_date"=> $start, "duration"=> $duration, "zone_offset"=> -180 ] ]; print_r($content); $encoded = json_encode($content); $base = base64_encode($encoded); $params = array( "user"=>"100d065babd1498bb03df0789dfea649", "key"=>"cb4b8a0a7d5c2c82083e64b98d56c6ae", "action"=>"webinar-create", "content"=>$base ); $postFields = http_build_query($params); $server = "https://pruffme.com/api/"; $curl = curl_init($server); curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields); curl_setopt($curl, CURLOPT_TIMEOUT, 30); $result = curl_exec($curl); $json = json_decode($result); return($json); } function get_api_sber($curl_url){ $ch = curl_init($curl_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HEADER, false); $output = curl_exec($ch); //$output=json_decode($output); curl_close($ch); return $output; //ВОЗВРАЩАЕМ МАССИВ! } ?>