Exemple #1
0
        redirect('admin/index.php');
    }
}
if ($proceed) {
    if (check_allow('emails_read_all')) {
        $rmode = "all";
    } elseif (check_allow('emails_read_assigned')) {
        $rmode = "assigned";
    } elseif (check_allow('emails_read_experiments')) {
        $rmode = "experiments";
    } else {
        redirect('admin/index.php');
    }
}
if ($proceed) {
    $mailboxes = email__load_mailboxes();
    $continue = false;
    $id = false;
    if (isset($_REQUEST['mode']) && $_REQUEST['mode']) {
        $mode = $_REQUEST['mode'];
        if (in_array($mode, array('mailbox', 'experiment', 'session', 'participant'))) {
            if (isset($_REQUEST['id']) && $_REQUEST['id']) {
                $id = $_REQUEST['id'];
            }
            if ($mode == 'mailbox') {
                if (isset($mailboxes[$id])) {
                    $continue = true;
                }
            } elseif ($mode == 'experiment') {
                $experiment = orsee_db_load_array("experiments", $id, "experiment_id");
                if (isset($experiment['experiment_id'])) {
Exemple #2
0
function email__expsess_select($email, $session = array(), $experiment = array(), $participant = array())
{
    global $lang;
    if (isset($session['session_id'])) {
        $selected = $session['experiment_id'] . ',' . $session['session_id'];
    } elseif (isset($experiment['experiment_id'])) {
        $selected = $experiment['experiment_id'] . ',0';
    } elseif (!$email['mailbox']) {
        $selected = '0,0';
    } else {
        $selected = '';
    }
    $pars = array();
    $query = "SELECT " . table('experiments') . ".*, " . table('sessions') . ".*\n            FROM " . table('experiments') . " LEFT JOIN " . table('sessions') . "\n            ON " . table('experiments') . ".experiment_id=" . table('sessions') . ".experiment_id\n            WHERE (" . table('experiments') . ".experiment_finished='n')";
    if (isset($session['experiment_id'])) {
        $query .= " OR (" . table('experiments') . ".experiment_id= :experiment_id) ";
        $pars[':experiment_id'] = $session['experiment_id'];
    } elseif (isset($experiment['experiment_id'])) {
        $query .= " OR (" . table('experiments') . ".experiment_id= :experiment_id) ";
        $pars[':experiment_id'] = $experiment['experiment_id'];
    }
    if (isset($participant['participant_id'])) {
        $query .= " OR (" . table('experiments') . ".experiment_id IN (\n                    SELECT experiment_id FROM " . table('participate_at') . "\n                    WHERE participant_id= :participant_id) ) ";
        $pars[':participant_id'] = $participant['participant_id'];
    }
    $query .= "ORDER BY session_start DESC ";
    $result = or_query($query, $pars);
    $experiments = array();
    while ($e = pdo_fetch_assoc($result)) {
        if ($e['session_id'] == NULL) {
            $e['session_id'] = 0;
        }
        $experiments[$e['experiment_id']]['sessions'][$e['session_id']] = $e;
        $experiments[$e['experiment_id']]['experiment_name'] = $e['experiment_name'];
        if (!isset($experiments[$e['experiment_id']]['lastsesstime']) || $e['session_start'] > $experiments[$e['experiment_id']]['lastsesstime']) {
            $experiments[$e['experiment_id']]['lastsesstime'] = $e['session_start'];
        }
    }
    // now order experiments by the date of the last session of the experiment, DESC!
    foreach ($experiments as $id => $arr) {
        $experiments[$id]['lastsesstime_reversed'] = 0 - $arr['lastsesstime'];
    }
    multi_array_sort($experiments, 'lastsesstime_reversed');
    echo '<SELECT name="expsess"><OPTION value="0,0">' . lang('select_none') . '</OPTION>';
    // list special mail boxes
    $mailboxes = email__load_mailboxes();
    foreach ($mailboxes as $k => $mb) {
        if ($k != 'trash' && $k != 'not_assigned') {
            echo '<OPTION value="box,' . $k . '"';
            if ($email['mailbox'] == $k) {
                echo ' SELECTED';
            }
            echo '>' . $mb . '</OPTION>';
        }
    }
    foreach ($experiments as $exp_id => $texperiment) {
        echo '<OPTION value="' . $exp_id . ',0"';
        if ($selected == $exp_id . ',0') {
            echo ' SELECTED';
        }
        echo '>' . $texperiment['experiment_name'] . '</OPTION>' . "\n";
        foreach ($texperiment['sessions'] as $tsession) {
            if ($tsession['session_id'] > 0) {
                $tsess_name = ortime__format(ortime__sesstime_to_unixtime($tsession['session_start']));
                echo '<OPTION value="' . $tsession['experiment_id'] . ',' . $tsession['session_id'] . '"';
                if ($selected == $tsession['experiment_id'] . ',' . $tsession['session_id']) {
                    echo ' SELECTED';
                }
                echo '>' . $tsession['experiment_name'] . ' - ' . $tsess_name . '</OPTION>';
            }
        }
    }
    if (isset($session['session_id']) && !isset($experiments[$session['experiment_id']]['sessions'][$session['session_id']])) {
        echo '<OPTION value="' . $session['experiment_id'] . ',' . $session['session_id'] . '" SELECTED>' . $experiment['experiment_name'] . ' - ' . ortime__format(ortime__sesstime_to_unixtime($session['session_start'])) . '</OPTION>';
    } elseif (isset($experiment['experiment_id']) && !isset($experiments[$experiment['experiment_id']])) {
        echo '<OPTION value="' . $experiment['experiment_id'] . ',0" SELECTED>' . $experiment['experiment_name'] . '</OPTION>';
    }
    echo '</SELECT>';
}