You are here

public function DefaultMatchingEngineFieldType::fieldRender in CRM Core 7

Template used to render fields matching rules configuration form.

Parameters

array $field: Field to render config for.

array $field_info: Field info.

array $form: Form to be modified

Overrides DefaultMatchingEngineFieldTypeInterface::fieldRender

4 methods override DefaultMatchingEngineFieldType::fieldRender()
AddressFieldMatchField::fieldRender in modules/crm_core_default_matching_engine/includes/AddressFieldMatchField.inc
This function is going to add all addressfield components..
EmailMatchField::fieldRender in modules/crm_core_default_matching_engine/includes/EmailMatchField.inc
Template used to render fields matching rules configuration form.
NameMatchField::fieldRender in modules/crm_core_default_matching_engine/includes/NameMatchField.inc
This function is going to add a number of fields based on what the name field is configured to display.
Phone_NumberMatchField::fieldRender in modules/crm_core_default_matching_engine/includes/Phone_NumberMatchField.inc

File

modules/crm_core_default_matching_engine/includes/DefaultMatchingEngine.inc, line 66

Class

DefaultMatchingEngineFieldType

Code

public function fieldRender($field, $field_info, &$form) {
  $disabled = FALSE;
  if (get_class($this) == 'UnsupportedFieldMatchField') {
    $disabled = TRUE;
  }
  $field_name = $field['field_name'];
  $field_item = isset($field['field_item']) ? $field['field_item'] : '';
  $separator = empty($field_item) ? $field_name : $field_name . '_' . $field_item;
  $field_label = $field['label'];
  if ($disabled) {
    $field_label .= ' (UNSUPPORTED)';
  }
  $contact_type = $field['bundle'];
  $config = crm_core_default_matching_engine_load_field_config($contact_type, $field_name, $field_item);
  $display_weight = self::WEIGHT_DELTA;
  if ($config['weight'] == 0) {

    // Table row positioned incorrectly if "#weight" is 0.
    $display_weight = 0.001;
  }
  else {
    $display_weight = $config['weight'];
  }
  $form['field_matching'][$separator]['#weight'] = $disabled ? 100 : $display_weight;
  $form['field_matching'][$separator]['supported'] = array(
    '#type' => 'value',
    '#value' => $disabled ? FALSE : TRUE,
  );
  $form['field_matching'][$separator]['field_type'] = array(
    '#type' => 'value',
    '#value' => $field_info['type'],
  );
  $form['field_matching'][$separator]['field_name'] = array(
    '#type' => 'value',
    '#value' => $field_name,
  );
  $form['field_matching'][$separator]['field_item'] = array(
    '#type' => 'value',
    '#value' => $field_item,
  );
  $form['field_matching'][$separator]['status'] = array(
    '#type' => 'checkbox',
    '#default_value' => $config['status'],
    '#disabled' => $disabled,
  );
  $form['field_matching'][$separator]['name'] = array(
    '#type' => 'item',
    '#markup' => check_plain($field_label),
  );
  $form['field_matching'][$separator]['field_type_markup'] = array(
    '#type' => 'item',
    '#markup' => $field_info['type'],
  );
  $operator = array(
    '#type' => 'select',
    '#default_value' => $config['operator'],
    '#empty_option' => t('-- Please Select --'),
    '#empty_value' => '',
    '#disabled' => $disabled,
  );
  switch ($field_info['type']) {
    case 'date':
    case 'datestamp':
    case 'datetime':
      $operator += array(
        '#options' => $this
          ->operators($field_info),
      );
      break;
    default:
      $operator += array(
        '#options' => $this
          ->operators(),
      );
  }
  $form['field_matching'][$separator]['operator'] = $operator;
  $form['field_matching'][$separator]['options'] = array(
    '#type' => 'textfield',
    '#maxlength' => 28,
    '#size' => 28,
    '#default_value' => $config['options'],
    '#disabled' => $disabled,
  );
  $form['field_matching'][$separator]['score'] = array(
    '#type' => 'textfield',
    '#maxlength' => 4,
    '#size' => 3,
    '#default_value' => $config['score'],
    '#disabled' => $disabled,
  );
  $form['field_matching'][$separator]['weight'] = array(
    '#type' => 'weight',
    '#default_value' => $config['weight'],
    '#attributes' => array(
      'class' => array(
        'crm-core-match-engine-order-weight',
      ),
    ),
    '#disabled' => $disabled,
    '#delta' => self::WEIGHT_DELTA,
  );
}