tsms.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <?php
  2. class tsms extends SendDogProto {
  3. /**
  4. * Contains system alter.ini as key=>value
  5. *
  6. * @var array
  7. */
  8. protected $altCfg = array();
  9. /**
  10. * Return set of inputs, required for TurboSMS service configuration
  11. *
  12. * @return string
  13. */
  14. public function renderTsmsConfigInputs() {
  15. $inputs = wf_tag('h2') . __('TurboSMS') . ' ' . wf_Link(self::URL_ME . '&showmisc=tsms', wf_img('skins/icon_sms_micro.gif', __('View SMS sending queue')), true) . wf_tag('h2', true);
  16. $inputs .= wf_HiddenInput('editconfig', 'true');
  17. $inputs .= wf_TextInput('edittsmsgateway', __('TurboSMS gateway address'), $this->settings['TSMS_GATEWAY'], true, 30);
  18. $inputs .= wf_TextInput('edittsmslogin', __('User login to access TurboSMS gateway'), $this->settings['TSMS_LOGIN'], true, 20);
  19. $inputs .= wf_TextInput('edittsmspassword', __('User password for access TurboSMS gateway'), $this->settings['TSMS_PASSWORD'], true, 20);
  20. $inputs .= wf_TextInput('edittsmssign', __('TurboSMS') . ' ' . __('Sign'), $this->settings['TSMS_SIGN'], true, 20);
  21. $smsServiceFlag = ($this->settings['SMS_SERVICE'] == 'tsms') ? true : false;
  22. $inputs .= wf_RadioInput('defaultsmsservice', __('Use TurboSMS as default SMS service'), 'tsms', true, $smsServiceFlag);
  23. return ($inputs);
  24. }
  25. /**
  26. * Render TurboSMS server-side queue
  27. *
  28. * @return string
  29. */
  30. public function renderTurboSMSQueue() {
  31. $result = '';
  32. $tsms_host = $this->settings['TSMS_GATEWAY'];
  33. $tsms_db = 'users';
  34. $tsms_login = $this->settings['TSMS_LOGIN'];
  35. $tsms_password = $this->settings['TSMS_PASSWORD'];
  36. $tsms_table = $this->settings['TSMS_LOGIN'];
  37. $smsArray = array();
  38. $total = 0;
  39. $TsmsDB = new DbConnect($tsms_host, $tsms_login, $tsms_password, $tsms_db, $error_reporting = true, $persistent = false);
  40. $TsmsDB->open() or die($TsmsDB->error());
  41. $TsmsDB->query('SET NAMES utf8;');
  42. if (wf_CheckPost(array('showdate'))) {
  43. $date = mysql_real_escape_string($_POST['showdate']);
  44. } else {
  45. $date = '';
  46. }
  47. if (!empty($date)) {
  48. $where = " WHERE `send_time` LIKE '" . $date . "%' ORDER BY `id` DESC;";
  49. } else {
  50. $where = ' ORDER BY `id` DESC LIMIT 50;';
  51. }
  52. $query = "SELECT * from `" . $tsms_table . "`" . $where;
  53. $TsmsDB->query($query);
  54. while ($row = $TsmsDB->fetchassoc()) {
  55. $smsArray[] = $row;
  56. }
  57. //close old datalink
  58. $TsmsDB->close();
  59. //rendering result
  60. $inputs = wf_DatePickerPreset('showdate', curdate());
  61. $inputs .= wf_Submit(__('Show'));
  62. $dateform = wf_Form("", 'POST', $inputs, 'glamour');
  63. $cells = wf_TableCell(__('ID'));
  64. $cells .= wf_TableCell(__('Msg ID'));
  65. $cells .= wf_TableCell(__('Mobile'));
  66. $cells .= wf_TableCell(__('Sign'));
  67. $cells .= wf_TableCell(__('Message'));
  68. $cells .= wf_TableCell(__('Balance'));
  69. $cells .= wf_TableCell(__('Cost'));
  70. $cells .= wf_TableCell(__('Send time'));
  71. $cells .= wf_TableCell(__('Sended'));
  72. $cells .= wf_TableCell(__('Status'));
  73. $rows = wf_TableRow($cells, 'row1');
  74. if (!empty($smsArray)) {
  75. foreach ($smsArray as $io => $each) {
  76. $cells = wf_TableCell($each['id']);
  77. $cells .= wf_TableCell($each['msg_id']);
  78. $cells .= wf_TableCell($each['number']);
  79. $cells .= wf_TableCell($each['sign']);
  80. $msg = wf_modal(__('Show'), __('SMS'), $each['message'], '', '300', '200');
  81. $cells .= wf_TableCell($msg);
  82. $cells .= wf_TableCell($each['balance']);
  83. $cells .= wf_TableCell($each['cost']);
  84. $cells .= wf_TableCell($each['send_time']);
  85. $cells .= wf_TableCell($each['sended']);
  86. $cells .= wf_TableCell($each['status']);
  87. $rows .= wf_TableRow($cells, 'row5');
  88. $total++;
  89. }
  90. }
  91. $result .= wf_BackLink(self::URL_ME, '', true);
  92. $result .= $dateform;
  93. $result .= wf_TableBody($rows, '100%', '0', 'sortable');
  94. $result .= __('Total') . ': ' . $total;
  95. return ($result);
  96. }
  97. /**
  98. * Loads TurboSMS config
  99. *
  100. * @return void
  101. */
  102. public function loadTurbosmsConfig() {
  103. global $ubillingConfig;
  104. $this->altCfg = $ubillingConfig->getAlter();
  105. $smsgateway = zb_StorageGet('SENDDOG_TSMS_GATEWAY');
  106. if (empty($smsgateway)) {
  107. $smsgateway = $this->altCfg['TSMS_GATEWAY'];
  108. zb_StorageSet('SENDDOG_TSMS_GATEWAY', $smsgateway);
  109. }
  110. $smslogin = zb_StorageGet('SENDDOG_TSMS_LOGIN');
  111. if (empty($smslogin)) {
  112. $smslogin = $this->altCfg['TSMS_LOGIN'];
  113. zb_StorageSet('SENDDOG_TSMS_LOGIN', $smslogin);
  114. }
  115. $smspassword = zb_StorageGet('SENDDOG_TSMS_PASSWORD');
  116. if (empty($smspassword)) {
  117. $smspassword = $this->altCfg['TSMS_PASSWORD'];
  118. zb_StorageSet('SENDDOG_TSMS_PASSWORD', $smspassword);
  119. }
  120. $smssign = zb_StorageGet('SENDDOG_TSMS_SIGN');
  121. if (empty($smssign)) {
  122. $smssign = 'Ubilling';
  123. zb_StorageSet('SENDDOG_TSMS_SIGN', $smssign);
  124. }
  125. $this->settings['TSMS_GATEWAY'] = $smsgateway;
  126. $this->settings['TSMS_LOGIN'] = $smslogin;
  127. $this->settings['TSMS_PASSWORD'] = $smspassword;
  128. $this->settings['TSMS_SIGN'] = $smssign;
  129. }
  130. /**
  131. * Sends all sms storage via TurboSMS service
  132. *
  133. * @return void
  134. */
  135. public function turbosmsPushMessages() {
  136. $sign = $this->safeEscapeString($this->settings['TSMS_SIGN']);
  137. $date = date("Y-m-d H:i:s");
  138. $allSmsQueue = $this->smsQueue->getQueueData();
  139. if (!empty($allSmsQueue)) {
  140. //open new database connection
  141. $TsmsDB = new DbConnect($this->settings['TSMS_GATEWAY'], $this->settings['TSMS_LOGIN'], $this->settings['TSMS_PASSWORD'], 'users', $error_reporting = true, $persistent = false);
  142. $TsmsDB->open() or die($TsmsDB->error());
  143. $TsmsDB->query('SET NAMES utf8;');
  144. foreach ($allSmsQueue as $eachsms) {
  145. if ((isset($eachsms['number'])) AND ( isset($eachsms['message']))) {
  146. $query = "INSERT INTO `" . $this->settings['TSMS_LOGIN'] . "` ( `number`, `sign`, `message`, `wappush`, `send_time`) VALUES
  147. ('" . $eachsms['number'] . "', '" . $sign . "', '" . $eachsms['message'] . "', '', '" . $date . "');
  148. ";
  149. //push new sms to database
  150. $TsmsDB->query($query);
  151. }
  152. //remove old sent message
  153. $this->smsQueue->deleteSms($eachsms['filename']);
  154. }
  155. //close old datalink
  156. $TsmsDB->close();
  157. }
  158. }
  159. /**
  160. * Saves service settings to database
  161. *
  162. * @return void
  163. */
  164. public function saveSettings() {
  165. //TurboSMS configuration
  166. if ($_POST['edittsmsgateway'] != $this->settings['TSMS_GATEWAY']) {
  167. zb_StorageSet('SENDDOG_TSMS_GATEWAY', $_POST['edittsmsgateway']);
  168. log_register('SENDDOG CONFIG SET TSMSGATEWAY `' . $_POST['edittsmsgateway'] . '`');
  169. }
  170. if ($_POST['edittsmslogin'] != $this->settings['TSMS_LOGIN']) {
  171. zb_StorageSet('SENDDOG_TSMS_LOGIN', $_POST['edittsmslogin']);
  172. log_register('SENDDOG CONFIG SET TSMSLOGIN `' . $_POST['edittsmslogin'] . '`');
  173. }
  174. if ($_POST['edittsmspassword'] != $this->settings['TSMS_PASSWORD']) {
  175. zb_StorageSet('SENDDOG_TSMS_PASSWORD', $_POST['edittsmspassword']);
  176. log_register('SENDDOG CONFIG SET TSMSPASSWORD `' . $_POST['edittsmspassword'] . '`');
  177. }
  178. if ($_POST['edittsmssign'] != $this->settings['TSMS_SIGN']) {
  179. zb_StorageSet('SENDDOG_TSMS_SIGN', $_POST['edittsmssign']);
  180. log_register('SENDDOG CONFIG SET TSMSSIGN `' . $_POST['edittsmssign'] . '`');
  181. }
  182. }
  183. }