Esempio n. 1
0
function cron__check_for_session_reminders()
{
    global $settings;
    $now = time();
    $query = "SELECT " . table('sessions') . ".*, " . table('experiments') . ".*, count(participate_id) as num_reg\n      \t\tFROM " . table('sessions') . ", " . table('participate_at') . ", " . table('experiments') . "  \n      \t\tWHERE " . table('sessions') . ".session_id=" . table('participate_at') . ".session_id\n\t\t\tAND " . table('sessions') . ".experiment_id = " . table('experiments') . ".experiment_id \n      \t\tAND session_status='live' AND reminder_sent = 'n' AND reminder_checked='n' \n\t\t\tGROUP BY " . table('participate_at') . ".session_id";
    $result = or_query($query);
    $mess = "";
    while ($line = pdo_fetch_assoc($result)) {
        // is due?
        if (sessions__get_reminder_time($line) < $now && ortime__sesstime_to_unixtime($line['session_start']) > $now) {
            // ok: and now what to do?
            $number = -1;
            $done = false;
            $disclaimer = "";
            switch ($line['send_reminder_on']) {
                case '0':
                case 'enough_participants_needed_plus_reserve':
                    if ($line['num_reg'] >= $line['part_needed'] + $line['part_reserve']) {
                        $number = experimentmail__send_session_reminders_to_queue($line);
                        $done = experimentmail__send_reminder_notice($line, $number, true);
                    } else {
                        $done = experimentmail__send_reminder_notice($line, $number, false, 'part_reserve');
                    }
                    break;
                case '1':
                case 'enough_participants_needed':
                    if ($line['num_reg'] >= $line['part_needed']) {
                        $number = experimentmail__send_session_reminders_to_queue($line);
                        $done = experimentmail__send_reminder_notice($line, $number, true);
                    } else {
                        $disclaimer = lang('reminder_not_sent_part_needed');
                        $done = experimentmail__send_reminder_notice($line, $number, false, 'part_needed');
                    }
                    break;
                case '2':
                case 'in_any_case_dont_ask':
                    $number = experimentmail__send_session_reminders_to_queue($line);
                    $done = experimentmail__send_reminder_notice($line, $number, true);
                    break;
                default:
                    // nothing
            }
            $done2 = experimentmail__set_reminder_checked($line['session_id']);
            $mess .= "found session " . session__build_name($line, $settings['admin_standard_language']) . "\n";
            if ($number >= 0) {
                $mess .= "send " . $number . " mails to mail queue\n";
            }
            if ($disclaimer) {
                $mess .= $disclaimer . "\n";
            }
            if ($done) {
                $mess .= "sent notice to experimenter\n";
            }
        }
    }
    return $mess;
}
Esempio n. 2
0
    if (isset($_REQUEST['betternot']) && $_REQUEST['betternot']) {
        redirect('admin/experiment_participants_show.php?experiment_id=' . $session['experiment_id'] . '&session_id=' . $session_id);
    }
}
if ($proceed) {
    if (isset($_REQUEST['reallysend']) && $_REQUEST['reallysend']) {
        $reallysend = true;
    } else {
        $reallysend = false;
    }
    $allow = check_allow('session_send_reminder', 'experiment_participants_show.php?experiment_id=' . $session['experiment_id'] . '&session_id=' . $session_id);
}
if ($proceed) {
    if ($reallysend) {
        // send it out to mail queue
        $number = experimentmail__send_session_reminders_to_queue($session);
        message($number . ' ' . lang('xxx_session_reminder_emails_sent_out'));
        log__admin("session_send_reminder", "session:" . session__build_name($session, $settings['admin_standard_language']) . "\nsession_id:" . $session_id);
        redirect('admin/experiment_participants_show.php?experiment_id=' . $session['experiment_id'] . '&session_id=' . $session_id);
    }
}
if ($proceed) {
    // form
    echo '  <CENTER>
        <TABLE class="or_formtable">
            <TR><TD colspan="2">
                <TABLE width="100%" border=0 class="or_panel_title"><TR>
                                <TD style="background: ' . $color['panel_title_background'] . '; color: ' . $color['panel_title_textcolor'] . '">
                                    ' . lang('session_reminder_send') . ' ' . session__build_name($session) . '
                                </TD>
                </TR></TABLE>