public function DefaultMatchingEngine::getRules in CRM Core 8.2
Same name and namespace in other branches
- 8.3 modules/crm_core_match/src/Plugin/crm_core_match/engine/DefaultMatchingEngine.php \Drupal\crm_core_match\Plugin\crm_core_match\engine\DefaultMatchingEngine::getRules()
- 8 modules/crm_core_match/src/Plugin/crm_core_match/engine/DefaultMatchingEngine.php \Drupal\crm_core_match\Plugin\crm_core_match\engine\DefaultMatchingEngine::getRules()
Gets the rules that are matched.
By default those are the contact type fields.
@todo Extend with typed data definition to limit selections.
Example data:
(
field_name => array(
label,
definition,
),
Return value
mixed
Overrides MatchEngineBase::getRules
File
- modules/
crm_core_match/ src/ Plugin/ crm_core_match/ engine/ DefaultMatchingEngine.php, line 390
Class
- DefaultMatchingEngine
- DefaultMatchingEngine class.
Namespace
Drupal\crm_core_match\Plugin\crm_core_match\engineCode
public function getRules() {
$rules = [];
// Collect all fields of all contact types.
$contact_types = $this->entityTypeManager
->getStorage('crm_core_individual_type')
->loadMultiple();
$field_definitions = [];
foreach ($contact_types as $contact_type_id => $value) {
$field_definitions += $this->entityFieldManager
->getFieldDefinitions('crm_core_individual', $contact_type_id);
}
foreach ($this
->getConfigurationItem('rules') as $field_name => $field_settings) {
// Skip fields that got dropped and disabled on matcher.
if (!isset($field_definitions[$field_name]) || !$this
->isEnabled($field_settings)) {
continue;
}
/** @var \Drupal\Core\Field\FieldDefinitionInterface $field_definition */
$field_definition = $field_definitions[$field_name];
$rules[$field_name] = [
'label' => $field_definition
->getLabel(),
'definition' => $field_definition,
];
}
return $rules;
}