Ejemplo n.º 1
0
function sms_survey_hook_playsmsd()
{
    global $core_config;
    // get enabled and started survey, but not running yet
    $db_query = "SELECT * FROM " . _DB_PREF_ . "_featureSurvey WHERE deleted='0' AND status='1' AND started='1' AND running='0'";
    $db_result = dba_query($db_query);
    while ($db_row = dba_fetch_array($db_result)) {
        $c_sid = $db_row['id'];
        // set survey as running survey
        $session = md5($c_sid . mktime());
        $db_query1 = "UPDATE " . _DB_PREF_ . "_featureSurvey SET session='{$session}',running='1' WHERE id='{$c_sid}'";
        if ($db_result1 = dba_affected_rows($db_query1)) {
            // get current survey data
            $s = sms_survey_getdatabyid($c_sid);
            $c_uid = $s['uid'];
            $c_username = uid2username($c_uid);
            $c_keyword = $s['keyword'];
            // get current survey questions, focus only on first question, index 0
            $q = sms_survey_getquestions($c_sid);
            $c_message = $q[0]['question'];
            $c_sms_msg = $c_keyword . " " . $c_message;
            // get current survey members
            $m = sms_survey_getmembers($c_sid);
            for ($i = 0; $i < count($m); $i++) {
                // if member's mobile exists
                if ($c_sms_to = $m[$i]['mobile']) {
                    logger_print("playsmsd send start qn:1 sid:" . $c_sid . " username:"******" to:" . $c_sms_to . " msg:" . $c_sms_msg, 3, "sms_survey");
                    // if member's mobile, question and username owned the survey exists
                    if ($c_sms_to && $c_sms_msg && $c_username) {
                        $type = 'text';
                        // $unicode = '0';
                        // send message to member
                        // list($ok,$to,$smslog_id,$queue) = sendsms($c_username,$c_sms_to,$c_sms_msg,$type,$unicode);
                        $unicode = core_detect_unicode($message);
                        list($ok, $to, $smslog_id, $queue) = sendsms($c_username, $c_sms_to, $c_sms_msg, 'text', $unicode);
                        $ok[0] = $ok[0] ? "true" : "false";
                        logger_print("playsmsd send finish sid:" . $c_sid . " smslog_id:" . $smslog_id[0] . " ok:" . $ok[0], 2, "sms_survey");
                        // save the log
                        $log = "";
                        $log['survey_id'] = $c_sid;
                        $log['question_id'] = $q[0]['id'];
                        $log['member_id'] = $m[$i]['id'];
                        $log['link_id'] = sms_survey_getlinkid($session, $c_sid, $m[$i]['id']);
                        $log['smslog_id'] = $smslog_id[0];
                        $log['name'] = $m[$i]['name'];
                        $log['mobile'] = $m[$i]['mobile'];
                        $log['question'] = $q[0]['question'];
                        $log['question_number'] = 1;
                        $log['creation_datetime'] = $core_config['datetime']['now'];
                        $log['session'] = $session;
                        sms_survey_savelog($log);
                    }
                }
            }
        }
        // set survey as completed
        $db_query2 = "UPDATE " . _DB_PREF_ . "_featureSurvey SET status='1',started='0',running='2' WHERE id='{$c_sid}'";
        $db_result2 = dba_affected_rows($db_query2);
    }
}
Ejemplo n.º 2
0
         $_SESSION['error_string'] = _('Survey does not exists');
     }
     header("Location: index.php?app=menu&inc=feature_sms_survey&op=list&sid=" . $sid);
     exit;
     break;
 case 'stop':
     $content = '<h2>' . _('SMS Survey') . '</h2><p />';
     if ($error_content) {
         $content .= '<p>' . $error_content . '</p>';
     }
     $content .= '<h3>' . _('Stop survey') . '</h3><p />';
     $sid = $_REQUEST['sid'];
     $data = sms_survey_getdatabyid($sid);
     $keyword = $data['keyword'];
     $title = $data['title'];
     $c_members = count(sms_survey_getmembers($sid));
     $c_members = "<a href='index.php?app=menu&inc=feature_sms_survey&route=members&op=members&sid=" . $sid . "'>" . $c_members . "</a>";
     $c_questions = count(sms_survey_getquestions($sid));
     $c_questions = "<a href='index.php?app=menu&inc=feature_sms_survey&route=questions&op=questions&sid=" . $sid . "'>" . $c_questions . "</a>";
     $c_status = $data['status'] ? "<font color='green'>" . _('enabled') . "</font>" : "<font color='red'>" . _('disabled') . "</font>";
     if ($data['status']) {
         $c_status = $data['running'] == 2 ? "<font color='blue'>" . _('completed') . "</font>" : "<font color='green'>" . _('enabled') . "</font>";
     }
     $c_started = $data['started'] ? "<font color='green'>" . _('yes') . "</font>" : "<font color='red'>" . _('no') . "</font>";
     if (!$data['started']) {
         $c_started = $data['running'] == 2 ? "<font color='red'>" . _('restart') . "</font>" : "<font color='red'>" . _('no') . "</font>";
     }
     $content .= "\n\t\t\t<table cellpadding='1' cellspacing='2' border='0'>\n\t\t\t<tr><td>" . _('Keyword') . "</td><td>:</td><td>" . $keyword . "</td></tr>\n\t\t\t<tr><td>" . _('Title') . "</td><td>:</td><td>" . $title . "</td></tr>\n\t\t\t<tr><td>" . _('Members') . "</td><td>:</td><td>" . $c_members . "</td></tr>\n\t\t\t<tr><td>" . _('Questions') . "</td><td>:</td><td>" . $c_questions . "</td></tr>\n\t\t\t<tr><td>" . _('Status') . "</td><td>:</td><td>" . $c_status . "</td></tr>\n\t\t\t<tr><td>" . _('Started') . "</td><td>:</td><td>" . $c_started . "</td></tr>\n\t\t\t</table>\n\t\t\t<p>" . _('Are you sure you want to stop this survey ?') . "</p>\n\t\t\t<form method='post' action='index.php?app=menu&inc=feature_sms_survey&op=stop_submit'>\n\t\t\t<input type='hidden' name='sid' value='{$sid}'>\n\t\t\t<p><input class='button' type='submit' value='" . _('Yes') . "'></p>\n\t\t\t</form>\n\t\t\t<form method='post'action='index.php?app=menu&inc=feature_sms_survey&op=list'>\n\t\t\t<p><input class='button' type='submit' value='" . _('Cancel') . "'></p>\n\t\t\t</form>\n\t\t";
     echo $content;
     break;
 case 'stop_submit':
     $c_members = count(sms_survey_getmembers($sid));
     $c_members = "<a href='index.php?app=menu&inc=feature_sms_survey&route=members&op=members&sid=" . $sid . "'>" . $c_members . "</a>";
     $c_questions = count(sms_survey_getquestions($sid));
     $c_questions = "<a href='index.php?app=menu&inc=feature_sms_survey&route=questions&op=questions&sid=" . $sid . "'>" . $c_questions . "</a>";
     $c_status = $data['status'] ? "<font color='green'>" . _('enabled') . "</font>" : "<font color='red'>" . _('disabled') . "</font>";
     if ($data['status']) {
         $c_status = $data['running'] == 2 ? "<font color='blue'>" . _('completed') . "</font>" : "<font color='green'>" . _('enabled') . "</font>";
     }
     $c_started = $data['started'] ? "<font color='green'>" . _('yes') . "</font>" : "<font color='red'>" . _('no') . "</font>";
     if (!$data['started']) {
         $c_started = $data['running'] == 2 ? "<font color='red'>" . _('restart') . "</font>" : "<font color='red'>" . _('no') . "</font>";
     }
     $content .= "\n\t\t\t<table cellpadding='1' cellspacing='2' border='0'>\n\t\t\t<tr><td>" . _('User') . "</td><td>:</td><td>" . $c_user . "</td></tr>\n\t\t\t<tr><td>" . _('Keyword') . "</td><td>:</td><td>" . $keyword . "</td></tr>\n\t\t\t<tr><td>" . _('Title') . "</td><td>:</td><td>" . $title . "</td></tr>\n\t\t\t<tr><td>" . _('Members') . "</td><td>:</td><td>" . $c_members . "</td></tr>\n\t\t\t<tr><td>" . _('Questions') . "</td><td>:</td><td>" . $c_questions . "</td></tr>\n\t\t\t<tr><td>" . _('Status') . "</td><td>:</td><td>" . $c_status . "</td></tr>\n\t\t\t<tr><td>" . _('Started') . "</td><td>:</td><td>" . $c_started . "</td></tr>\n\t\t\t</table>\n\t\t";
     $list_of_members = '';
     // get members
     $members = sms_survey_getmembers($sid);
     for ($i = 0; $i < count($members); $i++) {
         $c_id = $members[$i]['id'];
         $c_mobile = $members[$i]['mobile'];
         $c_name = $members[$i]['name'];
         $list_of_users .= "<option value='" . $c_id . "'>" . $c_mobile . " " . $c_name . "</option>";
     }
     $content .= "\n\t\t\t<form action=\"index.php?app=menu&inc=feature_sms_survey&route=members&op=members_delete_submit\" method=\"post\">\n\t\t\t<input type=hidden name='sid' value='" . $sid . "'>\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=\"members_dump[]\" size=\"10\" multiple=\"multiple\" onDblClick=\"moveSelectedOptions(this.form['members_dump[]'],this.form['members[]'])\">{$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['members_dump[]'],this.form['members[]'])\"><br><br>\n\t\t\t\t\t<input type=\"button\" class=\"button\" value=\"" . _('All') . " &gt;&gt;\" onclick=\"moveAllOptions(this.form['members_dump[]'],this.form['members[]'])\"><br><br>\n\t\t\t\t\t<input type=\"button\" class=\"button\" value=\"&lt;&lt;\" onclick=\"moveSelectedOptions(this.form['members[]'],this.form['members_dump[]'])\"><br><br>\n\t\t\t\t\t<input type=\"button\" class=\"button\" value=\"" . _('All') . " &lt;&lt;\" onclick=\"moveAllOptions(this.form['members[]'],this.form['members_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=\"members[]\" size=\"10\" multiple=\"multiple\" onDblClick=\"moveSelectedOptions(this.form['members[]'],this.form['members_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['members[]'])\"></p>\n\t\t\t</form>\n\t\t";
     echo $content;
     break;
 case 'members_delete_submit':
     $sid = $_REQUEST['sid'];
     $data = sms_survey_getdatabyid($sid);
     $keyword = $data['keyword'];
     if ($sid && $keyword) {
         $members = $_REQUEST['members'];