protected function UCXFTestCase::getEditValues in Extra Fields Checkout Pane 7
Same name and namespace in other branches
- 6.2 uc_extra_fields_pane.test \UCXFTestCase::getEditValues()
Generates an array of values to post into an address form
Parameters
array $fields: An array of UCXF_Field objects.
array $parents: The parent form elements.
array $values: (Some of) the values to use in the address form.
string $prefix: Optionally prefixes every field name.
Return value
array An array with for each field a value.
3 calls to UCXFTestCase::getEditValues()
- UCXFCheckoutTestCase::testSanitizing in ./uc_extra_fields_pane.test 
- Test if field values are properly sanitized.
- UCXFOrderTestCase::testOrder in ./uc_extra_fields_pane.test 
- Test the order administration.
- UCXFTestCase::checkout in ./uc_extra_fields_pane.test 
- Overrides UbercartTestHelper::checkout().
File
- ./uc_extra_fields_pane.test, line 217 
- Automated tests for Extra Fields Pane
Class
- UCXFTestCase
- Base class for all Extra Fields Pane test cases.
Code
protected function getEditValues($fields, $parents = array(), $values = array(), $prefix = '') {
  // Initialize values array
  $form_values = array();
  $extra_values = array();
  // Calculate parent string if needed.
  $parent_string = '';
  if (count($parents) > 0) {
    foreach ($parents as $parent) {
      if ($parent_string) {
        $parent_string = $parent_string . '[' . $parent . ']';
      }
      else {
        $parent_string = $parent;
      }
    }
  }
  // Fill in value for every field
  foreach ($fields as $field) {
    if (isset($values[$field->db_name])) {
      // The value is already set. Do not override it.
      continue;
    }
    $default = $this
      ->generateDefaultValue($field);
    if (!is_null($default)) {
      $values[$field->db_name] = $this
        ->generateDefaultValue($field);
    }
    elseif ($field->value_type == UCXF_Field::UCXF_WIDGET_TYPE_CONSTANT || $field->value_type == UCXF_Field::UCXF_WIDGET_TYPE_PHP) {
      switch ($field->db_name) {
        case $this->hiddenConstantField:
          $extra_values[$field->db_name] = 'hidden constant';
          break;
        case $this->hiddenPhpField:
          $extra_values[$field->db_name] = 'hidden string';
          break;
        default:
          $extra_values[$field->db_name] = $field
            ->generate_value();
          break;
      }
    }
  }
  // Prefix values and add parents
  foreach ($values as $fieldname => $value) {
    // Set in parents if needed
    $formfieldname = $prefix . $fieldname;
    if ($parent_string) {
      $formfieldname = $parent_string . '[' . $formfieldname . ']';
    }
    $form_values[$formfieldname] = $value;
  }
  return array(
    'form_values' => $form_values,
    'values' => array_merge($values, $extra_values),
  );
}