Сообщение 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 коряво... знаю... но работает.
- 06.10.jpg (30.24 КБ) 4646 просмотров
(уведомления приходят только если открыт новый тикет)
Что то полуилось, может кому пригодится...
setup:
1) дамп новой таблицы
[code]
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');
[/code]
2) hosts/billing/comp/Widgets/Administrator/Tickets.comp
[code]
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;
[/code]
3) 2 новых файла в /hosts/root/comp/www
Smstiketon.comp
[code]
/******************************************************************************/
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');
#-------------------------------------------------------------------------------
[/code]
Smstiketoff.comp
[code]
/******************************************************************************/
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');
#-------------------------------------------------------------------------------
[/code]
4) и самое главное в /hosts/billing/comp/www/API/TicketEdit.comp
[code]
$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);
}
[/code]
Ps коряво... знаю... но работает. :mrgreen:
[attachment=0]06.10.jpg[/attachment]
(уведомления приходят только если открыт новый тикет)