'Submission ID', 'type' => 'int', 'fieldset' => '', ); $intFieldsAR[] = 'paperid'; setupFieldsAR($fieldsAR, $OC_submissionFieldSetAR, $OC_submissionFieldAR, $dateFieldsAR, $skipFieldTypeAR, $skipFieldIdAR); $fieldsAR['submissiondate'] = array( 'short' => 'Submission Date', 'type' => 'date', 'fieldset' => 'Extras', ); $dateFieldsAR[] = 'submissiondate'; $fieldsAR['lastupdate'] = array( 'short' => 'Last Updated', 'type' => 'date', 'fieldset' => 'Extras', ); $dateFieldsAR[] = 'lastupdate'; $fieldsAR['accepted'] = array( 'short' => 'Acceptance Decision', 'type' => 'dropdown', 'fieldset' => 'Extras', 'values' => array() ); // values also used for adv_recommendation below foreach ($OC_acceptanceValuesAR as $acc) { $fieldsAR['accepted']['values'][$acc['value']] = $acc['value']; } $fieldsAR['accepted']['values']['_NULL_'] = 'pending'; if ($OC_configAR['OC_paperAdvocates']) { $fieldsAR['adv_recommendation'] = array( 'short' => 'Advocate Recommendation', 'type' => 'dropdown', 'fieldset' => 'Extras', 'values' => $fieldsAR['accepted']['values'] ); $fieldsAR['advocateid'] = array( 'short' => 'Advocate ID (assigned)', 'type' => 'int', 'fieldset' => 'Extras' ); $intFieldsAR[] = 'advocateid'; } $fieldsAR['reviewerid'] = array( 'short' => 'Reviewer ID (assigned)', 'type' => 'int', 'fieldset' => 'Extras' ); $intFieldsAR[] = 'reviewerid'; $fieldsAR['score'] = array( 'short' => 'Reviews Score (average)', 'type' => 'int', 'fieldset' => 'Extras', ); $decFieldsAR[] = 'score'; // Hooks // -- Use 'Extras' for fieldset name if (oc_hookSet('search-submissions')) { foreach ($GLOBALS['OC_hooksAR']['search-submissions'] as $v) { require_once $v; } } // Search Submission POST if (isset($_POST['ocsubmit']) && ($_POST['ocsubmit'] == 'Search')) { displayResultsHeader(); // Check for valid submission if (!validToken('chair')) { print '

Invalid submission

'; } else { $q = ''; $includeTopic = false; $includeAdvocate = false; $includeReviewer = false; for ($i=1; $i <= $searchFieldNum; $i++) { if (validateSearchFields($i, $fieldsAR, $intFieldsAR, $dateFieldsAR, $decFieldsAR)) { $f = $_POST['searchfield'.$i]; $fval = $_POST['searchvalue'.$i]; if ($f == 'topics') { $q .= " AND " . queryFieldWrapper(OCC_TABLE_PAPERTOPIC, 'topicid', 'dropdown', $fval, false); $includeTopic = true; } elseif ( ($f == 'accepted') && ($fval == '_NULL_') ) { $q .= " AND `" . OCC_TABLE_PAPER . "`.`accepted` IS NULL"; } elseif ($OC_configAR['OC_paperAdvocates'] && ($f == 'adv_recommendation')) { $q .= " AND " . queryFieldWrapper(OCC_TABLE_PAPERADVOCATE, 'adv_recommendation', 'dropdown', $fval, false); $includeAdvocate = true; } elseif ($OC_configAR['OC_paperAdvocates'] && ($f == 'advocateid')) { $q .= " AND " . queryFieldWrapper(OCC_TABLE_PAPERADVOCATE, 'advocateid', 'int', $fval, $_POST['searchoperator'.$i]); $includeAdvocate = true; } elseif ($f == 'reviewerid') { $q .= " AND " . queryFieldWrapper(OCC_TABLE_PAPERREVIEWER, 'reviewerid', 'int', $fval, $_POST['searchoperator'.$i]); $includeReviewer = true; } elseif ($f == 'score') { $q .= " AND `" . OCC_TABLE_PAPER . "`.`paperid` IN (SELECT `" . OCC_TABLE_PAPERREVIEWER . "`.`paperid` FROM `" . OCC_TABLE_PAPERREVIEWER . "` GROUP BY `" . OCC_TABLE_PAPERREVIEWER . "`.`paperid` HAVING " . queryFieldWrapper(OCC_TABLE_PAPERREVIEWER, 'score', 'dropdown', $fval, $_POST['searchoperator'.$i], "AVG(`" . OCC_TABLE_PAPERREVIEWER . "`.`score`)") . ")"; } elseif (in_array($f, $OC_submissionFieldSetAR['fs_authors']['fields'])) { $q .= " AND " . queryFieldWrapper(OCC_TABLE_AUTHOR, $f, $fieldsAR[$f]['type'], $fval, $_POST['searchoperator'.$i]); } else { $q .= " AND " . queryFieldWrapper(OCC_TABLE_PAPER, $f, $fieldsAR[$f]['type'], $fval, $_POST['searchoperator'.$i]); } } } // Display results if (!empty($q)) { $q = "SELECT `" . OCC_TABLE_PAPER . "`.`paperid`, `" . OCC_TABLE_PAPER . "`.`title`, `" . OCC_TABLE_PAPER . "`.`type`, CONCAT_WS(' ', `" . OCC_TABLE_AUTHOR . "`.`name_first`, `" . OCC_TABLE_AUTHOR . "`.`name_last`) AS `name`, `" . OCC_TABLE_AUTHOR . "`.`email` FROM `" . OCC_TABLE_PAPER . "`, `" . OCC_TABLE_AUTHOR . "`" . ($includeTopic ? (", `" . OCC_TABLE_PAPERTOPIC . "`") : '') . ($includeAdvocate ? (", `" . OCC_TABLE_PAPERADVOCATE . "`") : '') . ($includeReviewer ? (", `" . OCC_TABLE_PAPERREVIEWER . "`") : '') . " WHERE `" . OCC_TABLE_PAPER . "`.`paperid`=`" . OCC_TABLE_AUTHOR . "`.`paperid` AND `" . OCC_TABLE_PAPER . "`.`contactid`=`" . OCC_TABLE_AUTHOR . "`.`position` " . ($includeTopic ? ("AND `" . OCC_TABLE_PAPER . "`.`paperid`=`" . OCC_TABLE_PAPERTOPIC . "`.`paperid` ") : '') . ($includeAdvocate ? ("AND `" . OCC_TABLE_PAPER . "`.`paperid`=`" . OCC_TABLE_PAPERADVOCATE . "`.`paperid` ") : '') . ($includeReviewer ? ("AND `" . OCC_TABLE_PAPER . "`.`paperid`=`" . OCC_TABLE_PAPERREVIEWER . "`.`paperid` ") : '') . $q . " GROUP BY `paperid` ORDER BY `paperid`"; if ($r = ocsql_query($q)) { if (($num = ocsql_num_rows($r)) > 0) { print '

Matches: ' . safeHTMLstr($num) . '

' . (isset($fieldsAR['type']) ? '' : '') . ''; $emailAddresses = array(); $row = 1; while ($l = ocsql_fetch_assoc($r)) { print '' . (isset($fieldsAR['type']) ? ('') : '') . ''; if ($row==1) { $row=2; } else { $row=1; } $emailAddresses[] = $l['paperid'] . '/' . $l['email']; } print '
IDTitleContactType
' . safeHTMLstr($l['paperid']) . '' . safeHTMLstr($l['title']) . '' . safeHTMLstr($l['name']) . '' . safeHTMLstr($l['type']) . '
'; displayEmailForm($emailAddresses, 'authors_all', 'Email Contact Author(s)'); } else { print '

No matches found

'; } } else { print '

Error encoutered while searching

'; } } else { print '

Missing or invalid search parameters

'; } } displayResultsFooter(); exit; } // Display search form printHeader('Submissions Search', 1); displaySearchForm($fieldsAR, $dateFieldsAR, $intFieldsAR, $decFieldsAR, $searchFieldNum); printFooter(); ?>