function CreateDerived($a_form_data) { if (isset($a_form_data["derive_fields"])) { $a_errors = array(); // // get the list of derived field specifications // $a_list = TrimArray(explode(",", $a_form_data["derive_fields"])); foreach ($a_list as $s_fld_spec) { if (($i_pos = strpos($s_fld_spec, "=")) === false) { $a_errors[] = $s_fld_spec; continue; } $s_name = trim(substr($s_fld_spec, 0, $i_pos)); $s_fld_spec = substr($s_fld_spec, $i_pos + 1); if (($a_value_spec = ParseDerivation($a_form_data, $s_fld_spec, $s_name, $a_errors)) === false) { break; } $a_form_data[$s_name] = DeriveValue($a_form_data, $a_value_spec, $s_name, $a_errors); } if (count($a_errors) > 0) { SendAlert(GetMessage(MSG_DERIVED_INVALID) . implode("\n", $a_errors)); Error("derivation_failure", GetMessage(MSG_INT_FORM_ERROR)); } } return $a_form_data; }
function SetFileNames($s_name_spec, $a_order, $a_fields, $a_raw_fields, $a_all_raw_values, $a_file_vars) { $a_errors = array(); // // get the list of file name derivations // $a_list = TrimArray(explode(",", $s_name_spec)); foreach ($a_list as $s_fld_spec) { if ($s_fld_spec === "") { // // silently ignore empty file name derivations // continue; } if (($i_pos = strpos($s_fld_spec, "=")) === false) { $a_errors[] = $s_fld_spec; continue; } $s_name = trim(substr($s_fld_spec, 0, $i_pos)); $s_fld_spec = substr($s_fld_spec, $i_pos + 1); if (($a_value_spec = ParseDerivation($a_raw_fields, $s_fld_spec, $s_name, $a_errors)) === false) { break; } if (isset($a_file_vars[$s_name]) && IsUploadedFile($a_file_vars[$s_name])) { // // we create our own special entry in the file variable's data // $a_file_vars[$s_name]["new_name"] = DeriveValue($a_raw_fields, $a_value_spec, $s_name, $a_errors); // // we also create (derive) a new field called 'name_of_X' // where X is the file fields's name // ProcessField("name_of_{$s_name}", $a_file_vars[$s_name]["new_name"], $a_order, $a_fields, $a_raw_fields); $a_all_raw_values["name_of_{$s_name}"] = $a_file_vars[$s_name]["new_name"]; } /* This is annoying if a file upload is optional. Just ignore missing file upload fields. else SendAlert(GetMessage(MSG_FILE_NAMES_NOT_FILE, array("NAME"=>$s_name)));*/ } if (count($a_errors) > 0) { SendAlert(GetMessage(MSG_FILE_NAMES_INVALID) . implode("\n", $a_errors)); Error("file_names_derivation_failure", GetMessage(MSG_INT_FORM_ERROR)); } return array($a_order, $a_fields, $a_raw_fields, $a_all_raw_values, $a_file_vars); }
function CreateDerived($a_form_data) { if (isset($a_form_data["derive_fields"])) { $a_errors = array(); // // get the list of derived field specifications // $a_list = TrimArray(explode(",", $a_form_data["derive_fields"])); foreach ($a_list as $s_fld_spec) { if (($i_pos = strpos($s_fld_spec, "=")) === false) { $a_errors[] = $s_fld_spec; continue; } $s_name = trim(substr($s_fld_spec, 0, $i_pos)); $s_fld_spec = substr($s_fld_spec, $i_pos + 1); if (($a_value_spec = ParseDerivation($a_form_data, $s_fld_spec, $s_name, $a_errors)) === false) { break; } $a_form_data[$s_name] = DeriveValue($a_form_data, $a_value_spec, $s_name, $a_errors); } if (count($a_errors) > 0) { SendAlert("Some derive_field specifications are invalid:\n" . implode("\n", $a_errors)); Error("derivation_failure", "Internal form error"); } } return $a_form_data; }