Beispiel #1
0
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);
}
Beispiel #2
0
             $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>&nbsp;</td>\n\t\t\t\t<td align=center valign=middle>\n\t\t\t\t\t<input type=\"button\" class=\"button\" value=\"&gt;&gt;\" onclick=\"moveSelectedOptions(this.form['uids_dump[]'],this.form['uids[]'])\"><br><br>\n\t\t\t\t\t<input type=\"button\" class=\"button\" value=\"" . _('All') . " &gt;&gt;\" onclick=\"moveAllOptions(this.form['uids_dump[]'],this.form['uids[]'])\"><br><br>\n\t\t\t\t\t<input type=\"button\" class=\"button\" value=\"&lt;&lt;\" onclick=\"moveSelectedOptions(this.form['uids[]'],this.form['uids_dump[]'])\"><br><br>\n\t\t\t\t\t<input type=\"button\" class=\"button\" value=\"" . _('All') . " &lt;&lt;\" 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>&nbsp;</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);
Beispiel #4
0
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;
}
Beispiel #5
0
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);
}