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'])) {
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>'; }