You are here

public function AddressFieldMatchField::fieldRender in CRM Core 7

This function is going to add all addressfield components..

Overrides DefaultMatchingEngineFieldType::fieldRender

See also

DefaultMatchingEngineFieldType::fieldRender()

File

modules/crm_core_default_matching_engine/includes/AddressFieldMatchField.inc, line 18
Implementation of DefaultMatchingEngineFieldTypeInterface for address field.

Class

AddressFieldMatchField
Class for evaluating addressfield fields.

Code

public function fieldRender($field, $field_info, &$form) {
  foreach ($field_info['columns'] as $item => $info) {

    // This separation is rather logical than formal  at the moment.
    $text_items = array(
      'name_line',
      'first_name',
      'last_name',
      'organisation_name',
      'administrative_area',
      'sub_administrative_area',
      'locality',
      'dependent_locality',
      'thoroughfare',
      'premise',
      'sub_premise',
    );
    $select_items = array(
      'country',
      'postal_code',
    );
    $field_item['field_name'] = $field['field_name'];
    $field_item['label'] = $field['label'] . ': ' . $info['description'];
    $field_item['bundle'] = $field['bundle'];
    $field_item['field_item'] = $item;
    if (in_array($item, $select_items)) {
      $item = new selectMatchField();
      $item
        ->fieldRender($field_item, $field_info, $form);
    }
    if (in_array($item, $text_items)) {
      $item = new textMatchField();
      $item
        ->fieldRender($field_item, $field_info, $form);
    }
  }
}