Example #1
0
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);
}
Example #3
0
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;
}