';
$oc_defaultFieldWidth = '60';
$oc_defaultFieldHeight = '5';
$formDisplayAR = array(
'sameline' => ' ',
'newline' => '
'
);
if (!isset($GLOBALS['oc_authorNum'])) {
$GLOBALS['oc_authorNum'] = $GLOBALS['OC_configAR']['OC_authorsMax'];
}
function oc_fieldEnabled($fieldID, &$fieldsAR) {
if (!isset($fieldsAR[$fieldID]['enabled']) || $fieldsAR[$fieldID]['enabled']) {
return(TRUE);
} else {
return(FALSE);
}
}
function oc_genField(&$fid, &$fAR, &$fVals, $fidxtra='') {
$usefid = $fid . $fidxtra;
$field = '';
$field .= '
';
if (isset($fAR['enabled']) && !$fAR['enabled']) {
$disabled = 'disabled ';
} else {
$disabled = '';
}
if (isset($fAR['required']) && $fAR['required']) {
$required = $GLOBALS['OC_configAR']['OC_requiredField'];
} else {
$required = '';
}
if (!empty($fAR['note']) && ($fAR['type'] != 'plain') && ($fAR['type'] != 'hidden')) {
$fieldnote = '
' . $fAR['note'] . '
';
} else {
$fieldnote = '';
}
if (isset($fAR['longlabel']) && $fAR['longlabel']) {
$longlabel = $fieldnote . '
';
$longlabelclass = ' class="plain"';
$fieldnote = '';
} else {
$longlabel = '';
$longlabelclass = '';
}
switch ($fAR['type']) {
case 'plain':
$field .= '
' . $fAR['values'];
break;
case 'hidden':
$field .= '
';
break;
case 'text':
if (isset($fAR['width'])) {
$width = $fAR['width'];
} elseif (isset($fAR['size'])) { // deprecated
$width = $fAR['size'];
} else {
$width = $GLOBALS['oc_defaultFieldWidth'];
}
if (isset($fAR['maxchars'])) {
$maxchars = $fAR['maxchars'];
} elseif (isset($fAR['maxsize'])) { // deprecated
$maxchars = $fAR['maxsize'];
} else {
$maxchars = '';
}
$field .= '
' . $longlabel . '
';
if ( (isset($fAR['maxwords']) && ($fAR['maxwords'] > 0)) || (isset($fAR['minwords']) && ($fAR['minwords'] > 0)) ) { // word limit
$field .= '
';
}
if ( ($maxchars > 0) || (isset($fAR['minchars']) && ($fAR['minchars'] > 0)) ) { // character limit
$field .= '
';
}
break;
case 'email':
$field .= '
' . $longlabel . '
';
break;
case 'textarea':
if (isset($fAR['height'])) {
$height = $fAR['height'];
} elseif (isset($fAR['size'])) { // deprecated
$height = $fAR['size'];
} else {
$height = $GLOBALS['oc_defaultFieldHeight'];
}
$field .= '
' . $longlabel . '
';
if (isset($fAR['maxwords'])) {
$maxwords = $fAR['maxwords'];
} elseif (isset($fAR['maxsize'])) { // deprecated
$maxwords = $fAR['maxsize'];
} else {
$maxwords = 0;
}
if ( ($maxwords > 0) || (isset($fAR['minwords']) && ($fAR['minwords'] > 0)) ) { // word limit
$field .= '
';
}
if ( (isset($fAR['maxchars']) && ($fAR['maxchars'] > 0)) || (isset($fAR['minchars']) && ($fAR['minchars'] > 0)) ) { // character limit
$field .= '
';
}
break;
case 'dropdown':
$field .= '
' . $longlabel . '
';
break;
case 'picklist':
if (!isset($fAR['multiple']) || $fAR['multiple']) { // default to multiple for picklist
$multiple = true;
} else {
$multiple = false;
}
if ($multiple && isset($fVals[$usefid]) && !is_array($fVals[$usefid])) {
$vals = explode(',', $fVals[$usefid]);
} else {
$vals = varValue($usefid, $fVals);
}
$field .= '
' . $longlabel . '
';
break;
case 'radio':
if (isset($fAR['display']) && isset($GLOBALS['formDisplayAR'][$fAR['display']])) {
$delimiter = $GLOBALS['formDisplayAR'][$fAR['display']];
} elseif (isset($fAR['delimiter'])) {
$delimiter = $fAR['delimiter'];
} else {
$delimiter = $GLOBALS['oc_defaultDelimiter'];
}
$field .= '
' . $longlabel . '
';
break;
case 'checkbox':
if (isset($fAR['display']) && isset($GLOBALS['formDisplayAR'][$fAR['display']])) {
$delimiter = $GLOBALS['formDisplayAR'][$fAR['display']];
} elseif (isset($fAR['delimiter'])) {
$delimiter = $fAR['delimiter'];
} else {
$delimiter = $GLOBALS['oc_defaultDelimiter'];
}
$field .= '
' . $longlabel . '
';
break;
case 'password':
$field .= '
' . $longlabel . '
';
break;
case 'file':
$field .= '
' . $longlabel . '
' . oc_('Format') . ':' . $required . ' ';
if (count($GLOBALS['extAR']) == 1) { // Only accept one format?
$field .= $GLOBALS['OC_formatAR'][$GLOBALS['extAR'][0]] . '
';
} else {
$formatOptions = array();
foreach ($GLOBALS['extAR'] as $formatVal) {
$formatOptions[$formatVal] = $GLOBALS['OC_formatAR'][$formatVal];
}
$field .= '
';
}
break;
case 'select': // DEPRECATED - use dropdown or picklist
if (isset($fAR['multiple']) && $fAR['multiple']) {
$multiple = true;
} else {
$multiple = false;
}
if ($multiple && isset($fVals[$usefid]) && !is_array($fVals[$usefid])) {
$vals = explode(',', $fVals[$usefid]);
} else {
$vals = varValue($usefid, $fVals);
}
$field .= '
' . $longlabel . '
';
break;
case 'country': // DEPRECATED - use dropdown with usekey=true and valuetype=country
$field .= '
' . $longlabel . '
';
break;
default:
err('There is an error with field ID ' . $usefid);
}
if (!empty($fieldnote)) {
$field .= $fieldnote;
}
$field .= '
'."\n";
return($field);
}
function oc_displayFields(&$fieldsAR, &$fVals=array()) {
foreach ($fieldsAR as $fieldID => $fieldAR) {
print '' . oc_genField($fieldID, $fieldAR, $fVals) . '
';
}
}
function oc_displayFieldSet(&$fsAR, &$fieldsAR, &$fVals=array()) {
// Include field validation translation strings
print '
';
// Iterate through fieldsets and fields
foreach ($fsAR as $fieldset => $fieldsetAR) {
if (count($fieldsetAR['fields']) == 0) { continue; } // skip fieldset if no fields included
if ((count($fieldsetAR['fields']) == 1) && ($fieldsAR[$fieldsetAR['fields'][0]]['type'] == 'hidden')) { // handle special case of single hidden field
print oc_genField($fieldsetAR['fields'][0], $fieldsAR[$fieldsetAR['fields'][0]], $fVals);
continue;
}
print '