コード例 #1
0
 }
 if (count($columns) == 0) {
     message(lang('no_data_columns_selected'));
     redirect('admin/' . thisdoc());
 } else {
     $query = "SELECT count(*) as num_matches, " . implode(', ', $columns) . "\n                    FROM " . table('participants') . "\n                    GROUP BY " . implode(', ', $columns) . "\n                    HAVING num_matches>1\n                    ORDER BY num_matches DESC";
     $result = or_query($query);
     $dupvals = array();
     while ($line = pdo_fetch_assoc($result)) {
         $dupvals[] = $line;
     }
     if (check_allow('participants_edit')) {
         echo javascript__edit_popup();
     }
     $part_statuses = participant_status__get_statuses();
     $cols = participant__get_result_table_columns('result_table_search_duplicates');
     echo '<TABLE class="or_listtable"><thead>';
     echo '<TR style="background: ' . $color['list_header_background'] . '; color: ' . $color['list_header_textcolor'] . ';">';
     echo '<TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>';
     echo participant__get_result_table_headcells($cols, false);
     echo '</TR></thead>
             <tbody>';
     $num_cols = count($cols) + 1;
     foreach ($dupvals as $dv) {
         $mvals = array();
         $pars = array();
         $qclause = array();
         foreach ($columns as $c) {
             $mvals[] = $field_names[$c] . ': ' . $dv[$c];
             $pars[':' . $c] = $dv[$c];
             $qclause[] = ' ' . $c . ' = :' . $c . ' ';
コード例 #2
0
ファイル: email.php プロジェクト: bgreiner/orsee
function email__participant_select($email, $participant = array(), $guess_parts = array())
{
    $cols = participant__get_result_table_columns('email_participant_guesses_list');
    echo '<SELECT name="participant_id">
            <OPTION value="0">' . lang('unknown') . '</OPTION>';
    if (isset($participant['participant_id'])) {
        echo '<OPTION value="' . $participant['participant_id'] . '" SELECTED>';
        $items = array();
        foreach ($cols as $k => $c) {
            $items[] = $participant[$k];
        }
        echo implode(" ", $items);
        echo '</OPTION>';
    }
    if (!$email['session_id']) {
        foreach ($guess_parts as $gp) {
            if ($gp['participant_id'] != $participant['participant_id']) {
                echo '<OPTION value="' . $gp['participant_id'] . '">';
                $items = array();
                foreach ($cols as $k => $c) {
                    $items[] = $gp[$k];
                }
                echo implode(" ", $items);
                echo '</OPTION>';
            }
        }
    }
    if (count($guess_parts) > 0 && $email['session_id']) {
        $sort = query__load_default_sort('email_participant_guesses_list');
        $pars = array(':session_id' => $email['session_id']);
        $query = "SELECT * from " . table('participants') . "\n                WHERE participant_id IN (\n                    SELECT participant_id FROM " . table('participate_at') . "\n                    WHERE session_id= :session_id)\n                ORDER BY " . $sort;
        $result = or_query($query, $pars);
        while ($p = pdo_fetch_assoc($result)) {
            echo '<OPTION value="' . $p['participant_id'] . '">';
            $items = array();
            foreach ($cols as $k => $c) {
                $items[] = $p[$k];
            }
            echo implode(" ", $items);
            echo '</OPTION>';
        }
    }
    echo '</SELECT>';
}
コード例 #3
0
ファイル: pdfoutput.php プロジェクト: kfarr2/psu-orsee
function pdfoutput__make_part_list($experiment_id, $session_id = "", $pstatus = "", $focus = "", $sort = "", $file = false, $tlang = "")
{
    global $settings;
    if ($tlang == "") {
        global $lang;
    } else {
        $lang = load_language($tlang);
    }
    $experiment = orsee_db_load_array("experiments", $experiment_id, "experiment_id");
    $pstatuses = expregister__get_participation_statuses();
    if ($session_id) {
        $clause = "session_id = '" . $session_id . "'";
        $title = lang('registered_subjects');
    } elseif (isset($pstatuses[$pstatus])) {
        $clause = "pstatus_id = '" . $pstatus . "'";
        if ($pstatus == 0) {
            $clause .= " AND session_id != 0";
        }
        $title = lang('subjects_in_participation_status') . ' "' . $pstatuses[$pstatus]['internal_name'] . '"';
    } elseif ($focus == 'enroled') {
        $clause = "session_id != 0";
        $title = lang('registered_subjects');
    }
    $cols = participant__get_result_table_columns('session_participants_list_pdf');
    if ($session_id) {
        unset($cols['session_id']);
    }
    // load sessions of this experiment
    $pars = array(':experiment_id' => $experiment_id);
    $query = "SELECT *\n\t\t\tFROM " . table('sessions') . "\n\t\t\tWHERE experiment_id= :experiment_id\n\t\t\tORDER BY session_start";
    $result = or_query($query, $pars);
    global $thislist_sessions;
    $thislist_sessions = array();
    while ($line = pdo_fetch_assoc($result)) {
        $thislist_sessions[$line['session_id']] = $line;
    }
    // load participant data for this session/experiment
    $pars = array(':experiment_id' => $experiment_id);
    $select_query = "SELECT * FROM " . table('participate_at') . ", " . table('participants') . "  \n\t\t\t\t\tWHERE " . table('participate_at') . ".experiment_id= :experiment_id\n\t\t\t\t\tAND " . table('participate_at') . ".participant_id=" . table('participants') . ".participant_id\n\t\t\t\t\tAND (" . $clause . ")";
    $order = query__get_sort('session_participants_list_pdf', $sort);
    if (!$order) {
        $order = table('participants') . ".participant_id";
    }
    $select_query .= " ORDER BY " . $order;
    // get result
    $result = or_query($select_query, $pars);
    $participants = array();
    while ($line = pdo_fetch_assoc($result)) {
        $participants[] = $line;
    }
    $result_count = count($participants);
    // load sessions of this experiment
    $pars = array(':texperiment_id' => $experiment_id);
    $squery = "SELECT *\n            FROM " . table('sessions') . "\n\t\t\tWHERE experiment_id= :texperiment_id \n            ORDER BY session_start";
    $result = or_query($squery, $pars);
    $thislist_sessions = array();
    while ($line = pdo_fetch_assoc($result)) {
        $thislist_sessions[$line['session_id']] = $line;
    }
    // reorder by session date if ordered by session id
    if ($sort == "session_id") {
        $temp_participants = $participants;
        $participants = array();
        foreach ($thislist_sessions as $sid => $s) {
            foreach ($temp_participants as $p) {
                if ($p['session_id'] == $sid) {
                    $participants[] = $p;
                }
            }
        }
    }
    unset($temp_participants);
    // determine table title
    $table_title = $experiment['experiment_public_name'];
    if ($session_id) {
        $table_title .= ', ' . lang('session') . ' ' . str_replace("&nbsp;", " ", session__build_name($thislist_sessions[$session_id]));
    }
    $table_title .= ' - ' . $title;
    // determine table headings
    $table_headings = participant__get_result_table_headcells_pdf($cols);
    $table_data = array();
    $pnr = 0;
    foreach ($participants as $p) {
        $pnr++;
        $p['order_number'] = $pnr;
        $row = participant__get_result_table_row_pdf($cols, $p);
        $table_data[] = $row;
    }
    // prepare pdf
    include_once '../tagsets/class.ezpdf.php';
    $pdf = new Cezpdf('a4', 'landscape');
    $pdf->selectFont('../tagsets/fonts/Times-Roman.afm');
    $fontsize = $settings['participant_list_pdf_table_fontsize'] ? $settings['participant_list_pdf_table_fontsize'] : 10;
    $titlefontsize = $settings['participant_list_pdf_title_fontsize'] ? $settings['participant_list_pdf_title_fontsize'] : 12;
    $y = $pdf->ezTable($table_data, $table_headings, $table_title, array('gridlines' => 31, 'showHeadings' => 1, 'shaded' => 2, 'shadeCol' => array(1, 1, 1), 'shadeCol2' => array(0.9, 0.9, 0.9), 'fontSize' => $fontsize, 'titleFontSize' => $titlefontsize, 'rowGap' => 1, 'colGap' => 3, 'innerLineThickness' => 0.5, 'outerLineThickness' => 1, 'maxWidth' => 800, 'width' => 800, 'protectRows' => 2));
    if ($file) {
        $pdffilecode = $pdf->output();
        return $pdffilecode;
    } else {
        $pdf->ezStream(array('Content-Disposition' => 'participant_list.pdf', 'Accept-Ranges' => 0, 'compress' => 1));
    }
}
コード例 #4
0
ファイル: query.php プロジェクト: danorama/orsee
function query__get_sort($type, $search_sort, $experiment_id = 0)
{
    //sanitizes sort string
    //type can be: participants_search_active, participants_search_all, assign, deassign, session_list
    if ($type == 'participants_search_active') {
        $cols = participant__get_result_table_columns('result_table_search_active');
    } elseif ($type == 'participants_search_all') {
        $cols = participant__get_result_table_columns('result_table_search_all');
    } elseif ($type == 'session_participants_list') {
        $cols = participant__get_result_table_columns('session_participants_list');
    } elseif ($type == 'session_participants_list_pdf') {
        $cols = participant__get_result_table_columns('session_participants_list_pdf');
    } else {
        $cols = participant__get_result_table_columns('result_table_assign');
    }
    $pform_columns = participant__load_all_pform_fields();
    $search_ok = false;
    foreach ($cols as $k => $arr) {
        if (isset($pform_columns[$k]['sort_order']) && $pform_columns[$k]['sort_order']) {
            if ($search_sort == $pform_columns[$k]['sort_order']) {
                $search_ok = true;
            }
        } elseif (isset($cols[$k]['sort_order']) && $search_sort == $cols[$k]['sort_order']) {
            $search_ok = true;
        } elseif ($search_sort == $k) {
            $search_ok = true;
        }
    }
    if (!$search_ok) {
        $search_sort = query__load_default_sort($type, $experiment_id);
    }
    return $search_sort;
}
コード例 #5
0
                    if ($session_id) {
                        $target .= "\nsession_id:" . $session_id;
                    }
                    log__admin("experiment_edit_participant_list", $target);
                    redirect('admin/' . thisdoc() . $thiscgis);
                }
            }
        }
    }
}
if ($proceed) {
    // list output
    if ($display == 'enrol') {
        $cols = participant__get_result_table_columns('experiment_assigned_list');
    } else {
        $cols = participant__get_result_table_columns('session_participants_list');
    }
    if (!$session_id || !isset($show_payment_budgets) || $show_payment_budgets == false) {
        unset($cols['payment_budget']);
    }
    if (!$session_id || !isset($show_payment_types) || $show_payment_types == false) {
        unset($cols['payment_type']);
    }
    if (!$session_id) {
        unset($cols['payment_amount']);
    }
    // load participant data for this session/experiment
    $pars = array(':texperiment_id' => $experiment_id);
    $query = "SELECT * FROM " . table('participate_at') . ", " . table('participants') . "  \n\t\t\t\t\tWHERE " . table('participate_at') . ".experiment_id= :texperiment_id \n\t\t\t\t\tAND " . table('participate_at') . ".participant_id=" . table('participants') . ".participant_id\n\t\t\t\t\tAND (" . $clause . ")";
    foreach ($clause_pars as $p => $v) {
        $pars[$p] = $v;