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 коряво... знаю... но работает.
 
 (уведомления приходят только если открыт новый тикет)



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