'); } else { $useCK = false; } $OC_extraHeaderAR[] = ' '; if (!OCC_INSTALL_COMPLETE && isset($_REQUEST['install']) && ($_REQUEST['install'] == 1)) { require_once "install-include.php"; $token = ''; } else { beginChairSession(); printHeader("Configuration", 1); $token = $_SESSION[OCC_SESSION_VAR_NAME]['chairtoken']; // Display active modules config if (isset($OC_activeModulesAR) && !empty($OC_activeModulesAR)) { $moduleOptions = ''; foreach ($OC_activeModulesAR as $module) { if (is_file('../modules/' . $module . '/settings.inc')) { $moduleOptions .= ''; } } if (!empty($moduleOptions)) { print '
'; } } } // YesNo fields $yesNoFieldsAR = array('OC_includeSubmissionUploadLink', 'OC_trackStudent', 'OC_notifyIncludeIP', 'OC_reviewerReadPapers', 'OC_reviewerSeeAssignedReviews', 'OC_reviewerCompleteBeforeSAR', 'OC_reviewerSeeOtherReviews', 'OC_reviewerSeeOtherReviewers', 'OC_reviewerSeeAuthors', 'OC_advocateReadPapers', 'OC_advocateSeeOtherReviews', 'OC_advocateSeeAuthors', 'OC_paperAdvocates'); if ( ! oc_moduleActive('oc_aws') ) { // submission form file upload is not compatible with AWS $yesNoFieldsAR[] = 'OC_includeSubmissionUploadField'; $yesNoFieldsAR[] = 'OC_requireSubmissionUploadField'; } // Notification array $notifyAR = array( 'OC_notifyAuthorSubmit' => 'Author makes a submission', 'OC_notifyAuthorEdit' => 'Author updates (edits) submission', 'OC_notifyAuthorEmailPapers' => 'Author requests own submission list emailed', 'OC_notifyAuthorUpload' => 'Author uploads a file', 'OC_notifyAuthorReset' => 'Author requests password reset', 'OC_notifyAuthorWithdraw' => 'Author withdraws submission', 'OC_notifyReviewerSignup' => 'Committee member signs up for account', 'OC_notifyReviewerProfileUpdate' => 'Committee member updates profile', 'OC_notifyReviewerReset' => 'Committee member resets password', 'OC_notifyReviewerEmailUsername' => 'Committee member requests username emailed' ); // Submission? $e = array(); if (isset($_POST['submit']) && ($_POST['submit'] == "Save Settings")) { // Check for valid submission if (OCC_INSTALL_COMPLETE && !validToken('chair')) { warn('Invalid submission', $hdr, $hdrfn); } // Check input if (!isset($_POST['OC_confName']) || !preg_match("/\w/", $_POST['OC_confName'])) { $e[] = 'Event Short Name must include at least one alphanumeric character'; } if (!isset($_POST['OC_confNameFull']) || !preg_match("/\w/", $_POST['OC_confNameFull'])) { $e[] = 'Event Full Name must include at least one alphanumeric character'; } if (!isset($_POST['OC_pcemail'])) { $e[] = 'Chair Email address invalid.'; } elseif (preg_match("/,/", $_POST['OC_pcemail'])) { // Multiple addresses $cmAR = explode(",", $_POST['OC_pcemail']); foreach ($cmAR as $cm) { $cm = trim($cm); if (!validEmail($cm)) { $e[] = 'Chair Email does not appear to be valid'; break; } } } elseif (!validEmail($_POST['OC_pcemail'])) { // Single address $e[] = 'Chair Email does not appear to be valid'; } if (!isset($_POST['OC_confirmmail'])) { $e[] = 'Notification Email address invalid. Try setting it the same as the Chair Email'; } elseif (preg_match("/,/", $_POST['OC_confirmmail'])) { // Multiple addresses $cmAR = explode(",", $_POST['OC_confirmmail']); foreach ($cmAR as $cm) { $cm = trim($cm); if (!validEmail($cm)) { $e[] = 'Notification Email does not appear to be valid'; break; } } } elseif (!validEmail($_POST['OC_confirmmail'])) { // Single address $e[] = 'Notification Email does not appear to be valid'; } if (($_POST['OC_trackStudent'] != 0) && ($_POST['OC_trackStudent'] != 1)) { $e[] = 'Track Students value is invalid'; } if (!isset($_POST['OC_abstractLength']) || !ctype_digit($_POST['OC_abstractLength'])) { $e[] = 'Abstract Length value is invalid'; } if (!isset($_POST['OC_extar']) || count($_POST['OC_extar']) == 0) { $e[] = 'Select at least one file format'; } else { // check formats are valid foreach ($_POST['OC_extar'] as $fmat) { if (!isset($OC_formatAR[$fmat])) { $e[] = 'Invalid format selected'; continue; } } } $notifyKeysAR = array_keys($notifyAR); foreach ($notifyKeysAR as $nk) { if (!isset($_POST[$nk])) { $_POST[$nk] = 0; } elseif (!preg_match("/^[01]$/", $_POST[$nk])) { $e[] = 'Invalid notification selection'; continue; } } foreach ($yesNoFieldsAR as $ynf) { if (!isset($_POST[$ynf]) || !isset($yesNoAR[$_POST[$ynf]])) { $e[] = 'Invalid option (' . safeHTMLstr($ynf) . ')'; } } if (!isset($_POST['OC_timeZone']) || !in_array($_POST['OC_timeZone'], $OC_zoneAR)) { $e[] = 'Time Zone is invalid'; } if (!isset($_POST['OC_locales']) || empty($_POST['OC_locales']) || !is_array($_POST['OC_locales'])) { $e[] = 'At least one language must be selected'; $_POST['OC_locales'] = array(); } else { if (!isset($_POST['OC_localeDefault']) || !isset($OC_languageAR[$_POST['OC_localeDefault']])) { $e[] = 'Default Language is invalid'; } elseif (!in_array($_POST['OC_localeDefault'], $_POST['OC_locales'])) { $_POST['OC_locales'][] = $_POST['OC_localeDefault']; // auto-select default language } foreach ($_POST['OC_locales'] as $locale) { if (!isset($OC_languageAR[$locale])) { $e[] = 'Invalid locale selected: ' . safeHTMLstr($locale); } } } if (empty($e)) { // Update form's OC_ fields $_POST['OC_extar'] = implode(',', $_POST['OC_extar']); $_POST['OC_locales'] = implode(',', $_POST['OC_locales']); foreach (array_keys($_POST) as $p) { if (preg_match("/^OC_[\w-]+$/", $p) && isset($OC_configAR[$p]) && ($OC_configAR[$p] != $_POST[$p])) { updateConfigSetting($p, $_POST[$p], 'OC'); $OC_configAR[$p] = $_POST[$p]; } } // if install, redirect if (isset($_REQUEST['install']) && ($_REQUEST['install'] == 1)) { header("Location: set_topics.php?install=1"); exit; } print 'Configuration sucessfully updated
'; // reset special vars to array $_POST['OC_extar'] = explode(',', $OC_configAR['OC_extar']); $_POST['OC_locales'] = explode(',', $OC_configAR['OC_locales']); } } else { // not submit; init POST with config values $_POST = $OC_configAR; $_POST['OC_locales'] = explode(',', $OC_configAR['OC_locales']); } if ((!OCC_INSTALL_COMPLETE) && isset($_REQUEST['install']) && ($_REQUEST['install'] == 1)) { printHeader($hdr,$hdrfn); print 'Step 3 of 5: Tailor Configuration Settings
'; } if (!empty($e)) { print '