function websend2group($username, $gp_code, $message, $sms_type = "text", $unicode = "0") { global $apps_path; global $datetime_now, $gateway_module; $uid = username2uid($username); $mobile_sender = username2mobile($username); $sms_footer = username2footer($username); $sms_msg = cleanSmsMessage(appendFooter($message, $sms_footer)); if (is_array($gp_code)) { $array_gp_code = $gp_code; } else { $array_gp_code[0] = $gp_code; } $j = 0; for ($i = 0; $i < count($array_gp_code); $i++) { $c_gp_code = strtoupper($array_gp_code[$i]); $gpid = gpcode2gpid($uid, $c_gp_code); $dbPhonebook = DB_DataObject::factory(playsms_tblUserPhonebook); $dbPhonebook->gpid = $gpid; $dbPhonebook->find(); while ($dbPhonebook->fetch()) { $sms_to = $dbPhonebook->p_num; $to[$j] = $sms_to; $ok[$j] = 0; $db = DB_DataObject::factory(playsms_tblSMSOutgoing); $db->uid = $uid; $db->p_gateway = $gateway_module; $db->p_src = $mobile_sender; $db->p_dst = $sms_to; $db->p_footer = $sms_footer; $db->p_msg = $sms_msg; $db->p_datetime = $datetime_now; $db->p_sms_type = $sms_type; $db->unicode = $unicode; $db->send_tries = 1; $db->p_status = DLR_PENDING; // default to failure if ($db->insert()) { if (gw_send_sms($mobile_sender, $sms_to, $sms_msg, $c_gp_code, $uid, $db->smslog_id, $sms_type, $unicode)) { $ok[$j] = $sms_to; } } $j++; } } return array($ok, $to); }
$error_string = _('User has been deleted') . " (" . _('username') . ": `{$uname}`)"; } } if ($del_uid == 1 || $uname == "admin") { $error_string = _('User is immune to deletion') . " (" . _('username') . " `{$uname}`)"; } else { if ($del_uid == $uid) { $error_string = _('Currently logged in user is immune to deletion'); } } header("Location: index.php?app=menu&inc=user_mgmnt&op=user_list&err=" . urlencode($error_string)); break; case "user_edit": $uname = $_REQUEST['uname']; $uid = username2uid($uname); $mobile = username2mobile($uname); $email = username2email($uname); $name = username2name($uname); $status = username2status($uname); $sender = username2sender($uname); $footer = username2footer($uname); $timezone = username2timezone($uname); $language_module = username2lang($uname); // get language options for ($i = 0; $i < count($core_config['languagelist']); $i++) { $language = $core_config['languagelist'][$i]; if ($language == $language_module) { $selected = "selected"; } $option_language_module .= "<option value=\"{$language}\" {$selected}>{$language}</option>"; $selected = "";
$keywords = $data['keywords']; $description = $data['description']; $c_members = count(inboxgroup_getmembers($rid)); $c_members = "<a href='index.php?app=menu&inc=feature_inboxgroup&route=members&op=members&rid=" . $rid . "'>" . $c_members . "</a>"; $c_catchall = count(inboxgroup_getcatchall($rid)); $c_catchall = "<a href='index.php?app=menu&inc=feature_inboxgroup&route=catchall&op=catchall&rid=" . $rid . "'>" . $c_catchall . "</a>"; $c_status = $data['status'] ? "<font color='green'>" . _('enabled') . "</font>" : "<font color='red'>" . _('disabled') . "</font>"; $content .= "\n\t\t\t<table cellpadding='1' cellspacing='2' border='0'>\n\t\t\t<tr><td>" . _('Receiver number') . "</td><td>:</td><td>" . $in_receiver . "</td></tr>\n\t\t\t<tr><td>" . _('Keywords') . "</td><td>:</td><td>" . $keywords . "</td></tr>\n\t\t\t<tr><td>" . _('Description') . "</td><td>:</td><td>" . $description . "</td></tr>\n\t\t\t<tr><td>" . _('Members') . "</td><td>:</td><td>" . $c_members . "</td></tr>\n\t\t\t<tr><td>" . _('Catch-all') . "</td><td>:</td><td>" . $c_catchall . "</td></tr>\n\t\t\t<tr><td>" . _('Status') . "</td><td>:</td><td>" . $c_status . "</td></tr>\n\t\t\t</table>\n\t\t"; $list_of_members = ''; // get members $users = inboxgroup_getmembers($rid); for ($i = 0; $i < count($users); $i++) { $c_uid = $users[$i]['uid']; $c_username = uid2username($c_uid); $c_name = username2name($c_username); $c_mobile = username2mobile($c_username); $list_of_users .= "<option value='" . $c_uid . "'>" . $c_name . " " . $c_mobile . "</option>"; } $content .= "\n\t\t\t<form action=\"index.php?app=menu&inc=feature_inboxgroup&route=members&op=members_delete_submit\" method=\"post\">\n\t\t\t<input type=hidden name='rid' value='" . $rid . "'>\n\t\t\t<table cellpadding=1 cellspacing=2 border=0>\n\t\t\t<tr>\n\t\t\t\t<td nowrap>\n\t\t\t\t\t" . _('Current members') . ":<br />\n\t\t \t\t\t<select name=\"uids_dump[]\" size=\"10\" multiple=\"multiple\" onDblClick=\"moveSelectedOptions(this.form['uids_dump[]'],this.form['uids[]'])\">{$list_of_users}</select>\n\t\t\t\t</td>\n\t\t\t\t<td width=10> </td>\n\t\t\t\t<td align=center valign=middle>\n\t\t\t\t\t<input type=\"button\" class=\"button\" value=\">>\" onclick=\"moveSelectedOptions(this.form['uids_dump[]'],this.form['uids[]'])\"><br><br>\n\t\t\t\t\t<input type=\"button\" class=\"button\" value=\"" . _('All') . " >>\" onclick=\"moveAllOptions(this.form['uids_dump[]'],this.form['uids[]'])\"><br><br>\n\t\t\t\t\t<input type=\"button\" class=\"button\" value=\"<<\" onclick=\"moveSelectedOptions(this.form['uids[]'],this.form['uids_dump[]'])\"><br><br>\n\t\t\t\t\t<input type=\"button\" class=\"button\" value=\"" . _('All') . " <<\" onclick=\"moveAllOptions(this.form['uids[]'],this.form['uids_dump[]'])\">\n\t\t\t\t</td>\t\t\n\t\t\t\t<td width=10> </td>\n\t\t\t\t<td nowrap>\n\t\t\t\t " . _('Selected members') . ":<br>\n\t\t\t\t <select name=\"uids[]\" size=\"10\" multiple=\"multiple\" onDblClick=\"moveSelectedOptions(this.form['uids[]'],this.form['uids_dump[]'])\"></select>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t</table>\n\t\t\t<p>" . _('Press submit button to remove selected members from member list') . "</p>\n\t\t\t<p><input class='button' type='submit' value='Submit' onClick=\"selectAllOptions(this.form['uids[]'])\"></p>\n\t\t\t</form>\n\t\t"; echo $content; break; case 'members_delete_submit': $rid = $_REQUEST['rid']; $rid = $_REQUEST['rid']; $data = inboxgroup_getdatabyid($rid); $in_receiver = $data['in_receiver']; if ($rid && $in_receiver) { $uids = $_REQUEST['uids']; for ($i = 0; $i < count($uids); $i++) { $c_uid = $uids[$i]; $c_username = uid2username($c_uid);
function insertsmstoinbox($sms_datetime, $sms_sender, $target_user, $message, $sms_receiver = "") { global $core_config, $web_title, $email_service, $email_footer; // sms to inbox will be handled by plugin/tools/* first $ret_intercept = interceptsmstoinbox($sms_datetime, $sms_sender, $target_user, $message, $sms_receiver); if ($ret_intercept['param_modified']) { $sms_datetime = $ret_intercept['param']['sms_datetime'] ? $ret_intercept['param']['sms_datetime'] : $sms_datetime; $sms_sender = $ret_intercept['param']['sms_sender'] ? $ret_intercept['param']['sms_sender'] : $sms_sender; $target_user = $ret_intercept['param']['target_user'] ? $ret_intercept['param']['target_user'] : $target_user; $message = $ret_intercept['param']['message'] ? $ret_intercept['param']['message'] : $message; $sms_receiver = $ret_intercept['param']['sms_receiver'] ? $ret_intercept['param']['sms_receiver'] : $sms_receiver; } $ok = false; if ($sms_sender && $target_user && $message) { $user = user_getdatabyusername($target_user); if ($uid = $user['uid']) { // forward to Inbox if ($fwd_to_inbox = $user['fwd_to_inbox']) { $db_query = "\n\t\t INSERT INTO " . _DB_PREF_ . "_tblUserInbox\n\t\t (in_sender,in_receiver,in_uid,in_msg,in_datetime) \n\t\t VALUES ('{$sms_sender}','{$sms_receiver}','{$uid}','{$message}','{$sms_datetime}')\n\t\t"; logger_print("saving sender:" . $sms_sender . " receiver:" . $sms_receiver . " target:" . $target_user, 3, "insertsmstoinbox"); if ($cek_ok = @dba_insert_id($db_query)) { logger_print("saved sender:" . $sms_sender . " receiver:" . $sms_receiver . " target:" . $target_user, 3, "insertsmstoinbox"); } } // forward to email if ($fwd_to_email = $user['fwd_to_email']) { if ($email = $user['email']) { // make sure sms_datetime is in supported format and in user's timezone $sms_datetime = core_display_datetime($sms_datetime); // get name from target_user's phonebook $c_name = phonebook_number2name($sms_sender, $target_user); $sender = $c_name ? $c_name . ' <' . $sms_sender . '>' : $sms_sender; $subject = "[SMSGW-PV] " . _('from') . " {$sms_sender}"; $body = _('Forward Private WebSMS') . " ({$web_title})\n\n"; $body .= _('Date time') . ": {$sms_datetime}\n"; $body .= _('Sender') . ": {$sender}\n"; $body .= _('Receiver') . ": {$sms_receiver}\n\n"; $body .= _('Message') . ":\n{$message}\n\n"; $body .= $email_footer . "\n\n"; logger_print("send email from:" . $email_service . " to:" . $email, 3, "insertsmstoinbox"); sendmail($email_service, $email, $subject, $body); logger_print("sent email from:" . $email_service . " to:" . $email, 3, "insertsmstoinbox"); } $ok = true; } // forward to mobile if ($fwd_to_mobile = $user['fwd_to_mobile']) { if ($mobile = $user['mobile']) { $unicode = 0; if (function_exists('mb_detect_encoding')) { $encoding = mb_detect_encoding($message, 'auto'); if ($encoding != 'ASCII') { $unicode = 1; } } $mobile = username2mobile($target_user); $message = '@' . $c_username . ' ' . $message; logger_print("sending to mobile:" . $mobile . " user:"******"insertsmstoinbox"); list($ok, $to, $smslog_id) = sendsms_pv($target_user, $mobile, $message, 'text', $unicode); if ($ok) { logger_print("forwarded to:" . $to . " smslog_id:" . $smslog_id . " user:"******"insertsmstoinbox"); } } } } } return $ok; }
function sendsms_bc($username, $gpid, $message, $sms_type = 'text', $unicode = 0) { global $apps_path, $core_config; global $datetime_now, $gateway_module; $uid = username2uid($username); $max_length = $core_config['smsmaxlength']; if ($sms_sender = username2sender($username)) { $sms_sender = str_replace("\\'", "", $sms_sender); $sms_sender = str_replace("\"", "", $sms_sender); $max_length = $max_length - strlen($sms_sender) - 1; } if (strlen($message) > $max_length) { $message = substr($message, 0, $max_length - 1); } $sms_msg = $message; // \r and \n is ok - http://smstools3.kekekasvi.com/topic.php?id=328 //$sms_msg = str_replace("\r","",$sms_msg); //$sms_msg = str_replace("\n","",$sms_msg); $sms_msg = str_replace("\"", "'", $sms_msg); $mobile_sender = username2mobile($username); $mobile_sender = str_replace("\\'", "", $mobile_sender); $mobile_sender = str_replace("\"", "", $mobile_sender); // destination group should be an array, if single then make it array of 1 member if (is_array($gpid)) { $array_gpid = $gpid; } else { $array_gpid[0] = $gpid; } $j = 0; for ($i = 0; $i < count($array_gpid); $i++) { $c_gpid = strtoupper($array_gpid[$i]); $rows = phonebook_getdatabyid($c_gpid); foreach ($rows as $key => $db_row) { $p_num = $db_row['p_num']; $sms_to = $p_num; $sms_to = str_replace("\\'", "", $sms_to); $sms_to = str_replace("\"", "", $sms_to); $to[$j] = $sms_to; $ok[$j] = 0; if ($ret = sendsms($mobile_sender, $sms_sender, $sms_to, $sms_msg, $uid, $c_gpid, $sms_type, $unicode)) { $ok[$j] = $ret['status']; $smslog_id[$i] = $ret['smslog_id']; } $j++; } } return array($ok, $to, $smslog_id); }