'Submission ID', 'reviewerid' => 'Reviewer ID', 'title' => 'Submission Title', 'name' => 'Reviewer Name' ); foreach ($OC_reviewQuestionsAR as $k => $v) { $fieldAR[$k] = $v['short']; } // value needs special handling as it's stored in DB with multiple values in a single field if (isset($fieldAR['value'])) { unset($fieldAR['value']); $fieldAR['_value'] = 'Value'; } // session needs special handling as it's stored in seaprate table if (isset($fieldAR['sessions'])) { unset($fieldAR['sessions']); $fieldAR['_sessions'] = 'Session(s)'; } $fieldAR['completed'] = 'Review Completed (True/False)'; // Default list of checked fields $checkedFieldAR = array_keys($fieldAR); // Include extra fields if (oc_hookSet('chair-export_reviews-fields')) { foreach ($OC_hooksAR['chair-export_reviews-fields'] as $v) { require_once $v; } } if (isset($_POST['submit']) && ($_POST['submit'] == "Generate File") && isset($_POST['fields']) && !empty($_POST['fields'])) { // Check for valid submission if (!validToken('chair')) { warn('Invalid submission'); } // Verify Fields $fieldARkeys = array_keys($fieldAR); foreach ($_POST['fields'] as $f) { if (!in_array($f,$fieldARkeys)) { err('Invalid field name selection'); } } // Init extra field AR $extraAR = array(); // List of fields to export $exportFieldsAR = $_POST['fields']; // Get extra fields data // value if (isset($fieldAR['_value'])) { $q = "SELECT `paperid`, `reviewerid`, `value` FROM `" . OCC_TABLE_PAPERREVIEWER . "`"; $r = ocsql_query($q) or err("Unable to retrieve value data for export"); while ($l = mysql_fetch_assoc($r)) { if (empty($l['value'])) { continue; } $val = ''; $vAR = explode(",", $l['value']); foreach ($vAR as $v) { $val .= $OC_reviewQuestionsAR['value']['values'][$v] . "; "; } $extraAR[$l['paperid'] . '-' . $l['reviewerid']]['_value'] = rtrim($val, "; "); } } // sessions if (isset($fieldAR['_sessions'])) { $q = "SELECT `" . OCC_TABLE_PAPERSESSION . "`.`paperid`, `" . OCC_TABLE_PAPERSESSION . "`.`reviewerid`, `" . OCC_TABLE_TOPIC . "`.`topicname`, `" . OCC_TABLE_TOPIC . "`.`short` FROM `" . OCC_TABLE_PAPERSESSION . "`, `" . OCC_TABLE_TOPIC . "` WHERE `" . OCC_TABLE_PAPERSESSION . "`.`topicid`=`" . OCC_TABLE_TOPIC . "`.`topicid"; $r = ocsql_query($q) or err("Unable to retrieve session data for export"); while ($l = mysql_fetch_assoc($r)) { if (isset($extraAR[$l['paperid'] . '-' . $l['reviewerid']]['_sessions'])) { $extraAR[$l['paperid'] . '-' . $l['reviewerid']]['_sessions'] .= ',' . useTopic($l['short'], $l['topicname']); } else { $extraAR[$l['paperid'] . '-' . $l['reviewerid']]['_sessions'] = useTopic($l['short'], $l['topicname']); } } } if (oc_hookSet('chair-export_reviews-data')) { foreach ($OC_hooksAR['chair-export_reviews-data'] as $v) { require_once $v; } } // Get review data & iterate through each $q = "SELECT `" . OCC_TABLE_PAPERREVIEWER . "`.*, CONCAT_WS('-', `" . OCC_TABLE_PAPERREVIEWER . "`.`paperid`, `" . OCC_TABLE_PAPERREVIEWER . "`.`reviewerid`) AS `id`, `" . OCC_TABLE_PAPER . "`.`title`, CONCAT_WS(' ', `" . OCC_TABLE_REVIEWER . "`.`name_first`, `" . OCC_TABLE_REVIEWER . "`.`name_last`) AS `name` FROM `" . OCC_TABLE_PAPERREVIEWER . "`, `" . OCC_TABLE_PAPER . "`, `" . OCC_TABLE_REVIEWER . "` WHERE `" . OCC_TABLE_PAPERREVIEWER . "`.`paperid`=`" . OCC_TABLE_PAPER . "`.`paperid` AND `" . OCC_TABLE_PAPERREVIEWER . "`.`reviewerid`=`" . OCC_TABLE_REVIEWER . "`.`reviewerid` ORDER BY `paperid`, `reviewerid`"; $r = ocsql_query($q) or err("Unable to retrieve data for export"); if (mysql_num_rows($r) == 0) { warn("There is no review data to export",'Export Reviews',1); exit; } else { // Export file require_once 'export.inc'; oc_export($scope, $exportFieldsAR, $fieldAR, $r, $extraAR, $OC_reviewQuestionsAR); exit; } } // Display form printHeader('Export Reviews', 1); print '

Export will generate one row/entry per submission/reviewer pair.

Select Fields to Export:

'; foreach ($fieldAR as $fieldID => $fieldName) { if (preg_match("/^skip\d+$/", $fieldID)) { print '

'; continue; } print '
\n"; } print '

    Format:

Note: When opening up a CSV or Tab-delimited file in a spreadsheet, you may need to specify the character encoding: UTF-8.

'; printFooter(); ?>