Смс уведомления о новых тикетах

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[flash] ОТКЛЮЧЕН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Смс уведомления о новых тикетах

Re: Смс уведомления о новых тикетах

Сообщение Alex Keda » 2011-10-08 20:30:10

а чё там уметь-то?
любую функцию по работе с серверами посмотрите

Re: Смс уведомления о новых тикетах

Сообщение rootden » 2011-10-08 9:55:08

lissyara писал(а):а зачем курл? чем штатный Http_Send не устроил?



:| не умею Http_Send... и как всегда времени нет разбираться. (уж слишком все разбросано)

Re: Смс уведомления о новых тикетах

Сообщение rootden » 2011-10-08 9:51:07

lissyara писал(а):оповещение о необходимости оплаты, например...


+ о abuse.

это уже нужно делать что бы с баланса у клиентов списывалась X сумма за 1 смс, если бесплатно то дорого будет обходится для бюджетных хостингов.

Re: Смс уведомления о новых тикетах

Сообщение Alex Keda » 2011-10-06 9:29:14

мда...
это бы причесать, да штатно сделать...

в т.ч. и для клиентов...
оповещение о необходимости оплаты, например...
===

а зачем курл? чем штатный Http_Send не устроил?

Смс уведомления о новых тикетах

Сообщение rootden » 2011-10-06 6:08:24

Что то полуилось, может кому пригодится...

setup:

1) дамп новой таблицы

Код: Выделить всё

CREATE TABLE IF NOT EXISTS `Dgrad` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Smst` enum('no','yes') DEFAULT 'no',
  `Smsz` enum('no','yes') DEFAULT 'no',
  `Notice` text,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

INSERT INTO `Dgrad` (`ID`, `Smst`, `Smsz`, `Notice`) VALUES
(1, 'yes', 'no', 'yes');


2) hosts/billing/comp/Widgets/Administrator/Tickets.comp

Код: Выделить всё

 if( $curl = curl_init() ) {
     curl_setopt($curl,CURLOPT_URL,'http://smspilot.ru/api.php?balance=sms&apikey=ХХХХХХХХХХХХХ');
     curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
     $out = curl_exec($curl);
     curl_close($curl);
   }
   
   $ou= new Tag('TD',Array('class'=>'Standard','style'=>'text-align: right;'),$out);
   $Table[] = Array(new Tag('A',Array('href'=>SPrintF('http://www.smspilot.ru/my.php'),'target'=>'blank','title'=>'Пополнить'),'Смс доступно'),$ou);
   
   $Tsms = DB_Select('Dgrad',Array('ID','Smst','Smsz'),Array('UNIQ','ID'=>1));
   $stat = $Tsms['Smst'];
 
switch ($stat){
    case "yes":
        $msg = "Отключить";
      $Param = 'Smstiketoff';
      $Param2 = 'Выполняется отключение =)';
      $smsstat = new Tag('TD',Array('class'=>'Standard','style'=>'color:#CC0046;text-align: center;font-weight:bold;'),'on');
        break;
    case "no":
        $msg = "Включить";
      $Param = 'Smstiketon';
      $Param2 = 'Выполняется включение =)';
      $smsstat = new Tag('TD',Array('class'=>'Standard','style'=>'color:#82A1D3;text-align: center;font-weight:bold;'),'off');
        break;
   default:
   return ERROR | @Trigger_Error(101);
}

$Table[] = Array(new Tag('A',Array('href'=>SPrintF('http://www.smspilot.ru/my-report.php?date=today'),'target'=>'blank','title'=>'Статистика'),'Смс уведомления'),$smsstat);

   $Comp = Comp_Load(
   'Form/Input',
   Array(
              'type'    => 'button',
              'onclick' => "AjaxCall('/$Param',null,'$Param2','GetURL(document.location);');",
   'value'   => $msg
   )
);
$Table[] = $Comp;


3) 2 новых файла в /hosts/root/comp/www

Smstiketon.comp

Код: Выделить всё

/******************************************************************************/
Eval(COMP_INIT);
/******************************************************************************/
/******************************************************************************/
$sms = DB_Update('Dgrad',Array('ID'=>1,'Smst'=>2));
if(Is_Error($sms))
return ERROR | @Trigger_Error(500);
#-------------------------------------------------------------------------------
return Array('Status'=>'Ok');
#-------------------------------------------------------------------------------


Smstiketoff.comp

Код: Выделить всё

/******************************************************************************/
Eval(COMP_INIT);
/******************************************************************************/
/******************************************************************************/
$sms = DB_Update('Dgrad',Array('ID'=>1,'Smst'=>1));
if(Is_Error($sms))
return ERROR | @Trigger_Error(500);
#-------------------------------------------------------------------------------
return Array('Status'=>'Ok');
#-------------------------------------------------------------------------------


4) и самое главное в /hosts/billing/comp/www/API/TicketEdit.comp

Код: Выделить всё

$Tiketsms = DB_Select('Dgrad',Array('ID','Smst','Smsz'),Array('UNIQ','ID'=>1));
$stat = $Tiketsms['Smst'];

if( $stat == 'yes'){
$nomer = '7902......';
$me = 'Dgrad-host.ru';
$apikey='ХХХХХХХХХХХХХ';
$url = 'http://smspilot.ru/api.php';
$Message = substr($Message, 0, 180);
$sms = <<<EOT
Новый запрос с темой: $Theme.
-
$Message
-
EOT;
$ch = curl_init();
$request = "send=$sms&to=$nomer&from=$me&apikey=$apikey";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch);
curl_close($ch);
$IsInsert = DB_Insert('Events',Array('UserID'=>$__USER['ID'],'PriorityID'=>'Billing','Text'=>SPrintF('SMS сообщение было отправлено на номер ХХХХХХХ с темой (%s)',$Theme)));
}

   
if(!$UserID){
      #-------------------------------------------------------------------------
      $IsInsert = DB_Insert('Events',Array('UserID'=>$__USER['ID'],'PriorityID'=>'Billing','Text'=>SPrintF('Создан новый запрос в службу поддержки с темой (%s)',$Theme)));
     if(Is_Error($IsInsert))
        return ERROR | @Trigger_Error(500);
}


Ps коряво... знаю... но работает. :mrgreen:

06.10.jpg
06.10.jpg (30.24 КБ) 4653 просмотра


(уведомления приходят только если открыт новый тикет)

Вернуться к началу