Beispiel #1
0
function mailqueue__show_mailqueue($experiment_id = "", $limit = -1)
{
    global $lang, $color, $options, $proceed;
    if ($proceed) {
        $pars = array();
        if ($limit == -1 && $experiment_id && isset($options['mailqueue_experiment_number_of_entries_per_page']) && $options['mailqueue_experiment_number_of_entries_per_page']) {
            $limit = $options['mailqueue_experiment_number_of_entries_per_page'];
        } elseif ($limit == -1 && isset($options['mailqueue_number_of_entries_per_page']) && $options['mailqueue_number_of_entries_per_page']) {
            $limit = $options['mailqueue_number_of_entries_per_page'];
        } else {
            $limit = 100;
        }
        if (isset($_REQUEST['os']) && $_REQUEST['os'] > 0) {
            $offset = $_REQUEST['os'];
        } else {
            $offset = 0;
        }
        if ($experiment_id) {
            $equery = " AND experiment_id=:experiment_id ";
            $pars[':experiment_id'] = $experiment_id;
        } else {
            $equery = "";
        }
        if (isset($_REQUEST['deleteall']) && $_REQUEST['deleteall']) {
            $dall = true;
        } else {
            $dall = false;
        }
        if (isset($_REQUEST['deleteallonpage']) && $_REQUEST['deleteallonpage']) {
            $dallpage = true;
        } else {
            $dallpage = false;
        }
        if (isset($_REQUEST['deletesel']) && $_REQUEST['deletesel']) {
            $dsel = true;
        } else {
            $dsel = false;
        }
    }
    if ($proceed) {
        if ($dall || $dallpage || $dsel) {
            if ($experiment_id) {
                $allow = check_allow('mailqueue_edit_experiment', 'experiment_mailqueue_show?experiment_id=' . $experiment_id);
            } else {
                $allow = check_allow('mailqueue_edit_all', 'mailqueue_show.php');
            }
            $where_clause = " WHERE mail_id IS NOT NULL " . $equery;
            $ok = false;
            if ($dall) {
                $ok = true;
            }
            if ($dallpage) {
                $tallids = array();
                if (isset($_REQUEST['allids']) && trim($_REQUEST['allids'])) {
                    $tallids = explode(",", trim($_REQUEST['allids']));
                }
                if (count($tallids) > 0) {
                    $i = 0;
                    $parnames = array();
                    foreach ($tallids as $id) {
                        $i++;
                        $tparname = ':mailid' . $i;
                        $parnames[] = $tparname;
                        $pars[$tparname] = $id;
                    }
                    $where_clause .= " AND mail_id IN (" . implode(",", $parnames) . ") ";
                    $ok = true;
                } else {
                    message(lang('error__mailqueue_delete_no_emails_selected'));
                    $ok = false;
                }
            }
            if ($dsel) {
                $dids = array();
                if (isset($_REQUEST['del']) && is_array($_REQUEST['del'])) {
                    foreach ($_REQUEST['del'] as $k => $v) {
                        if ($v == 'y') {
                            $dids[] = $k;
                        }
                    }
                }
                if (count($dids) > 0) {
                    $i = 0;
                    $parnames = array();
                    foreach ($dids as $id) {
                        $i++;
                        $tparname = ':mailid' . $i;
                        $parnames[] = $tparname;
                        $pars[$tparname] = $id;
                    }
                    $where_clause .= " AND mail_id IN (" . implode(",", $parnames) . ") ";
                    $ok = true;
                } else {
                    message(lang('error__mailqueue_delete_no_emails_selected'));
                    $ok = false;
                }
            }
            if ($ok) {
                $query = "DELETE FROM " . table('mail_queue') . $where_clause;
                //echo $query;
                $done = or_query($query, $pars);
                $number = pdo_num_rows($done);
                message($number . ' ' . lang('xxx_emails_deleted_from_queue'));
                if ($experiment_id) {
                    if ($number > 0) {
                        log__admin("mailqueue_delete_entries", "Experiment: " . $experiment_id . ", Count: " . $number);
                    }
                } else {
                    if ($number > 0) {
                        log__admin("mailqueue_delete_entries", "Count: " . $number);
                    }
                }
            }
            if ($experiment_id) {
                redirect("admin/experiment_mailqueue_show.php?experiment_id=" . $experiment_id);
            } else {
                redirect("admin/mailqueue_show.php");
            }
        }
    }
    if ($proceed) {
        $pars = array();
        if ($experiment_id) {
            $equery = " AND experiment_id=:experiment_id ";
            $pars[':experiment_id'] = $experiment_id;
        } else {
            $equery = "";
        }
        $pars[':offset'] = $offset;
        $pars[':limit'] = $limit;
        $query = "SELECT * FROM " . table('mail_queue') . "\n        WHERE mail_id IS NOT NULL " . $equery . " ORDER BY timestamp DESC\n        LIMIT :offset , :limit";
        $result = or_query($query, $pars);
        $num_rows = pdo_num_rows($result);
        if ($experiment_id && check_allow('mailqueue_edit_experiment')) {
            echo '<FORM action="experiment_mailqueue_show.php" method="POST">
            <INPUT type="hidden" name="experiment_id" value="' . $experiment_id . '">';
        } elseif (check_allow('mailqueue_edit_all')) {
            echo '<FORM action="mailqueue_show.php" method="POST">';
        }
        echo '<TABLE width=90% border=0>
        <TR><TD width=50%>';
        //echo '<FONT class="small">'.lang('query').': '.$query.'</FONT><BR><BR>';
        echo '&nbsp;</TD>
        <TD align=right width=50%>';
        if (check_allow('mailqueue_edit_all')) {
            echo '
            <TABLE width="100%" border="0">
            <TR><TD width="33%" align="right">
            <input class="button" type=submit name="deleteall" value="' . lang('delete_all') . '">
            </TD><TD width="33%" align="right">
            <input class="button" type=submit name="deleteallonpage" value="' . lang('delete_all_on_page') . '">
            </TD><TD width="33%" align="right">
            <input class="button" type=submit name="deletesel" value="' . lang('delete_selected') . '">
            </TD></TR>
            </TABLE>
            ';
        }
        echo '</TD></TR></TABLE>';
        if ($offset > 0) {
            echo '[' . log__link('os=' . ($offset - $limit)) . lang('previous') . '</A>]';
        } else {
            echo '[' . lang('previous') . ']';
        }
        echo '&nbsp;&nbsp;';
        if ($num_rows >= $limit) {
            echo '[' . log__link('os=' . ($offset + $limit)) . lang('next') . '</A>]';
        } else {
            echo '[' . lang('next') . ']';
        }
        echo '<TABLE class="or_listtable" style="width: 90%;"><thead>';
        // header
        echo '
        <thead>
        <TR style="background: ' . $color['list_header_background'] . '; color: ' . $color['list_header_textcolor'] . ';">
        <TD>' . lang('id') . '</TD>
        <TD>' . lang('date_and_time') . '</TD>
        <TD>' . lang('email_type') . '</TD>
        <TD>' . lang('email_recipient') . '</TD>
        <TD>' . lang('reference') . '</TD>
        <TD>' . lang('error') . '</TD>';
        if (check_allow('mailqueue_edit_all')) {
            echo '<TD>
            ' . lang('select_all') . '
            <INPUT id="selall" type="checkbox" name="selall" value="y">
            <script language="JavaScript">
                $("#selall").change(function() {
                    if (this.checked) {
                        $("input[name*=\'del[\']").each(function() {
                            this.checked = true;
                        });
                    } else {
                        $("input[name*=\'del[\']").each(function() {
                            this.checked = false;
                        });
                    }
                });
            </script>
        </TD>';
        }
        echo '
          </TR>
          </thead>
          <tbody>
        ';
        $shade = false;
        $ids = array();
        $experiment_ids = array();
        $entries = array();
        while ($line = pdo_fetch_assoc($result)) {
            $ids[] = $line['mail_id'];
            if ($line['experiment_id']) {
                $experiment_ids[] = $line['experiment_id'];
            }
            $entries[] = $line;
        }
        $experiments = experiment__load_experiments_for_ids($experiment_ids);
        foreach ($entries as $line) {
            echo '<TR';
            if ($shade) {
                $shade = false;
            } else {
                $shade = true;
            }
            if ($shade) {
                echo ' bgcolor="' . $color['list_shade1'] . '"';
            } else {
                echo ' bgcolor="' . $color['list_shade2'] . '"';
            }
            echo '>
            <TD>' . $line['mail_id'] . '</TD>
            <TD>' . ortime__format($line['timestamp'], 'hide_second:false', lang('lang')) . '</TD>
            <TD>' . $line['mail_type'] . '</TD>
            <TD>' . $line['mail_recipient'] . '</TD>
            <TD>';
            $reference = array();
            if ($line['experiment_id']) {
                $reference[] = 'Experiment: <A HREF="experiment_show.php?experiment_id=' . $line['experiment_id'] . '">' . $experiments[$line['experiment_id']]['experiment_name'] . '</A>';
            }
            if ($line['session_id']) {
                $reference[] = 'Session: <A HREF="session_edit.php?session_id=' . $line['session_id'] . '">' . $line['session_id'] . '</A>';
            }
            if ($line['bulk_id']) {
                $reference[] = 'Bulk email: ' . $line['bulk_id'];
            }
            echo implode('<BR>', $reference);
            echo '</TD>
            <TD>' . $line['error'] . '</TD>';
            if (check_allow('mailqueue_edit_all')) {
                echo '<TD><INPUT type="checkbox" name="del[' . $line['mail_id'] . ']" value="y"></TD';
            }
            echo '</TR>';
        }
        echo '</tbody></TABLE>';
        if (check_allow('mailqueue_edit_all')) {
            echo '<INPUT type="hidden" name="allids" value="' . implode(",", $ids) . '">';
            echo '</FORM>';
        }
        return $num_rows;
    }
}
        $posted_query = $json->decode($line['json_query']);
        $pseudo_query_array = query__get_pseudo_query_array($posted_query['query']);
        $pseudo_query_display = query__display_pseudo_query($pseudo_query_array, $active);
        echo '<TR';
        if ($shade) {
            $shade = false;
        } else {
            $shade = true;
        }
        if ($shade) {
            echo ' bgcolor="' . $color['list_shade1'] . '"';
        } else {
            echo ' bgcolor="' . $color['list_shade2'] . '"';
        }
        echo '>
            <TD>' . ortime__format($line['query_time'], 'hide_second:false', lang('lang')) . '</TD>
            <TD>' . $pseudo_query_display . '</TD>';
        $reference = array();
        if (check_allow('pform_saved_queries_delete')) {
            echo '<TD><INPUT type="checkbox" name="del[' . $line['query_id'] . ']" value="y"></TD';
        }
        echo '</TR>';
    }
    echo '</tbody></TABLE>';
    if (check_allow('pform_saved_queries_delete')) {
        echo '</FORM>';
    }
    echo '<BR><BR><A href="options_main.php">' . icon('back') . ' ' . lang('back') . '</A><BR><BR>';
    echo '</center>';
}
include "footer.php";
 foreach ($queries as $q) {
     if ($shade) {
         $rowspec = ' class="or_orr_list_shade_even""';
         $shade = false;
     } else {
         $rowspec = ' class="or_orr_list_shade_odd"';
         $shade = true;
     }
     echo '<TR' . $rowspec . '>';
     echo '<TD valign="top"><B>' . ortime__format($q['query_time']) . '</B><BR>';
     if ($q['permanent'] || isset($q['properties']['is_permanent']) && $q['properties']['is_permanent']) {
         echo '<B>';
         echo lang('report_queries__permanent_query') . '</B><BR>';
         echo lang('from') . ' ' . ortime__format($q['properties']['permanent_start_time']) . ' ';
         if (isset($q['properties']['permanent_start_time']) && !$q['permanent']) {
             echo lang('to') . ' ' . ortime__format($q['query_time']);
         } else {
             echo lang('until_now');
         }
         echo '<BR>' . lang('report_queries__number_of_subjects_added') . ': <B>';
         if (isset($q['properties']['assigned_count'])) {
             echo $q['properties']['assigned_count'];
         } else {
             echo 0;
         }
         echo '</B>';
     } else {
         echo '<B>';
         if ($q['query_type'] == 'assign') {
             echo lang('report_queries__potential_participants_added');
         } else {
Beispiel #4
0
function sessions__get_first_last_date($session_list)
{
    $first_d = 0;
    $last_d = 0;
    foreach ($session_list as $s) {
        if ($first_d == 0 || $s['session_start'] < $first_d) {
            $first_d = $s['session_start'];
        }
        if ($last_d == 0 || $s['session_start'] > $last_d) {
            $last_d = $s['session_start'];
        }
    }
    $first_s = $first_d == 0 ? '???' : ortime__format(ortime__sesstime_to_unixtime($first_d), 'hide_time:true');
    $last_s = $last_d == 0 ? '???' : ortime__format(ortime__sesstime_to_unixtime($last_d), 'hide_time:true');
    return array('first' => $first_s, 'last' => $last_s);
}
Beispiel #5
0
function log__show_log($log)
{
    global $limit;
    if (!$limit) {
        $limit = 50;
    }
    if (isset($_REQUEST['os']) && $_REQUEST['os'] > 0) {
        $offset = $_REQUEST['os'];
    } else {
        $offset = 0;
    }
    global $lang, $color;
    $pars = array();
    if (isset($_REQUEST['action']) && $_REQUEST['action']) {
        $aquery = " AND action=:action ";
        $pars[':action'] = $_REQUEST['action'];
    } else {
        $aquery = "";
    }
    if (isset($_REQUEST['id']) && $_REQUEST['id']) {
        $idquery = " AND id=:id ";
        $pars[':id'] = $_REQUEST['id'];
    } else {
        $idquery = "";
    }
    if (isset($_REQUEST['target']) && $_REQUEST['target']) {
        $tquery = " AND target LIKE :target ";
        $pars[':target'] = '%' . $_REQUEST['target'] . '%';
    } else {
        $tquery = "";
    }
    $logtable = table('participants_log');
    switch ($log) {
        case "participant_actions":
            $logtable = table('participants_log');
            $secondtable = " LEFT JOIN " . table('participants') . " ON id=participant_id ";
            break;
        case "experimenter_actions":
            $logtable = table('admin_log');
            $secondtable = " LEFT JOIN " . table('admin') . " ON id=admin_id ";
            break;
        case "regular_tasks":
            $logtable = table('cron_log');
            $secondtable = " LEFT JOIN " . table('admin') . " ON id=admin_id ";
            break;
    }
    if (isset($_REQUEST['delete']) && $_REQUEST['delete'] && isset($_REQUEST['days']) && $_REQUEST['days']) {
        $allow = check_allow('log_file_' . $log . '_delete', 'statistics_show_log.php?log=' . $log);
        if (isset($_REQUEST['days']) && $_REQUEST['days'] == "all") {
            $where_clause = "";
        } else {
            $now = time();
            $dsec = (int) $_REQUEST['days'] * 24 * 60 * 60;
            $dtime = $now - $dsec;
            $where_clause = " WHERE timestamp < " . $dtime;
        }
        $query = "DELETE FROM " . $logtable . $where_clause;
        $done = or_query($query);
        $number = pdo_num_rows($done);
        message($number . ' ' . lang('xxx_log_entries_deleted'));
        if ($number > 0) {
            log__admin("log_delete_entries", "log:" . $log . "\ndays:" . $_REQUEST['days']);
        }
        redirect("admin/statistics_show_log.php?log=" . $log);
    }
    $pars[':offset'] = $offset;
    $pars[':limit'] = $limit;
    $query = "SELECT * FROM " . $logtable . $secondtable . "\n        WHERE id IS NOT NULL " . $aquery . $idquery . $tquery . " ORDER BY timestamp DESC\n        LIMIT :offset , :limit ";
    $result = or_query($query, $pars);
    $num_rows = pdo_num_rows($result);
    echo '<TABLE width=80% border=0>
        <TR><TD width=50%>';
    //echo '<FONT class="small">'.lang('query').': '.$query.'</FONT><BR><BR>';
    echo '</TD>
        <TD align=right width=50%>';
    if (check_allow('log_file_' . $log . '_delete')) {
        echo '
            <FORM action="statistics_show_log.php">
            <INPUT type=hidden name="log" value="' . $log . '">
            ' . lang('delete_log_entries_older_than') . '
            <select name="days">
            <option value="all">' . lang('all_entries') . '</option>';
        $ddays = array(1, 7, 30, 90, 180, 360);
        if (isset($_REQUEST['days']) && $_REQUEST['days']) {
            $selected = $_REQUEST['days'];
        } else {
            $selected = 90;
        }
        foreach ($ddays as $day) {
            echo '<option value="' . $day . '"';
            if ($day == $selected) {
                echo ' SELECTED';
            }
            echo '>' . $day . ' ';
            if ($day == 1) {
                echo lang('day');
            } else {
                echo lang('days');
            }
            echo '</option>
                ';
        }
        echo '  </select><input type=submit name="delete" value="' . lang('delete') . '">';
    }
    echo '</TD></TR></TABLE>';
    if ($offset > 0) {
        echo '[' . log__link('os=' . ($offset - $limit)) . lang('previous') . '</A>]';
    } else {
        echo '[' . lang('previous') . ']';
    }
    echo '&nbsp;&nbsp;';
    if ($num_rows >= $limit) {
        echo '[' . log__link('os=' . ($offset + $limit)) . lang('next') . '</A>]';
    } else {
        echo '[' . lang('next') . ']';
    }
    echo '<TABLE class="or_listtable" style="width: 90%;">';
    // header
    echo '<thead>
        <TR style="background: ' . $color['list_header_background'] . '; color: ' . $color['list_header_textcolor'] . ';">
        <TD>
            ' . lang('date_and_time') . '
        </TD>
        <TD>';
    if ($log == 'participant_actions') {
        echo lang('lastname') . ', ' . lang('firstname');
    } elseif ($log == 'experimenter_actions' || $log == 'regular_tasks') {
        echo lang('experimenter');
    }
    if (isset($_REQUEST['id']) && $_REQUEST['id']) {
        echo ' ' . log__link('id=', 'os=0') . '<FONT class="small">[' . lang('unrestrict') . ']</FONT></A>';
    }
    echo '  </TD><TD>' . lang('action');
    if (isset($_REQUEST['action']) && $_REQUEST['action']) {
        echo ' ' . log__link('action=', 'os=0') . '<FONT class="small">[' . lang('unrestrict') . ']</FONT></A>';
    }
    echo '  </TD><TD>' . lang('target');
    if (isset($_REQUEST['target']) && $_REQUEST['target']) {
        echo ' ' . log__link('target=', 'os=0') . '<FONT class="small">[' . lang('unrestrict') . ']</FONT></A>';
    }
    echo '  </TD></TR>
            </thead>
            <tbody>';
    $shade = false;
    while ($line = pdo_fetch_assoc($result)) {
        echo '<tr class="small"';
        if ($shade) {
            echo ' bgcolor="' . $color['list_shade1'] . '"';
        } else {
            echo 'bgcolor="' . $color['list_shade2'] . '"';
        }
        echo '>
            <TD>' . ortime__format($line['timestamp'], 'hide_seconds:false', lang('lang')) . '</TD>
            <TD>';
        if ($log == 'participant_actions') {
            if ($line['participant_id']) {
                echo $line['lname'] . ', ' . $line['fname'] . ' <A HREF="participants_edit.php?participant_id=' . $line['participant_id'] . '"><FONT class="small">[' . lang('edit') . ']</FONT></A>';
            } else {
                echo $line['id'];
            }
        } elseif ($log == 'experimenter_actions' || $log == 'regular_tasks') {
            echo $line['adminname'];
        }
        if (!isset($_REQUEST['id']) || $_REQUEST['id'] != $line['id']) {
            echo ' ' . log__restrict_link('id', $line['id']);
        }
        echo '  </TD><TD>' . $line['action'];
        if (!isset($_REQUEST['action']) || $_REQUEST['action'] != $line['action']) {
            echo ' ' . log__restrict_link('action', $line['action']);
        }
        echo '  </TD><TD>' . nl2br(stripslashes($line['target']));
        if (!isset($_REQUEST['target']) || $_REQUEST['target'] != $line['target'] && $log != 'regular_tasks') {
            echo ' ' . log__restrict_link('target', $line['target']);
        }
        echo '  </TD></TR>';
        if ($shade) {
            $shade = false;
        } else {
            $shade = true;
        }
    }
    echo '</tbody></TABLE>';
    return $num_rows;
}
Beispiel #6
0
        } else {
            echo lang('no');
        }
        echo '
						</td>
				</tr>
				
			<tr>
				<td align=right>
					' . lang('last_login_attempt') . ':
				</td>
				<td>&nbsp;&nbsp;</td>
				<td>
					';
        if ($admin['last_login_attempt']) {
            echo ortime__format($admin['last_login_attempt'], 'hide_second:false');
        } else {
            echo lang('never');
        }
        echo '
				</td>
			</tr>
			
			<tr>
				<td align=right>
					' . lang('failed_login_attempts') . ':
				</td>
				<td>&nbsp;&nbsp;</td>
				<td>
					' . $admin['failed_login_attempts'] . '
				</td>
Beispiel #7
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>';
}
Beispiel #8
0
function query__get_pseudo_query_array($posted_array)
{
    global $lang;
    $formfields = participantform__load();
    $pseudo_query_array = array();
    $clevel = 1;
    foreach ($posted_array as $num => $entry) {
        $temp_keys = array_keys($entry);
        $module_string = $temp_keys[0];
        $module_string_array = explode("_", $module_string);
        $module = $module_string_array[0];
        $type = $module_string_array[1];
        if ($module == 'pform') {
            unset($module_string_array[0]);
            unset($module_string_array[1]);
            $pform_formfield = implode("_", $module_string_array);
        } else {
            $pform_formfield = "";
        }
        $params = $entry[$module_string];
        $level = $clevel;
        $op_text = "";
        $text = '';
        $add = true;
        if (isset($params['logical_op']) && $params['logical_op']) {
            $op_text = lang($params['logical_op']);
        }
        switch ($module) {
            case "bracket":
                if ($type == 'open') {
                    $level = $clevel;
                    $clevel++;
                    $text = '(';
                } else {
                    $clevel--;
                    $level = $clevel;
                    $text = ')';
                }
                break;
            case "experimentclasses":
                $text = query__pseudo_query_not_without($params);
                $text .= ' ' . lang('participants_participated_expclass');
                $text .= ': ' . experiment__experiment_class_field_to_list($params['ms_classes']);
                break;
            case "experimenters":
                $text = query__pseudo_query_not_without($params);
                $text .= ' ' . lang('participants_participated_experimenters');
                $text .= ': ' . experiment__list_experimenters($params['ms_experimenters'], false, true);
                break;
            case "experimentsassigned":
                $text = query__pseudo_query_not_without($params);
                $text .= ' ' . lang('participants_were_assigned_to');
                $text .= ': ' . experiment__exp_id_list_to_exp_names($params['ms_experiments']);
                break;
            case "experimentsparticipated":
                $text = query__pseudo_query_not_without($params);
                $text .= ' ' . lang('participants_have_participated_on');
                $text .= ': ' . experiment__exp_id_list_to_exp_names($params['ms_experiments']);
                break;
            case "statusids":
                $text = query__pseudo_query_not_without($params);
                $text .= ' ' . lang('participants_of_status');
                $text .= ': ' . participant__status_id_list_to_status_names($params['ms_status']);
                break;
            case "pformtextfields":
                $text = lang('where');
                $text .= ' "' . $params['search_string'] . '" ';
                $text .= query__pseudo_query_not_not($params);
                $text .= lang('in') . ' ';
                if ($params['search_field'] == 'all') {
                    $text .= lang('any_field');
                } else {
                    $text .= $params['search_field'];
                }
                break;
            case "pform":
                $f = array();
                foreach ($formfields as $p) {
                    if ($p['mysql_column_name'] == $pform_formfield) {
                        $f = $p;
                    }
                }
                if (isset($f['mysql_column_name'])) {
                    $text = lang('where') . ' ' . lang($f['name_lang']) . ' ';
                    if ($type == 'numberselect') {
                        $text .= $params['sign'] . $params['fieldvalue'];
                    } elseif ($type == 'simpleselect') {
                        $text .= query__pseudo_query_not_not($params) . '= "' . $params['fieldvalue'] . '"';
                    } else {
                        $text .= query__pseudo_query_not_not($params) . lang('in') . ': ' . participant__select_lang_idlist_to_names($f['mysql_column_name'], $params['ms_' . $pform_formfield]);
                    }
                } else {
                    $add = false;
                }
                break;
            case "noshows":
                $text = lang('where_nr_noshowups_is') . ' ';
                $text .= $params['sign'] . ' ' . $params['count'];
                break;
            case "participations":
                $text = lang('where_nr_participations_is') . ' ';
                $text .= $params['sign'] . ' ' . $params['count'];
                break;
            case "updaterequest":
                $text = lang('where_profile_update_request_is') . ' ';
                if ($params['update_request_status'] == 'y') {
                    $text .= lang('active');
                } else {
                    $text .= lang('inactive');
                }
                break;
            case "activity":
                $text = lang('where') . ' ' . lang($params['activity_type']) . ' ';
                $text .= query__pseudo_query_not_not($params);
                $text .= lang('before_date') . ' ';
                $sesstime_act = ortime__array_to_sesstime($params, 'dt_activity_');
                $text .= ortime__format(ortime__sesstime_to_unixtime($sesstime_act), 'hide_time:true');
                break;
            case "randsubset":
                $text = lang('limit_to_randomly_drawn') . ' ';
                $text .= $params['limit'];
                break;
            case "subsubjectpool":
                $text = query__pseudo_query_not_without($params);
                $text .= ' ' . lang('who_are_in_subjectpool');
                $text .= ': ' . subpools__idlist_to_namelist($params['ms_subpool']);
                break;
        }
        if ($add) {
            $pseudo_query_array[] = array('level' => $level, 'op_text' => $op_text, 'text' => $text);
        }
    }
    return $pseudo_query_array;
}
Beispiel #9
0
function downloads__list_experiments($showsize = false, $showtype = false, $showdate = false)
{
    global $lang, $color, $expadmindata;
    $out = '';
    $continue = true;
    if (check_allow('file_view_experiment_all')) {
        $experimenter_clause = '';
        $pars = array();
    } elseif (check_allow('file_view_experiment_my')) {
        $experimenter_clause = " AND " . table('experiments') . ".experimenter LIKE :experimenter ";
        $pars = array(':experimenter' => '%|' . $expadmindata['admin_id'] . '|%');
    } else {
        $continue = false;
    }
    if ($continue) {
        $query = "SELECT " . table('experiments') . ".*,\n                (SELECT min(session_start) from or_sessions as s1 WHERE s1.experiment_id=" . table('experiments') . ".experiment_id) as first_session_date,\n                (SELECT max(session_start) from or_sessions as s2 WHERE s2.experiment_id=" . table('experiments') . ".experiment_id) as last_session_date\n                FROM " . table('experiments') . "\n                WHERE " . table('experiments') . ".experiment_id IN\n                (SELECT DISTINCT experiment_id FROM " . table('uploads') . ")\n                " . $experimenter_clause . "\n                ORDER BY last_session_date DESC";
        $result = or_query($query, $pars);
        $experiments = array();
        while ($line = pdo_fetch_assoc($result)) {
            $experiments[] = $line;
        }
        if (count($experiments) > 0) {
            $out .= '<TABLE width=100% border=0>';
            $shade = true;
            foreach ($experiments as $exp) {
                if ($shade) {
                    $bgcolor = ' bgcolor="' . $color['list_shade1'] . '"';
                    $shade = false;
                } else {
                    $bgcolor = ' bgcolor="' . $color['list_shade2'] . '"';
                    $shade = true;
                }
                $out .= '<TR' . $bgcolor . '><TD>';
                $out .= $exp['experiment_name'] . '</TD><TD>(';
                $out .= lang('from') . ' ';
                if ($exp['first_session_date'] == 0) {
                    $out .= '???';
                } else {
                    $out .= ortime__format(ortime__sesstime_to_unixtime($exp['first_session_date']), 'hide_time:true');
                }
                $out .= ' ' . lang('to') . ' ';
                if ($exp['last_session_date'] == 0) {
                    $out .= '???';
                } else {
                    $out .= ortime__format(ortime__sesstime_to_unixtime($exp['last_session_date']), 'hide_time:true');
                }
                $out .= ')</TD><TD>';
                $out .= experiment__list_experimenters($exp['experimenter'], true, true);
                $out .= '</TD><TD><A HREF="download_main.php?experiment_id=' . $exp['experiment_id'] . '">' . lang('show_files') . '</A>';
                $out .= '</TD></TR>';
            }
            $out .= '</TABLE>';
        }
    }
    return $out;
}
Beispiel #10
0
function experimentmail__send_participant_statistics()
{
    global $lang, $settings;
    $now = time();
    $from = $settings['support_mail'];
    $headers = "From: " . $from . "\r\n";
    // remember the current language for later reset
    $old_lang = lang('lang');
    // preload details with current language
    $maillang = $old_lang;
    $statistics = stats__get_textstats_for_email();
    $subject = load_language_symbol('subject_pool_statistics', $maillang) . ' ' . ortime__format($now, 'hide_time:true');
    // get experimenters who want to receive the statistics
    $query = "SELECT *\n            FROM " . table('admin') . "\n            WHERE get_statistics_mail='y'\n            AND disabled='n'\n            ORDER BY language";
    $result = or_query($query);
    $i = 0;
    $rec_count = pdo_num_rows($result);
    while ($admin = pdo_fetch_assoc($result)) {
        if ($admin['language'] != $maillang) {
            $maillang = $admin['language'];
            $lang = load_language($maillang);
            $statistics = stats__get_textstats_for_email();
            $subject = load_language_symbol('subject_pool_statistics', $maillang) . ' ' . ortime__format($now, 'hide_time:true', $maillang);
        }
        $mailtext = load_mail("admin_participant_statistics_mailtext", $maillang) . "\n\n" . $statistics . "\n" . experimentmail__get_admin_footer($maillang, $admin) . "\n";
        $message = process_mail_template($mailtext, $admin);
        $done = experimentmail__mail($admin['email'], $subject, $message, $headers);
        if ($done) {
            $i++;
        }
    }
    // reset language
    if ($maillang != $old_lang) {
        $lang = load_language($old_lang);
    }
    return "statistics sent to " . $i . " out of " . $rec_count . " administrators\n";
}
Beispiel #11
0
 echo '</TABLE></TD></TR>';
 echo '
 </TABLE>
 </center><BR><BR>';
 if ($experiment['experiment_type'] == "laboratory") {
     // session summary
     echo '<center>
     <BR>
     <table class="or_panel">
     <TR>
         <TD>
             <TABLE width="100%" border=0 class="or_panel_title"><TR>
             <TD style="background: ' . $color['panel_title_background'] . '; color: ' . $color['panel_title_textcolor'] . '">' . lang('sessions') . '</TD>';
     if ($min > 0) {
         echo '<TD style="background: ' . $color['panel_title_background'] . '; color: ' . $color['panel_title_textcolor'] . '">' . lang('from') . ': ' . ortime__format(ortime__sesstime_to_unixtime($min), 'hide_time') . '
                     ' . lang('to') . ': ' . ortime__format(ortime__sesstime_to_unixtime($max), 'hide_time') . '
                     </TD>';
     }
     echo '      <TD style="background: ' . $color['panel_title_background'] . '; color: ' . $color['panel_title_textcolor'] . '">';
     if (check_allow('session_edit')) {
         echo button_link('session_edit.php?experiment_id=' . $experiment['experiment_id'], lang('create_new'), 'plus-circle');
     }
     echo '      </TD>
             </TR></TABLE>
         </TD>
     </TR>
     <TR>
         <TD>
             ' . count($sessions) . ' ' . lang('xxx_sessions_registered') . '<BR>
         </TD>
     </TR>
Beispiel #12
0
function expregister__list_invited_for($participant)
{
    global $lang, $color, $preloaded_laboratories, $token_string;
    if (!(is_array($preloaded_laboratories) && count($preloaded_laboratories) > 0)) {
        $preloaded_laboratories = laboratories__get_laboratories();
    }
    $invdata = expregister__get_invitations($participant['participant_id']);
    $invited = $invdata['invited'];
    $inv_experiments = $invdata['inv_experiments'];
    $now = time();
    echo '<TABLE width="100%" border="0" cellspacing="0">';
    $labs = array();
    foreach ($invited as $s) {
        if ($s['new_experiment']) {
            echo '<TR>
        			<TD colspan=3 bgcolor="' . $color['list_shade_subtitle'] . '">
                		<B>' . $s['experiment_public_name'] . '</B>';
            if (or_setting('allow_public_experiment_note') && isset($s['public_experiment_note']) && trim($s['public_experiment_note'])) {
                echo '<BR><i>' . lang('note') . ': ' . trim($s['public_experiment_note']) . '</i>';
            }
            echo '</TD></TR>';
        }
        echo '<TR><TD>&nbsp;&nbsp;&nbsp;</TD><TD bgcolor="' . $color['list_shade1'] . '">';
        echo '<B>' . $s['session_name'] . '</B>, ';
        if (isset($preloaded_laboratories[$s['laboratory_id']])) {
            echo $preloaded_laboratories[$s['laboratory_id']]['lab_name'];
        } else {
            echo lang('unknown_laboratory');
        }
        if (or_setting('include_sign_up_until_on_enrolment_page')) {
            echo ",  " . lang('registration_until') . " ";
            echo ortime__format($s['registration_unixtime'], '', lang('lang'));
        }
        if (or_setting('allow_public_session_note') && isset($s['public_session_note']) && trim($s['public_session_note'])) {
            echo '<BR><i>' . lang('note') . ': ' . trim($s['public_session_note']) . '</i>';
        }
        echo '</TD>';
        if (!$s['session_full'] && $s['registration_unixtime'] >= $now) {
            echo '<FORM action="participant_show.php">';
            if ($token_string) {
                echo '<INPUT type=hidden name="p" value="' . $participant['participant_id_crypt'] . '">';
            }
            echo '<INPUT type=hidden name="s" value="' . $s['session_id'] . '">
				<TD bgcolor="' . $color['list_shade1'] . '">
				<INPUT class="button small" style="font-size: 8pt;" type=submit name="register" value="' . lang('register') . '">
				</TD>
				</FORM>';
        } elseif ($s['registration_unixtime'] < $now) {
            echo '<TD bgcolor="' . $color['list_shade1'] . '">
				<span class="button disabled" style="font-size: 8pt; color: ' . $color['session_public_expired'] . ';">' . lang('expired') . '</span></TD>';
        } else {
            echo '<TD bgcolor="' . $color['list_shade1'] . '">
				<span class="button disabled" style="font-size: 8pt; color: ' . $color['session_public_complete'] . ';">' . lang('complete') . '</span></TD>';
        }
        echo '
			</TR>
			<TR><TD colpan=3>&nbsp;</TD></TR>';
        $labs[$s['laboratory_id']] = $s['laboratory_id'];
    }
    if (count($invited) == 0) {
        echo '<TD><B>' . lang('no_current_invitations') . '</B></TD>';
    }
    echo '</TABLE>';
    return $labs;
}
Beispiel #13
0
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("&nbsp;", " ", $v);
    }
    return $row;
}
Beispiel #14
0
function select__sessions($preval, $varname, $sessions, $hide_nosession = false, $with_exp = false)
{
    global $lang, $expadmindata;
    if (!$preval) {
        $preval = 0;
    }
    if (!$varname) {
        $varname = "session";
    }
    $out = '';
    $out .= '<SELECT name="' . $varname . '">';
    if (!$hide_nosession) {
        $out .= '<OPTION value="0"';
        if ($preval == 0) {
            $out .= " SELECTED";
        }
        $out .= '>' . lang('no_session') . '</OPTION>';
    }
    foreach ($sessions as $line) {
        $out .= '<OPTION value="' . $line['session_id'] . '"';
        if ($preval == $line['session_id']) {
            $out .= " SELECTED";
        }
        $out .= '>';
        if ($with_exp) {
            $out .= $line['experiment_name'] . ' - ';
        }
        $out .= ortime__format(ortime__sesstime_to_unixtime($line['session_start']), 'hide_second:true', lang('lang'));
        if (isset($line['p_is_assigned'])) {
            if ($line['p_is_assigned']) {
                $out .= ' - ' . lang('is_assigned_to_experiment_short');
            } else {
                $out .= ' - ' . lang('is_not_yet_assigned_to_experiment_short');
            }
        }
        $out .= '</OPTION>';
    }
    $out .= '</SELECT>';
    return $out;
}
Beispiel #15
0
function html__show_style_header($area = 'public', $title = "")
{
    global $settings, $lang, $color, $expadmindata, $authdata, $navigation_disabled, $show_logged_in_menu;
    $tpl = file_get_contents('../style/' . $settings['style'] . '/html_header.php');
    // fill colors
    foreach ($color as $k => $o) {
        $tpl = str_replace("#" . $k . "#", $o, $tpl);
    }
    // add title
    $tpl = str_replace("#title#", $title, $tpl);
    // prepare menu
    if (!(isset($navigation_disabled) && $navigation_disabled)) {
        if ($area == 'admin' && isset($expadmindata['adminname'])) {
            $logged_in = true;
            $now = time();
            $current_user_data_box = lang('admin_area') . '<BR>' . lang('user') . ': <FONT color="' . $color['menu_item'] . '">' . $expadmindata['adminname'] . '</FONT><BR>' . lang('date') . ': <FONT color="' . $color['menu_item'] . '">' . ortime__format($now, 'hide_time:true,hide_year:true', $expadmindata['language']) . '</FONT><BR>' . lang('time') . ': <FONT color="' . $color['menu_item'] . '">' . ortime__format($now, 'hide_date:true', $expadmindata['language']) . '</FONT>';
            $menu = html__get_admin_menu();
        } else {
            $current_user_data_box = "";
            if (isset($_SESSION['pauthdata']['user_logged_in']) && $_SESSION['pauthdata']['user_logged_in'] || $show_logged_in_menu) {
                $logged_in = true;
            } else {
                $logged_in = false;
            }
            $menu = html__get_public_menu();
        }
        $tpl = str_replace("#navigation#", html__build_menu($menu, $logged_in, $current_user_data_box, 'vertical'), $tpl);
        $tpl = str_replace("#navigation_horizontal#", html__build_menu($menu, $logged_in, $current_user_data_box, 'horizontal'), $tpl);
    } else {
        $tpl = str_replace("#navigation#", '', $tpl);
        $tpl = str_replace("#navigation_horizontal#", '', $tpl);
    }
    // fill in language terms if any
    $pattern = "/lang\\[([^\\]]+)\\]/i";
    $replacement = "\$lang['\$1']";
    $tpl = preg_replace_callback($pattern, 'template_replace_callbackB', $tpl);
    echo $tpl;
}
Beispiel #16
0
function calendar__get_events($admin = false, $start_time = 0, $end_time = 0, $admin_id = false, $split_events = false)
{
    $events = array();
    global $lang, $settings, $settings__root_url, $color;
    $labs = laboratories__get_laboratories();
    $sessions = array();
    $signed_up = array();
    $lines = array();
    //build query to get all sessions
    $query = "SELECT * FROM " . table('sessions') . ", " . table('experiments') . " WHERE " . table('sessions') . ".experiment_id=" . table('experiments') . ".experiment_id";
    //don't include hidden if not admin
    if (!$admin) {
        $query .= " AND " . table('experiments') . ".hide_in_cal='n' ";
    }
    //only events between start and end time parameters
    $pars = array(':end_time' => date("Ym320000", $end_time), ':start_time' => date("Ym000000", $start_time));
    // larger than "0st day" of start time month
    $query .= " AND session_start <= :end_time ";
    $query .= " AND session_start >= :start_time ";
    if ($admin_id) {
        $query .= " AND " . table('experiments') . ".experimenter LIKE :admin_id ";
        $pars[':admin_id'] = '%|".$admin_id."|%';
    }
    $result = or_query($query, $pars);
    $exp_colors = array();
    $exp_colors_used = 0;
    $exp_colors_defined_list = explode(",", $color['calendar_public_experiment_sessions']);
    while ($line = pdo_fetch_assoc($result)) {
        $lines[] = $line;
        $sessions[] = $line['session_id'];
    }
    if (count($sessions) > 0) {
        $query = "SELECT session_id, COUNT(*) as regcount FROM " . table('participate_at') . "\n                WHERE session_id IN (" . implode(",", $sessions) . ")\n                GROUP BY session_id";
        $result = or_query($query);
        while ($line = pdo_fetch_assoc($result)) {
            $signed_up[$line['session_id']] = $line['regcount'];
        }
    }
    foreach ($lines as $line) {
        $tmp_new_event = array();
        //get colour
        if (!isset($exp_colors[$line['experiment_id']])) {
            $exp_colors[$line['experiment_id']] = $exp_colors_defined_list[$exp_colors_used];
            $exp_colors_used += 1;
            if ($exp_colors_used > count($exp_colors_defined_list) - 1) {
                $exp_colors_used = 0;
            }
        }
        $tmp_new_event['color'] = $exp_colors[$line['experiment_id']];
        //convert to unix time
        $unix_time = ortime__sesstime_to_unixtime($line['session_start']);
        $tmp_new_event['start_time'] = $unix_time;
        //add duration to start time to create end time (in seconds)
        $duration = ($line['session_duration_hour'] * 60 + $line['session_duration_minute']) * 60;
        $tmp_new_event['end_time'] = $unix_time + $duration;
        //formatted time with language features
        $tmp_new_event['display_time'] = ortime__format($unix_time, 'hide_date:true,hide_second:true', $lang['lang']) . '-' . ortime__format($unix_time + $duration, 'hide_date:true,hide_second:true', $lang['lang']);
        if ($admin) {
            $tmp_new_event['title'] = $line['experiment_name'];
        } else {
            $tmp_new_event['title'] = $line['experiment_public_name'];
        }
        if (check_allow('experiment_show')) {
            $tmp_new_event['title_link'] = $settings__root_url . '/admin/experiment_show.php?experiment_id=' . $line['experiment_id'];
        }
        $tmp_new_event['participants_link'] = $settings__root_url . '/admin/experiment_participants_show.php?experiment_id=' . $line['experiment_id'] . '&session_id=' . $line['session_id'];
        if (isset($labs[$line['laboratory_id']]['lab_name'])) {
            $tmp_new_event['location'] = $labs[$line['laboratory_id']]['lab_name'];
        } else {
            $tmp_new_event['location'] = lang('unknown_laboratory');
        }
        if (isset($signed_up[$line['session_id']])) {
            $participating = $signed_up[$line['session_id']];
        } else {
            $participating = 0;
        }
        $tmp_new_event['participants_needed'] = $line['part_needed'];
        $tmp_new_event['participants_reserve'] = $line['part_reserve'];
        $tmp_new_event['participants_registered'] = $participating;
        //uid (unique identifier) for use by ICS
        $tmp_new_event['uid'] = "session_" . $line['session_id'] . "@" . $settings__root_url;
        $tmp_new_event['type'] = "experiment_session";
        if ($participating < $line['part_needed']) {
            $tmp_new_event['status'] = "not_enough_participants";
        } elseif ($participating < $line['part_needed'] + $line['part_reserve']) {
            $tmp_new_event['status'] = "not_enough_reserve";
        } else {
            $tmp_new_event['status'] = "complete";
        }
        $tmp_new_event['experimenters'] = $line['experimenter'];
        $tmp_new_event['id'] = $line['session_id'];
        $events[date("Y", $tmp_new_event['start_time']) * 10000 + date("n", $tmp_new_event['start_time']) * 100 + date("j", $tmp_new_event['start_time'])][] = $tmp_new_event;
    }
    //non-experimental laboratory booking events
    $event_categories = lang__load_lang_cat('events_category');
    $pars = array(':end_time' => date("Ym320000", $end_time), ':start_time' => date("Ym000000", $start_time));
    // larger than "0st day" of start time month
    $query = "SELECT *  FROM " . table('events') . " WHERE event_start <= :end_time\n              AND event_stop >= :start_time";
    if ($admin_id) {
        $query .= " AND " . table('events') . ".experimenter LIKE :admin_id ";
        $pars[':admin_id'] = '%|".$admin_id."|%';
    }
    $result = or_query($query, $pars);
    $exp_colors = array();
    $exp_colors_used = 0;
    $exp_colors_defined_list = explode(",", $color['calendar_event_reservation']);
    while ($line = pdo_fetch_assoc($result)) {
        if ($admin || trim($line['reason_public'])) {
            //get color
            if (!isset($exp_colors[$line['laboratory_id']])) {
                $exp_colors[$line['laboratory_id']] = $exp_colors_defined_list[$exp_colors_used];
                $exp_colors_used += 1;
                if ($exp_colors_used > count($exp_colors_defined_list) - 1) {
                    $exp_colors_used = 0;
                }
            }
            $tmp_new_event = array();
            $tmp_new_event['color'] = $exp_colors[$line['laboratory_id']];
            $unix_start_time = ortime__sesstime_to_unixtime($line['event_start']);
            $unix_stop_time = ortime__sesstime_to_unixtime($line['event_stop']);
            $tmp_new_event['start_time'] = $unix_start_time;
            $tmp_new_event['end_time'] = $unix_stop_time;
            $tmp_new_event['display_time'] = ortime__format($unix_start_time, 'hide_second:true', $lang['lang']) . '-' . ortime__format($unix_stop_time, 'hide_second:true', $lang['lang']);
            if (isset($labs[$line['laboratory_id']]['lab_name'])) {
                $tmp_new_event['location'] = $labs[$line['laboratory_id']]['lab_name'];
            } else {
                $tmp_new_event['location'] = $lang['unknown_laboratory'];
            }
            $tmp_new_event['type'] = "location_reserved";
            if ($admin) {
                $tmp_new_event['title'] = $line['reason'];
                if (trim($line['reason_public'])) {
                    $tmp_new_event['title'] .= ' (' . $line['reason_public'] . ')';
                }
                if ($line['event_category'] && isset($event_categories[$line['event_category']])) {
                    $tmp = $event_categories[$line['event_category']];
                    if ($tmp_new_event['title']) {
                        $tmp .= ", " . $tmp_new_event['title'];
                    }
                    $tmp_new_event['title'] = $tmp;
                }
                if (!$tmp_new_event['title']) {
                    $tmp_new_event['title'] = lang('laboratory_booked');
                }
            } else {
                $tmp_new_event['title'] = $line['reason_public'];
                if (!$tmp_new_event['title']) {
                    $tmp_new_event['title'] = lang('laboratory_booked');
                }
            }
            $tmp_new_event['edit_link'] = $settings__root_url . "/admin/events_edit.php?event_id=" . $line['event_id'];
            $tmp_new_event['experimenters'] = $line['experimenter'];
            $tmp_new_event['id'] = $line['event_id'];
            $tmp_new_event['uid'] = "booking_" . $line['event_id'] . "@" . $settings__root_url;
            if ($split_events) {
                $continue = true;
                $today = $unix_start_time;
                while ($continue) {
                    if (date("Ymd", $today) == date("Ymd", $unix_start_time)) {
                        $tmp_new_event['start_time'] = $unix_start_time;
                    } else {
                        $tmp_new_event['start_time'] = mktime($settings['laboratory_opening_time_hour'], $settings['laboratory_opening_time_minute'], 0, date("n", $today), date("j", $today), date("Y", $today));
                    }
                    if (date("Ymd", $today) >= date("Ymd", $unix_stop_time)) {
                        $tmp_new_event['end_time'] = $unix_stop_time;
                        $continue = false;
                    } else {
                        $tmp_new_event['end_time'] = mktime($settings['laboratory_closing_time_hour'], $settings['laboratory_closing_time_minute'], 0, date("n", $today), date("j", $today), date("Y", $today));
                    }
                    $tmp_new_event['display_time'] = ortime__format($tmp_new_event['start_time'], 'hide_date:true,hide_second:true', lang('lang')) . '-' . ortime__format($tmp_new_event['end_time'], 'hide_date:true,hide_second:true', lang('lang'));
                    $events[date("Y", $today) * 10000 + date("n", $today) * 100 + date("j", $today)][] = $tmp_new_event;
                    $today = strtotime("+1 day", $today);
                }
            } else {
                $events[date("Y", $tmp_new_event['start_time']) * 10000 + date("n", $tmp_new_event['start_time']) * 100 + date("j", $tmp_new_event['start_time'])][] = $tmp_new_event;
            }
        }
    }
    return $events;
}
Beispiel #17
0
                                        <INPUT type=radio name="enabled" value="n"';
    if ($job['enabled'] == "n") {
        echo ' CHECKED';
    }
    echo '>' . lang('no') . '
                                </TD>
                        </TR>
            <TR>
                <TD>
                    ' . lang('last_execution') . ':
                </TD>
                <TD>';
    if ($job['job_last_exec'] == 0) {
        echo lang('never');
    } else {
        ortime__format($job['job_last_exec'], 'hide_second:false', lang('lang'));
    }
    echo '  </TD>
            </TR>
            <TR>
                <TD>
                    ' . lang('when_executed?') . ':
                </TD>
                <TD>
                    ';
    cron__job_time_select_field($job['job_time']);
    echo '  </TD>
            </TR>

            <TR>
                <TD COLSPAN=2 align=center>
Beispiel #18
0
function experiment__other_experiments_select_field($postvarname, $type = "assigned", $experiment_id = "", $selected, $multi = true, $mpoptions = array())
{
    // $postvarname - name of form field
    // selected - array of pre-selected experimenter usernames
    global $lang, $preloaded_experiments, $settings;
    $out = "";
    if (!(is_array($preloaded_experiments) && count($preloaded_experiments) > 0)) {
        $preloaded_experiments = experiment__preload_experiments();
    }
    $mylist = array();
    foreach ($preloaded_experiments as $e) {
        if ($e['experiment_id'] != $experiment_id && ($type == 'all' || $type == 'assigned' && $e['assigned'] == 'y' || $type == 'participated' && $e['participated'] == 'y')) {
            $ename = $e['experiment_name'];
            if ($e['time'] || $e['experimenter']) {
                $ename .= ' (';
            }
            if ($e['experimenter']) {
                $ename .= experiment__list_experimenters($e['experimenter'], false, false);
            }
            if ($e['time'] && $e['experimenter']) {
                $ename .= ', ';
            }
            if ($e['time']) {
                $ename .= ortime__format(ortime__sesstime_to_unixtime($e['start_date']), 'hide_time:true') . '-' . ortime__format(ortime__sesstime_to_unixtime($e['end_date']), 'hide_time:true');
            }
            if ($e['time'] || $e['experimenter']) {
                $ename .= ')';
            }
            $mylist[$e['experiment_id']] = $ename;
        }
    }
    if (!is_array($mpoptions)) {
        $mpoptions = array();
    }
    if (!isset($mpoptions['picker_icon'])) {
        $mpoptions['picker_icon'] = 'cogs';
    }
    if ($multi) {
        $out .= get_multi_picker($postvarname, $mylist, $selected, $mpoptions);
    } else {
        $out .= '<SELECT name="' . $postvarname . '">
				<OPTION value=""';
        if (!$selected) {
            $out .= ' SELECTED';
        }
        $out .= '>-</OPTION>
				';
        foreach ($mylist as $k => $v) {
            $out .= '<OPTION value="' . $k . '"';
            if ($selected == $k) {
                $out .= ' SELECTED';
            }
            $out .= '>' . $v . '</OPTION>
				';
        }
        $out .= '</SELECT>
		';
    }
    return $out;
}