first commit
This commit is contained in:
@@ -0,0 +1,280 @@
|
||||
<?php
|
||||
|
||||
// +----------------------------------------------------------------------+
|
||||
// | OpenConf |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Copyright (c) 2002-2020 Zakon Group LLC. All Rights Reserved. |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | This source file is subject to the OpenConf License, available on |
|
||||
// | the OpenConf web site: www.OpenConf.com |
|
||||
// +----------------------------------------------------------------------+
|
||||
|
||||
// Committee sign up
|
||||
// See include-forms.inc for syntax format
|
||||
|
||||
// Get topics
|
||||
$topq = "SELECT * FROM `" . OCC_TABLE_TOPIC . "`";
|
||||
if ($OC_configAR['OC_topicDisplayAlpha']) {
|
||||
$topq .= " ORDER BY `topicname`";
|
||||
}
|
||||
$topr = ocsql_query($topq) or err('unable to retrieve topics');
|
||||
$topicAR = array();
|
||||
$shortTopicAR = array();
|
||||
if (($tnum = ocsql_num_rows($topr)) > 0) {
|
||||
while ($topl = ocsql_fetch_assoc($topr)) {
|
||||
if ($topl['topicname'] == 'N/A') { continue; }
|
||||
$topicAR[$topl['topicid']] = $topl['topicname'];
|
||||
if (!empty($topl['short'])) {
|
||||
$shortTopicAR[$topl['topicid']] = $topl['short'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$OC_reviewerFieldAR = array();
|
||||
$OC_reviewerFieldSetAR = array();
|
||||
|
||||
// Hooks
|
||||
if (oc_hookSet('committee-profile-preinc')) {
|
||||
foreach ($GLOBALS['OC_hooksAR']['committee-profile-preinc'] as $v) {
|
||||
require_once $v;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($mod_oc_customforms_customCmtForm) || (!$mod_oc_customforms_customCmtForm)) { // skip if we have a custom form
|
||||
|
||||
// Consent
|
||||
if (
|
||||
(OCC_LICENSE != 'Public')
|
||||
||
|
||||
((OCC_LICENSE == 'Public') && ($OC_configAR['OC_privacy_display'] > 0))
|
||||
) {
|
||||
$OC_reviewerFieldAR['consent'] = array(
|
||||
'name' => oc_('Consent'),
|
||||
'short' => oc_('Consent'),
|
||||
'note' => '',
|
||||
'type' => 'checkbox',
|
||||
'usekey' => false,
|
||||
'required' => true,
|
||||
'delimiter' => '',
|
||||
'values' => array(oc_('I consent to the collection and use of my personal information, including receiving emails, consistent with the Privacy Policy linked above.'))
|
||||
);
|
||||
|
||||
$OC_reviewerFieldSetAR['fs_consent'] = array(
|
||||
'fieldset' => oc_('Consent'),
|
||||
'note' => '',
|
||||
'fields' => array('consent')
|
||||
);
|
||||
}
|
||||
|
||||
// Personal Info
|
||||
$OC_reviewerFieldAR['orcid'] = array(
|
||||
'name' => oc_('ORCID'),
|
||||
'short' => oc_('ORCID'),
|
||||
'note' => '',
|
||||
'type' => 'text',
|
||||
'width' => 30,
|
||||
'maxchars' => 30,
|
||||
'required' => false
|
||||
);
|
||||
|
||||
$OC_reviewerFieldAR['name_first'] = array(
|
||||
'name' => oc_('First/Given Name'),
|
||||
'short' => oc_('First Name'),
|
||||
'note' => '',
|
||||
'type' => 'text',
|
||||
'maxchars' => 60,
|
||||
'required' => false
|
||||
);
|
||||
|
||||
$OC_reviewerFieldAR['name_last'] = array(
|
||||
'name' => oc_('Last/Family Name'),
|
||||
'short' => oc_('Last Name'),
|
||||
'note' => '',
|
||||
'type' => 'text',
|
||||
'maxchars' => 40,
|
||||
'required' => true
|
||||
);
|
||||
|
||||
$OC_reviewerFieldAR['email'] = array(
|
||||
'name' => oc_('Email'),
|
||||
'short' => oc_('Email'),
|
||||
'note' => '',
|
||||
'type' => 'email',
|
||||
'required' => true
|
||||
);
|
||||
|
||||
$OC_reviewerFieldAR['organization'] = array(
|
||||
'name' => oc_('Organization'),
|
||||
'short' => oc_('Organization'),
|
||||
'note' => '',
|
||||
'type' => 'text',
|
||||
'maxchars' => 150, // limitation as a result of utf8mb4 keys
|
||||
'required' => false
|
||||
);
|
||||
|
||||
$OC_reviewerFieldAR['country'] = array(
|
||||
'name' => oc_('Country'),
|
||||
'short' => oc_('Country'),
|
||||
'note' => '',
|
||||
'type' => 'dropdown',
|
||||
'blank' => true,
|
||||
'required' => false,
|
||||
'valuetype' => 'country'
|
||||
);
|
||||
|
||||
$OC_reviewerFieldAR['telephone'] = array(
|
||||
'name' => oc_('Telephone'),
|
||||
'short' => oc_('Telephone'),
|
||||
'note' => '',
|
||||
'type' => 'text',
|
||||
'required' => false
|
||||
);
|
||||
|
||||
$OC_reviewerFieldAR['url'] = array(
|
||||
'name' => oc_('Web Site'),
|
||||
'short' => oc_('Web Site'),
|
||||
'note' => '',
|
||||
'type' => 'text',
|
||||
'required' => false,
|
||||
'placeholder' => 'https://'
|
||||
);
|
||||
|
||||
$OC_reviewerFieldSetAR['fs_personal'] = array(
|
||||
'fieldset' => oc_('Personal Info'),
|
||||
'note' => '',
|
||||
'fields' => array('orcid', 'name_first', 'name_last', 'email', 'organization', 'country', 'telephone', 'url')
|
||||
);
|
||||
|
||||
// Topics
|
||||
$OC_reviewerFieldAR['topics'] = array(
|
||||
'name' => oc_('Topic Areas'),
|
||||
'short' => oc_('Topic(s)'),
|
||||
'note' => '',
|
||||
'type' => 'checkbox',
|
||||
'usekey' => true,
|
||||
'display' => 'newline',
|
||||
'required' => true,
|
||||
'valuetype' => 'topic'
|
||||
);
|
||||
if ($OC_configAR['OC_multipleCommitteeTopics'] != 1) { // (!1 = limited to 1)
|
||||
$OC_reviewerFieldAR['topics']['maxselections'] = 1;
|
||||
}
|
||||
|
||||
$OC_reviewerFieldSetAR['fs_topics'] = array(
|
||||
'fieldset' => oc_('Topic Areas'),
|
||||
'note' => oc_('To help match submissions to reviewers, please select the area(s) most applicable to your submission'),
|
||||
'fields' => array('topics')
|
||||
);
|
||||
|
||||
|
||||
// Comments
|
||||
$OC_reviewerFieldAR['comments'] = array(
|
||||
'name' => oc_('Comments to Chair'),
|
||||
'short' => oc_('Comments'),
|
||||
'note' => '',
|
||||
'type' => 'textarea',
|
||||
'height' => 5,
|
||||
'required' => false
|
||||
);
|
||||
|
||||
$OC_reviewerFieldSetAR['fs_comments'] = array(
|
||||
'fieldset' => oc_('Comments'),
|
||||
'note' => '',
|
||||
'fields' => array('comments')
|
||||
);
|
||||
|
||||
// Account
|
||||
$OC_reviewerFieldAR['username'] = array(
|
||||
'name' => oc_('Username'),
|
||||
'short' => oc_('Username'),
|
||||
//T: %1$d-%2$d = range of letters allowed (e.g., 5-50)
|
||||
'note' => sprintf(oc_('%1$d-%2$d characters: letters, numbers, @, period (.), hyphen (-)'), 5, 50),
|
||||
'minchars' => 5,
|
||||
'maxchars' => 50,
|
||||
'type' => 'text',
|
||||
'donotvalidate' => true,
|
||||
'required' => true // always true
|
||||
);
|
||||
$OC_reviewerFieldAR['password1'] = array(
|
||||
'name' => oc_('Password'),
|
||||
'short' => oc_('Password'),
|
||||
'note' => sprintf(oc_('%d or more characters (any)'), 8),
|
||||
'type' => 'password',
|
||||
'donotvalidate' => true,
|
||||
'required' => true
|
||||
);
|
||||
|
||||
$OC_reviewerFieldAR['password2'] = array(
|
||||
'name' => oc_('Re-enter Password'),
|
||||
'short' => oc_('Confirm'),
|
||||
'note' => '',
|
||||
'type' => 'password',
|
||||
'donotvalidate' => true,
|
||||
'required' => true
|
||||
);
|
||||
|
||||
$OC_reviewerFieldSetAR['fs_passwords'] = array(
|
||||
'fieldset' => oc_('Account'),
|
||||
'note' => '',
|
||||
'fields' => array('username', 'password1', 'password2')
|
||||
);
|
||||
|
||||
// Unset fields that should not be displayed on form
|
||||
if (!empty($GLOBALS['OC_configAR']['OC_hideCmtFields'])) {
|
||||
$hCF = explode(',', $GLOBALS['OC_configAR']['OC_hideCmtFields']);
|
||||
foreach ($hCF as $hc_f) {
|
||||
list($a_fs, $a_f) = explode(':', $hc_f);
|
||||
unset($OC_reviewerFieldAR[$a_f]);
|
||||
if (in_array($a_f, $OC_reviewerFieldSetAR[$a_fs]['fields'])) {
|
||||
$OC_reviewerFieldSetAR[$a_fs]['fields'] = array_values(array_diff($OC_reviewerFieldSetAR[$a_fs]['fields'], array($a_f)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // if ! custom form
|
||||
|
||||
|
||||
if (oc_hookSet('committee-profile-inc')) {
|
||||
foreach ($GLOBALS['OC_hooksAR']['committee-profile-inc'] as $v) {
|
||||
require_once $v;
|
||||
}
|
||||
}
|
||||
|
||||
// Make updates if not customforms edit
|
||||
if (! isset($mod_oc_customforms_edit) || ! $mod_oc_customforms_edit) {
|
||||
foreach ($OC_reviewerFieldAR as $sfk => $sf) {
|
||||
// remove fields designated for new submissions (sign up) only if profile being edited
|
||||
if (isset($sf['newsubonly']) && $sf['newsubonly'] && isset($GLOBALS['OC_cmtEdit']) && $GLOBALS['OC_cmtEdit']) {
|
||||
unset($OC_reviewerFieldAR[$sfk]);
|
||||
foreach ($OC_reviewerFieldSetAR as $fsid => $fsar) {
|
||||
if (in_array($sfk, $fsar['fields'])) {
|
||||
$OC_reviewerFieldSetAR[$fsid]['fields'] = array_diff($OC_reviewerFieldSetAR[$fsid]['fields'], array($sfk));
|
||||
continue; // field should only be in one fieldset
|
||||
}
|
||||
}
|
||||
} else { // update valuetypes
|
||||
if (isset($sf['valuetype']) && !empty($sf['valuetype']) && ($sf['valuetype'] != 'custom')) {
|
||||
switch($sf['valuetype']) {
|
||||
case 'country':
|
||||
require_once OCC_COUNTRY_FILE;
|
||||
$OC_reviewerFieldAR[$sfk]['values'] = $GLOBALS['OC_countryAR'];
|
||||
break;
|
||||
|
||||
case 'topic':
|
||||
$OC_reviewerFieldAR[$sfk]['values'] = $topicAR;
|
||||
break;
|
||||
|
||||
default: // lib file
|
||||
require_once OCC_LIB_DIR . $sf['valuetype'] . '.inc';
|
||||
$OC_reviewerFieldAR[$sfk]['values'] = $GLOBALS['OC_' . $sf['valuetype'] . 'AR'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Update Topics to radio if required and max selections = 1
|
||||
if (isset($OC_reviewerFieldAR['topics']['required']) && $OC_reviewerFieldAR['topics']['required'] && isset($OC_reviewerFieldAR['topics']['maxselections']) && ($OC_reviewerFieldAR['topics']['maxselections'] == 1) && ($OC_reviewerFieldAR['topics']['type'] == 'checkbox')){
|
||||
$OC_reviewerFieldAR['topics']['type'] = 'radio';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user