$reallydelete = false; } $allow = check_allow('subjectpool_delete', 'subpool_edit.php?subpool_id=' . $subpool_id); } if ($proceed) { // load languages $languages = get_languages(); $exptypes = load_external_experiment_types(); // load subject pool $subpool = orsee_db_load_array("subpools", $subpool_id, "subpool_id"); if (!isset($subpool['subpool_id'])) { redirect("admin/subpool_main.php"); } } if ($proceed) { $exptype_ids = db_string_to_id_array($subpool['experiment_types']); $subpool['exptypes'] = array(); foreach ($exptype_ids as $exptype_id) { $subpool['exptypes'][] = $exptypes[$exptype_id][lang('lang')]; } unset($subpool['experiment_types']); $pars = array(':subpool_id' => $subpool_id); $query = "SELECT * from " . table('lang') . " WHERE content_type='subjectpool' AND content_name= :subpool_id"; $selfdesc = orsee_query($query, $pars); foreach ($languages as $language) { $subpool['selfdesc_' . $language] = $selfdesc[$language]; } echo '<center>'; if ($reallydelete) { if (isset($_REQUEST['merge_with']) && $_REQUEST['merge_with']) { $merge_with = $_REQUEST['merge_with'];
function stats__get_data($condition = array(), $type = 'stats', $restrict = array(), $options = array()) { global $settings; $conditions = array(); $pars = array(); if (is_array($condition) && count($condition) > 0) { $conditions[] = $condition['clause']; if (isset($condition['pars']) && is_array($condition['pars'])) { foreach ($condition['pars'] as $k => $v) { $pars[$k] = $v; } } } $formfields = participantform__load(); $pform_fields = array(); $pform_types = array(); foreach ($formfields as $f) { if (!preg_match("/(textline|textarea)/i", $f['type']) && isset($f['include_in_statistics']) && ($f['include_in_statistics'] == 'pie' || $f['include_in_statistics'] == 'bars')) { $pform_fields[] = $f['mysql_column_name']; $pform_types[$f['mysql_column_name']] = $f; } } $statfields = array('subpool_id', 'subscriptions', 'status_id'); foreach ($pform_fields as $field) { if (!in_array($field, $statfields)) { $statfields[] = $field; } } if ($type == 'stats' && $settings['enable_rules_signed_tracking'] == 'y') { if (!in_array('rules_signed', $statfields)) { $statfields[] = 'rules_signed'; } } else { $exists = array_search('rules_signed', $statfields); if ($exists) { unset($statfields[$exists]); } } if ($type == 'stats') { foreach (array('number_reg', 'number_noshowup', 'last_enrolment', 'last_profile_update', 'last_activity') as $field) { if (!in_array($field, $statfields)) { $statfields[] = $field; } } } $query = "SELECT * from " . table('participants'); $query_conditions = ""; if (count($conditions) > 0) { $query_conditions .= " WHERE"; $cond_strings = array(); foreach ($conditions as $cond) { $cond_strings[] = "(" . $cond . ")"; } $query_conditions .= " " . implode(" AND ", $cond_strings); } $query .= $query_conditions; $result = or_query($query, $pars); $counts = array(); $pids = array(); while ($line = pdo_fetch_assoc($result)) { // check whether we should count this participant and (for monthly stats) use this value $p_restrict = false; foreach ($statfields as $c) { $value = $line[$c]; if (in_array($c, array('last_enrolment', 'last_profile_update', 'last_activity'))) { if (!$value) { $value = 0; } if ($value == 0) { $value = '-'; } else { $value = date('Ym', $value); } } $value = db_string_to_id_array($value); if (count($value) > 0) { $this_restrict = true; foreach ($value as $v) { if (!isset($restrict[$c][$v])) { $this_restrict = false; } } if ($this_restrict) { $p_restrict = true; } } else { $value = '-'; if (isset($restrict[$c][$value])) { $p_restrict = true; } } } if (!$p_restrict) { $pids[] = $line['participant_id']; foreach ($statfields as $c) { $value = $line[$c]; $continue = true; if (in_array($c, array('last_enrolment', 'last_profile_update', 'last_activity'))) { if (!$value) { $value = 0; } if (date('Ym', $value) < date('Ym', strtotime("-" . $settings['stats_months_backward'] . " month", time()))) { $continue = false; } if ($value == 0) { $value = '-'; } else { $value = date('Ym', $value); } } if ($continue) { $value = db_string_to_id_array($value); if (count($value) > 0) { foreach ($value as $v) { if (!isset($counts[$c][$v])) { $counts[$c][$v] = 0; } $counts[$c][$v]++; } } else { $value = '-'; if (!isset($counts[$c][$value])) { $counts[$c][$value] = 0; } $counts[$c][$value]++; } } } } } $count_pids = count($pids); $pid_condition = ""; if (count($restrict) > 0) { $pid_condition = " AND participant_id IN (" . implode(", ", $pids) . ") "; } elseif (count($conditions) == 1 && isset($options['condition_only_on_pid']) && $options['condition_only_on_pid']) { $pid_condition = " AND " . $condition['clause'] . " "; } elseif ($query_conditions) { $pid_condition = " AND participant_id IN (SELECT participant_id FROM " . table('participants') . " " . $query_conditions . ") "; } // avg. experience (participation in experiments of class x, y, z at time of experiment) $statfields[] = 'experience_avg_experimentclass'; if ($count_pids > 0) { $participated_clause = expregister__get_pstatus_query_snippet("participated"); $query = "SELECT count(*) as num, experiment_class\n FROM " . table('participate_at') . " as p, " . table('experiments') . " as e\n WHERE p.session_id>0 " . $pid_condition . "\n AND e.experiment_id=p.experiment_id\n AND e.experiment_class !=''\n AND " . $participated_clause . " "; if (is_array($options) && isset($options['upper_experience_limit'])) { $query .= " AND session_id IN (SELECT session_id FROM " . table('sessions') . "\n WHERE session_start < " . ortime__unixtime_to_sesstime($options['upper_experience_limit']) . "\n AND session_status IN ('completed','balanced') ) "; } $query .= "GROUP BY experiment_class"; $result = or_query($query, $pars); while ($line = pdo_fetch_assoc($result)) { $line['experiment_class'] = db_string_to_id_array($line['experiment_class']); foreach ($line['experiment_class'] as $v) { if ($v > 0) { if (!isset($counts['experience_avg_experimentclass'][$v])) { $counts['experience_avg_experimentclass'][$v] = 0; } $counts['experience_avg_experimentclass'][$v] += round($line['num'] / $count_pids, 2); } } } } if ($type == 'report') { // avg. count pstatus at time of experiment) $statfields[] = 'experience_avg_pstatus'; } if ($count_pids > 0 && $type == 'report') { $query = "SELECT count(*) as num, pstatus_id\n FROM " . table('participate_at') . "\n WHERE session_id>0 " . $pid_condition; if (is_array($options) && isset($options['upper_experience_limit'])) { $query .= " AND session_id IN (SELECT session_id FROM " . table('sessions') . "\n WHERE session_start < " . ortime__unixtime_to_sesstime($options['upper_experience_limit']) . "\n AND session_status IN ('completed','balanced') ) "; } $query .= "GROUP BY pstatus_id"; $result = or_query($query, $pars); while ($line = pdo_fetch_assoc($result)) { $counts['experience_avg_pstatus'][$line['pstatus_id']] = round($line['num'] / $count_pids, 2); } } if ($type == 'stats') { // by pstatus: pstatus count // really needed? we have no_noshows, num_reg ... // by month: pstatus $statfields[] = 'bymonth_pstatus'; $statfields[] = 'bymonth_noshowrate'; } if ($count_pids > 0 && $type == 'stats') { $first_month = date('Ym000000', strtotime("-" . $settings['stats_months_backward'] . " month", time())); $noshow_statuses = expregister__get_specific_pstatuses("noshow"); $query = "SELECT date_format(s.session_start*100,'%Y%m') as sessionmonth,\n pstatus_id, count(p.participate_id) as num\n FROM " . table('participate_at') . " as p, " . table('sessions') . " as s\n WHERE p.session_id>0\n AND p.session_id=s.session_id\n AND s.session_status IN ('completed','balanced')\n AND s.session_start>" . $first_month . " " . $pid_condition . "\n GROUP BY sessionmonth, pstatus_id\n ORDER BY sessionmonth, pstatus_id "; $result = or_query($query, $pars); $noshowperc_data = array(); while ($line = pdo_fetch_assoc($result)) { $counts['bymonth_pstatus_' . $line['pstatus_id']][$line['sessionmonth']] = $line['num']; if (!isset($noshowperc_data[$line['sessionmonth']]['n'])) { $noshowperc_data[$line['sessionmonth']]['n'] = 0; } if (!isset($noshowperc_data[$line['sessionmonth']]['y'])) { $noshowperc_data[$line['sessionmonth']]['y'] = 0; } if (in_array($line['pstatus_id'], $noshow_statuses)) { $noshowperc_data[$line['sessionmonth']]['n'] += $line['num']; } else { $noshowperc_data[$line['sessionmonth']]['y'] += $line['num']; } } // get the noshow percentages as well foreach ($noshowperc_data as $month => $shownup) { $counts['bymonth_noshowrate'][$month] = round($shownup['n'] / ($shownup['n'] + $shownup['y']) * 100, 1); } } $xnames = array('number_reg' => lang('experience'), 'number_noshowup' => lang('noshowup'), 'pstatus' => lang('month'), 'experience_avg_experimentclass' => lang('experiment_classes'), 'experience_avg_pstatus' => lang('participation_status')); $titles = array('number_reg' => lang('experience'), 'number_noshowup' => lang('noshows_by_count'), 'last_enrolment' => lang('last_enrolment'), 'last_profile_update' => lang('last_profile_update'), 'last_activity' => lang('last_activity'), 'bymonth_noshowrate' => lang('noshows_by_month'), 'experience_avg_experimentclass' => lang('experience_in_experiment_classes'), 'experience_avg_pstatus' => lang('average_participation_experience')); // prepare all-containing arrray to return $data_temparray = array(); foreach ($counts as $c => $nums) { $d = array(); $d['N'] = $count_pids; if (isset($pform_types[$c])) { $d['browsable'] = true; $d['charttype'] = $pform_types[$c]['include_in_statistics']; $d['type_of_data'] = 'count'; $d['yname'] = lang('count'); $d['xname'] = lang($pform_types[$c]['name_lang']); $d['title'] = lang($pform_types[$c]['name_lang']); if (preg_match("/(select_lang|radioline_lang)/", $pform_types[$c]['type'])) { $d['value_names'] = lang__load_lang_cat($c, lang('lang')); } elseif (preg_match("/(radioline|select_list)/", $pform_types[$c]['type'])) { $optionvalues = explode(",", $pform_types[$c]['option_values']); $optionnames = explode(",", $pform_types[$c]['option_values_lang']); $d['value_names'] = array(); foreach ($optionvalues as $k => $v) { if (isset($optionnames[$k])) { $d['value_names'][$v] = lang($optionnames[$k]); } } } else { $d['value_names'] = array(); } // select numbers? if ($pform_types[$c]['type'] == 'select_numbers') { krsort($nums); } else { arsort($nums); } $d['data'] = $nums; $data_temparray[$c] = $d; } elseif (in_array($c, array('number_reg', 'number_noshowup'))) { $d['browsable'] = true; $d['charttype'] = 'bars'; if ($c == 'number_reg') { $d['wide'] = true; } $d['limit_not_apply'] = true; $d['type_of_data'] = 'count'; $d['yname'] = lang('count'); $d['xname'] = $xnames[$c]; $d['title'] = $titles[$c]; $d['value_names'] = array(); krsort($nums); $d['data'] = $nums; $data_temparray[$c] = $d; } elseif (in_array($c, array('experience_avg_experimentclass', 'experience_avg_pstatus'))) { $d['charttype'] = 'pie'; $d['type_of_data'] = 'calc'; $d['yname'] = lang('average_count'); $d['xname'] = $xnames[$c]; $d['title'] = $titles[$c]; $d['value_names'] = array(); if ($c == 'experience_avg_experimentclass') { $d['value_names'] = experiment__load_experimentclassnames(); } else { $pstatuses = expregister__get_participation_statuses(); foreach ($pstatuses as $k => $s) { $d['value_names'][$k] = $s['internal_name']; } } arsort($nums); $d['data'] = $nums; $data_temparray[$c] = $d; } elseif ($c == 'rules_signed') { $d['browsable'] = true; $d['charttype'] = 'pie'; $d['type_of_data'] = 'count'; $d['yname'] = lang('count'); $d['xname'] = lang('rules_signed'); $d['title'] = lang('rules_signed'); $d['value_names'] = array('n' => lang('n'), 'y' => lang('y')); arsort($nums); $d['data'] = $nums; $data_temparray[$c] = $d; } elseif ($c == 'subpool_id') { $d['browsable'] = true; $d['charttype'] = 'pie'; $d['type_of_data'] = 'count'; $d['yname'] = lang('count'); $d['xname'] = lang('subpool'); $d['title'] = lang('subpool'); $subpools = subpools__get_subpools(); $d['value_names'] = array(); foreach ($subpools as $k => $p) { $d['value_names'][$k] = $p['subpool_name']; } arsort($nums); $d['data'] = $nums; $data_temparray[$c] = $d; } elseif ($c == 'status_id') { $d['browsable'] = true; $d['charttype'] = 'pie'; $d['type_of_data'] = 'count'; $d['yname'] = lang('count'); $d['xname'] = lang('participant_status'); $d['title'] = lang('participant_statuses'); $statuses = participant_status__get_statuses(); $d['value_names'] = array(); foreach ($statuses as $k => $p) { $d['value_names'][$k] = $p['name']; } krsort($nums); $d['data'] = $nums; $data_temparray[$c] = $d; } elseif ($c == 'subscriptions') { $d['browsable'] = true; $d['charttype'] = 'none'; $d['type_of_data'] = 'count'; $d['yname'] = lang('count'); $d['xname'] = lang('subscriptions'); $d['title'] = lang('subscriptions'); $exptypes = load_external_experiment_types("", false); $d['value_names'] = array(); foreach ($exptypes as $k => $p) { $d['value_names'][$k] = $p[lang('lang')]; } krsort($nums); $d['data'] = $nums; $data_temparray[$c] = $d; } elseif (in_array($c, array('last_enrolment', 'last_profile_update', 'last_activity', 'bymonth_noshowrate'))) { $d['charttype'] = 'bars'; $d['wide'] = true; if ($c == 'bymonth_noshowrate') { $d['yname'] = lang('share_in_percent'); $d['type_of_data'] = 'calc'; } else { $d['yname'] = lang('count'); $d['type_of_data'] = 'count'; } $d['xname'] = lang('month'); $d['title'] = $titles[$c]; foreach ($nums as $k => $number) { if ($k == '-') { $d['value_names'][$k] = $k; } else { $d['value_names'][$k] = substr($k, 4, 2) . '/' . substr($k, 2, 2); } } krsort($nums); $d['data'] = $nums; $data_temparray[$c] = $d; } elseif (preg_match('/^bymonth_pstatus/', $c)) { $tarr = explode("_", $c); $status = $tarr[2]; if (!isset($data_temparray['bymonth_pstatus'])) { $pstatuses = expregister__get_participation_statuses(); $d['charttype'] = 'multibars'; $d['wide'] = true; $d['type_of_data'] = 'count'; $d['yname'] = lang('count'); $d['xname'] = lang('month'); $d['title'] = lang('participation_status_count_by_month'); $d['value_names'] = array(); $d['column_names'] = array(); foreach ($pstatuses as $k => $s) { $d['column_names'][$k] = $s['internal_name']; } $data_temparray['bymonth_pstatus'] = $d; } krsort($nums); $data_temparray['bymonth_pstatus']['data'][$status] = $nums; $d['value_names'] = array(); foreach ($data_temparray['bymonth_pstatus']['data'] as $status => $months) { foreach ($months as $month => $count) { $d['value_names'][$month] = $month; } } krsort($d['value_names']); foreach ($d['value_names'] as $k => $v) { $d['value_names'][$k] = substr($v, 4, 2) . '/' . substr($v, 2, 2); } $data_temparray['bymonth_pstatus']['value_names'] = $d['value_names']; } } // prepare all-containing array to return $data_array = array(); foreach ($statfields as $c) { if (isset($data_temparray[$c]['data'])) { $data_temparray[$c]['name'] = $c; $data_array[$c] = $data_temparray[$c]; } else { $data_array[$c] = array('name' => $c, 'N' => 0, 'data' => array()); } } return $data_array; }
} } else { $experiment_id = 0; } } if ($proceed) { if ($experiment_id > 0) { $experiment = orsee_db_load_array("experiments", $experiment_id, "experiment_id"); if (!isset($experiment['experiment_id'])) { $experiment_id = 0; } } } if ($proceed) { if ($experiment_id > 0) { $experimenters = db_string_to_id_array($experiment['experimenter']); if (!(in_array($expadmindata['admin_id'], $experimenters) && check_allow('file_download_experiment_my') || check_allow('file_download_experiment_all'))) { redirect('admin/experiment_show.php?experiment_id=' . $experiment_id); } } else { $allow = check_allow('file_download_general', 'download_main.php'); } } if ($proceed) { // load file specification $filedata = orsee_db_load_array("uploads_data", $upload_id, "upload_id"); // mime type $mime_type = $upload['upload_mimetype']; if (!$mime_type) { $mime_type = downloads__mime_type($upload['upload_suffix']); }
} else { $show_payment_budgets = false; } if ($show_payment_budgets) { echo '<TR> <TD valign="top">' . lang('possible_budgets') . '</TD> <TD>'; echo payments__budget_multiselectfield("payment_budgets", db_string_to_id_array($edit['payment_budgets'])); echo '</TD> </TR>'; } if ($show_payment_types) { echo '<TR> <TD valign="top">' . lang('possible_payment_types') . '</TD> <TD>'; echo payments__paytype_multiselectfield("payment_types", db_string_to_id_array($edit['payment_types'])); echo '<BR></TD> </TR>'; } } echo ' <TR> <TD> ' . lang('session_status') . ' </TD> <TD> <TABLE border=0><TR><TD style="outline: 1px dashed red;">' . session__session_status_select('session_status', $edit['session_status']) . '</TD></TR></TABLE> </TD> </TR> <TR> <TD COLSPAN=2 align="center"><BR>
' . participants__count_participants() . ' ' . lang('xxx_participants_registered') . '. </TD> </TR></TABLE> </TD></TR> <TR> <TD> </TD> <TD><center> <TABLE border=1 style="border-collapse: collapse; border: 1px solid #AAA;">'; $exptypes = load_external_experiment_types(); $pstatuses = participant_status__get_statuses(); $query = "SELECT count(*) as num_part, subscriptions, status_id\n FROM " . table('participants') . "\n GROUP BY subscriptions, status_id"; $result = or_query($query); $part_nums = array(); while ($line = pdo_fetch_assoc($result)) { $etemp = db_string_to_id_array($line['subscriptions']); foreach ($etemp as $et) { if (!isset($part_nums[$et][$line['status_id']])) { $part_nums[$et][$line['status_id']] = 0; } $part_nums[$et][$line['status_id']] = $part_nums[$et][$line['status_id']] + $line['num_part']; } } echo '<TR><TD colspan=2></TD><TD colspan="' . count($pstatuses) . '"><B>' . lang('participant_status') . '</B></TD></TR>'; echo '<TR><TD colspan=2></TD>'; foreach ($pstatuses as $status_id => $status) { echo '<TD align="right">' . $status['name'] . ' </TD>'; } $first = true; foreach ($exptypes as $exptype_id => $exptype) { echo '<TR>';
function payments__get_default_budget($experiment = array(), $session = array()) { $continue = true; if ($continue) { if (is_array($session) && isset($session['payment_budgets'])) { $budgets = db_string_to_id_array($session['payment_budgets']); if (count($budgets) > 0) { $continue = false; return $budgets[0]; } } } if ($continue) { if (is_array($experiment) && isset($experiment['payment_budgets'])) { $budgets = db_string_to_id_array($experiment['payment_budgets']); if (count($budgets) > 0) { $continue = false; return $budgets[0]; } } } if ($continue) { $budgets = payments__load_budgets(true); ksort($budgets); $first = true; foreach ($budgets as $k => $budget) { if ($first) { return $k; $first = false; } } } if ($continue) { $query = "SELECT * FROM " . table('budgets') . " \n\t\t\t\tORDER BY budget_id\n\t\t\t\tLIMIT 1"; $result = or_query($query); $line = pdo_fetch_assoc($result); return $line['budget_id']; } }
function email__is_allowed($email, $experiment, $priv = 'read') { global $settings, $expadmindata; $return = false; $continue = true; if ($settings['enable_email_module'] == 'y') { if (check_allow('emails_' . $priv . '_all')) { $return = true; $continue = false; } if ($continue && check_allow('emails_' . $priv . '_experiments') && $email['experiment_id']) { if (!isset($experiment['experiment_id'])) { $experiment = orsee_db_load_array("experiments", $email['experiment_id'], "experiment_id"); } $experimenters = db_string_to_id_array($experiment['experimenter']); if (in_array($expadmindata['admin_id'], $experimenters)) { $return = true; $continue = false; } } if ($continue && $settings['email_module_allow_assign_emails'] == 'y' && check_allow('emails_' . $priv . '_assigned')) { $assigned_to = db_string_to_id_array($experiment['assigned_to']); if (in_array($expadmindata['admin_id'], $assigned_to)) { $return = true; $continue = false; } } } return $return; }
echo ' <TR> <TD valign="top"> ' . lang('budget_limit') . ': </TD> <TD> <INPUT name="budget_limit" type=text size=40 maxlength=200 value="' . $budget['budget_limit'] . '"> </TD> </TR>'; echo ' <TR> <TD valign="top"> ' . lang('experimenter') . ': </TD> <TD>'; echo experiment__experimenters_select_field('experimenter', db_string_to_id_array($budget['experimenter']), true); echo ' </TD> </TR>'; echo '<TR> <TD> ' . lang('enabled?') . ' </TD> <TD> <INPUT type=radio name="enabled" value="1"'; if ($budget['enabled']) { echo ' CHECKED'; } echo '>' . lang('yes') . ' <INPUT type=radio name="enabled" value="0"'; if (!$budget['enabled']) {
function downloads__list_files_experiment($experiment_id, $showsize = false, $showtype = false, $showdate = false) { global $lang, $color, $expadmindata; $out = ''; $continue = true; if ($continue) { $experiment = orsee_db_load_array("experiments", $experiment_id, "experiment_id"); if (!isset($experiment['experiment_id'])) { $continue = false; } } if ($continue) { $experimenters = db_string_to_id_array($experiment['experimenter']); if (!(in_array($expadmindata['admin_id'], $experimenters) && check_allow('file_view_experiment_my') || check_allow('file_view_experiment_all'))) { $continue = false; } } if ($continue) { if (check_allow('file_download_experiment_all')) { $allow_dl = true; } elseif (in_array($expadmindata['admin_id'], $experimenters) && check_allow('file_download_experiment_my')) { $allow_dl = true; } else { $allow_dl = false; } if (check_allow('file_delete_experiment_all')) { $allow_delete = true; } elseif (in_array($expadmindata['admin_id'], $experimenters) && check_allow('file_delete_experiment_my')) { $allow_delete = true; } else { $allow_delete = false; } if (check_allow('file_edit_experiment_all')) { $allow_edit = true; } elseif (in_array($expadmindata['admin_id'], $experimenters) && check_allow('file_edit_experiment_my')) { $allow_edit = true; } else { $allow_edit = false; } $query = "SELECT " . table('uploads') . ".*, " . table('sessions') . ".session_start\n FROM " . table('uploads') . " LEFT JOIN " . table('sessions') . "\n ON " . table('uploads') . ".session_id = " . table('sessions') . ".session_id\n WHERE " . table('uploads') . ".experiment_id= :experiment_id\n ORDER BY session_start, upload_type, upload_name, upload_id"; $pars = array(':experiment_id' => $experiment_id); $result = or_query($query, $pars); if (pdo_num_rows($result) > 0) { $shade = true; $categories = lang__load_lang_cat('file_upload_category'); $uptype = -1; $tsession_id = -1; $cols = 3; if ($showsize) { $cols++; } if ($showtype) { $cols++; } if ($showdate) { $cols++; } if ($allow_edit) { $cols++; } if ($allow_delete) { $cols++; } $out .= '<TABLE width="100%" border=0 cellspacing="0">'; while ($upload = pdo_fetch_assoc($result)) { if ($shade) { $bgcolor = ' bgcolor="' . $color['list_shade1'] . '"'; $shade = false; } else { $bgcolor = ' bgcolor="' . $color['list_shade2'] . '"'; $shade = true; } if ($upload['session_id'] != $tsession_id) { $tsession_id = $upload['session_id']; $uptype = 0; $out .= '<TR bgcolor="' . $color['list_shade_subtitle'] . '"> <TD colspan=' . $cols . '>'; if ($upload['session_id'] > 0) { $out .= '<i>' . lang('session') . ' ' . ortime__format(ortime__sesstime_to_unixtime($upload['session_start'])) . '</i>'; } else { $out .= '<i>' . lang('no_session') . '</i>'; } $out .= '</TD></TR>'; } if ($upload['upload_type'] != $uptype) { $uptype = $upload['upload_type']; $out .= '<TR bgcolor="' . $color['list_shade_subtitle'] . '"> <TD> </TD> <TD colspan=' . ($cols - 1) . '>'; if (isset($categories[$uptype])) { $out .= $categories[$uptype]; } else { $out .= '???'; } $out .= '</TD></TR>'; } $out .= '<TR' . $bgcolor . '><TD> </TD><TD>'; if ($allow_dl) { $out .= '<A HREF="download_file.php' . '/' . rawurlencode($upload['upload_name'] . '.' . $upload['upload_suffix']) . '?t=d&i=' . $upload['upload_id'] . '">'; } $out .= $upload['upload_name']; if ($allow_dl) { $out .= '</A>'; } $out .= '</TD>'; if ($showsize) { $out .= '<TD>' . number_format(round($upload['upload_filesize'] / 1024), 0) . ' KB</TD>'; } if ($showtype) { $out .= '<TD>' . $upload['upload_suffix'] . '</TD>'; } if ($showdate) { $out .= '<TD>' . ortime__format($upload['upload_id'], '', lang('lang')) . '</TD>'; } if ($allow_edit) { $out .= ' <TD>'; $out .= ' <A HREF="download_edit.php?file=' . $upload['upload_id'] . '"><FONT class="small">[' . lang('edit') . ']</FONT></A>'; $out .= ' </TD>'; } if ($allow_delete) { $out .= ' <TD>'; $out .= ' <A HREF="download_delete.php?dl=' . $upload['upload_id'] . '"><FONT class="small">[' . lang('delete') . ']</FONT></A>'; $out .= ' </TD>'; } $out .= '</TR>'; } $out .= '</TABLE>'; } } return $out; }
} } if (!in_array($merge_with, $ids)) { $ids[] = $merge_with; } $upars[] = array(':session_id' => $line['session_id'], ':payment_budgets' => id_array_to_db_string($ids)); } $query = "UPDATE " . table('sessions') . " \n\t\t\t\t\tSET payment_budgets= :payment_budgets \n\t\t\t\t\tWHERE session_id= :session_id"; $done = or_query($query, $upars); // update experiments $upars = array(); $pars = array(':payment_budget' => '%|' . $budget_id . '|%'); $query = "SELECT experiment_id, payment_budgets\n\t\t\t\t\tFROM " . table('experiments') . "\n\t\t\t\t\tWHERE payment_budgets LIKE :payment_budget"; $result = or_query($query, $pars); while ($line = pdo_fetch_assoc($result)) { $ids = db_string_to_id_array($line['payment_budgets']); foreach ($ids as $k => $v) { if ($v == $budget_id) { unset($ids[$k]); } } if (!in_array($merge_with, $ids)) { $ids[] = $merge_with; } $upars[] = array(':experiment_id' => $line['experiment_id'], ':payment_budgets' => id_array_to_db_string($ids)); } $query = "UPDATE " . table('experiments') . " \n\t\t\t\t\tSET payment_budgets= :payment_budgets \n\t\t\t\t\tWHERE experiment_id= :experiment_id"; $done = or_query($query, $upars); // delete from budgets $pars = array(':budget_id' => $budget_id); $query = "DELETE FROM " . table('budgets') . " \n\t\t\t\t\tWHERE budget_id= :budget_id";
$session = orsee_db_load_array("sessions", $session_id, "session_id"); if (!isset($session['session_id'])) { redirect("admin/experiment_show.php?experiment_id=" . $experiment_id); } } } if ($proceed) { if ($session_id && $settings['enable_payment_module'] == 'y' && (check_allow('payments_view') || check_allow('payments_edit'))) { $thislist_avail_payment_types = db_string_to_id_array($session['payment_types']); if (is_array($thislist_avail_payment_types) && count($thislist_avail_payment_types) > 1) { $show_payment_types = true; } else { $show_payment_types = false; $default_payment_type = payments__get_default_paytype($experiment, $session); } $thislist_avail_payment_budgets = db_string_to_id_array($session['payment_budgets']); if (is_array($thislist_avail_payment_budgets) && count($thislist_avail_payment_budgets) > 1) { $show_payment_budgets = true; } else { $show_payment_budgets = false; $default_payment_budget = payments__get_default_budget($experiment, $session); } } if (isset($_REQUEST['change']) && $_REQUEST['change']) { $allow = check_allow('experiment_edit_participants', 'experiment_participants_show.php' . $thiscgis); if ($proceed) { if ($display == 'enrol') { $continue = true; if ($_REQUEST['to_session']) { $to_session = $_REQUEST['to_session']; } else {
function experimentmail__send_registration_notice($line) { global $settings; $reg = experiment__count_participate_at($line['experiment_id'], $line['session_id']); $experimenters = db_string_to_id_array($line['experimenter_mail']); foreach ($experimenters as $experimenter) { $admin = orsee_db_load_array("admin", $experimenter, "admin_id"); if (isset($admin['admin_id'])) { $tlang = $admin['language'] ? $admin['language'] : $settings['admin_standard_language']; $lang = load_language($tlang); $admin['session_name'] = session__build_name($line, $tlang); $admin['experiment_name'] = $line['experiment_name']; $admin['registered'] = $reg; $admin['status'] = session__get_status($line, $tlang, $reg); $admin['needed'] = $line['part_needed']; $admin['reserve'] = $line['part_reserve']; $subject = load_language_symbol('subject_for_registration_notice', $tlang); $subject .= ' ' . $admin['experiment_name'] . ', ' . $admin['session_name']; $recipient = $admin['email']; $mailtext = load_mail("admin_registration_notice", $tlang) . "\n" . experimentmail__get_admin_footer($tlang, $admin) . "\n"; $message = process_mail_template($mailtext, $admin); $now = time(); $list_name = lang('participant_list_filename') . ' ' . date("Y-m-d", $now); $list_filename = str_replace(" ", "_", $list_name) . ".pdf"; $list_file = pdfoutput__make_part_list($line['experiment_id'], $line['session_id'], 'registered', 'lname,fname', true, $tlang); $done = experimentmail__mail_attach($recipient, $settings['support_mail'], $subject, $message, $list_filename, $list_file); } } // update session table : reg_notice_sent $pars = array(':session_id' => $line['session_id']); $query = "UPDATE " . table('sessions') . " SET reg_notice_sent='y' WHERE session_id= :session_id "; $done2 = or_query($query, $pars); return $done; }
function participant__get_result_table_row_pdf($columns, $p) { global $settings, $color; global $thislist_sessions; $pform_columns = participant__load_all_pform_fields(); $row = array(); foreach ($columns as $k => $arr) { switch ($k) { case 'number_noshowup': $row[] = $p['number_noshowup'] . '/' . $p['number_reg']; break; case 'rules_signed': if ($settings['enable_rules_signed_tracking'] == 'y') { $row[] = $p['rules_signed'] != 'y' ? "X" : ''; } break; case 'subscriptions': $exptypes = load_external_experiment_types(); $inv_arr = db_string_to_id_array($p[$k]); $inv_names = array(); foreach ($inv_arr as $inv) { if (isset($exptypes[$inv]['exptype_name'])) { $inv_names[] = $exptypes[$inv]['exptype_name']; } else { $inv_names[] = 'undefined'; } } $row[] = implode(", ", $inv_names); break; case 'subpool_id': $subpools = subpools__get_subpools(); $subpool_name = isset($subpools[$p[$k]]['subpool_name']) ? $subpools[$p[$k]]['subpool_name'] : $p[$k]; $row[] = $subpool_name; break; case 'status_id': $participant_statuses = participant_status__get_statuses(); $pstatus_name = isset($participant_statuses[$p[$k]]['name']) ? $participant_statuses[$p[$k]]['name'] : $p[$k]; $row[] = $pstatus_name; break; case 'creation_time': case 'deletion_time': case 'last_enrolment': case 'last_profile_update': case 'last_activity': case 'last_login_attempt': if ($p[$k]) { $row[] = ortime__format($p[$k], 'hide_second:false'); } else { $row[] = '-'; } break; case 'session_id': $row[] = session__build_name($thislist_sessions[$p['session_id']]); break; case 'payment_budget': if ($settings['enable_payment_module'] == 'y' && check_allow('payments_view')) { $payment_budgets = payments__load_budgets(); if (isset($payment_budgets[$p['payment_budget']])) { $row[] = $payment_budgets[$p['payment_budget']]['budget_name']; } else { $row[] = '-'; } } break; case 'payment_type': if ($settings['enable_payment_module'] == 'y' && check_allow('payments_view')) { $payment_types = payments__load_paytypes(); if (isset($payment_types[$p['payment_type']])) { $row[] = $payment_types[$p['payment_type']]; } else { $row[] = '-'; } } break; case 'payment_amount': if ($settings['enable_payment_module'] == 'y' && check_allow('payments_view')) { if ($p['payment_amt'] != '') { $row[] = $p['payment_amt']; } else { $row[] = '-'; } } break; case 'pstatus_id': $pstatuses = expregister__get_participation_statuses(); $row[] = $pstatuses[$p['pstatus_id']]['internal_name']; break; default: if (isset($pform_columns[$k])) { if (preg_match("/(radioline|select_list|select_lang|radioline_lang)/", $pform_columns[$k]['type'])) { if (isset($pform_columns[$k]['lang'][$p[$k]])) { $row[] = lang($pform_columns[$k]['lang'][$p[$k]]); } else { $row[] = $p[$k]; } } else { $row[] = $p[$k]; } } else { if (isset($p[$k])) { $row[] = $p[$k]; } else { $row[] = '???'; } } } } foreach ($row as $k => $v) { $row[$k] = str_replace(" ", " ", $v); } return $row; }
function experiment__experiment_class_field_to_list($experiment_class) { $experiment_class = db_string_to_id_array($experiment_class); $experimentclasses = experiment__load_experimentclassnames(); $out = array(); foreach ($experiment_class as $class) { if (isset($experimentclasses[$class])) { $out[] = $experimentclasses[$class]; } elseif ($class == '0') { $out[] = '-'; } else { $out[] = $class; } } return implode(", ", $out); }
echo '</TD> </TR>'; echo ' <TR><TD>' . lang('stop_date_and_time') . ':</TD> <TD>'; echo formhelpers__pick_date('event_stop', $edit['event_stop'], $settings['session_start_years_backward'], $settings['session_start_years_forward']); echo ' '; echo formhelpers__pick_time('event_stop', $edit['event_stop']); echo ' </TD> </TR>'; echo ' <TR> <TD>' . lang('experimenter') . ':</TD> <TD>'; if (!isset($_REQUEST['event_id']) || !$_REQUEST['event_id']) { $edit['experimenter'] = '|' . $expadmindata['admin_id'] . '|'; } echo experiment__experimenters_select_field("experimenter", db_string_to_id_array($edit['experimenter'])); echo ' </TD> </TR>'; echo ' <TR> <TD>' . lang('description') . ':</TD> <TD><INPUT type="text" name="reason" size=40 maxlength=200 value="' . $edit['reason'] . '"></TD> </TR>'; echo ' <TR> <TD>' . lang('labspace_public_description') . ':<BR> <FONT class="small">' . lang('labspace_public_description_note') . '</FONT></TD> <TD><INPUT type="text" name="reason_public" size=40 maxlength=200 value="' . $edit['reason_public'] . '"></TD> </TR>'; if ($settings['enable_event_participant_numbers'] == 'y') { echo ' <TR> <TD>' . lang('number_of_participants') . ':</TD> <TD><INPUT type="text" name="number_of_participants" size=5 maxlength=5 value="' . $edit['number_of_participants'] . '"></TD>