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
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,
);
}