function crm_core_match_get_engines in CRM Core 7
Returns a list of all matching engines registered with CRM Core Match.
Return value
array A list of matching engines for CRM Core Match.
4 calls to crm_core_match_get_engines()
- crm_core_match_admin_config_engines_form in modules/
crm_core_match/ crm_core_match.admin.inc - Matching Engines form.
- crm_core_match_crm_core_contact_match in modules/
crm_core_match/ crm_core_match.module - Implements hook_crm_core_contact_match().
- crm_core_match_info_page in modules/
crm_core_match/ crm_core_match.test.inc - crm_core_match_testing_page in modules/
crm_core_match/ crm_core_match.test.inc - Page callback to display match debug info.
File
- modules/
crm_core_match/ crm_core_match.module, line 123 - Manages matching engines for identifying duplicate contacts in CRM Core. Allows CRM Core to install, enable and disable matching engines.
Code
function crm_core_match_get_engines() {
$cache =& drupal_static(__FUNCTION__);
if (empty($cache)) {
$engines = array();
$stored_engines = db_select('crm_core_match_engines')
->fields('crm_core_match_engines')
->execute()
->fetchAllAssoc('machine_name');
foreach (module_implements('crm_core_match_engine_register') as $module) {
$function = $module . '_crm_core_match_engine_register';
$engine = $function();
if (isset($stored_engines[$engine
->getMachineName()])) {
$engine
->setStatus($stored_engines[$engine
->getMachineName()]->status);
$engine
->setWeight($stored_engines[$engine
->getMachineName()]->weight);
$engine
->setID($stored_engines[$engine
->getMachineName()]->eid);
}
else {
$engine
->setStatus(0);
$engine
->setWeight(10);
$engine
->setID(0);
}
$engines[] = $engine;
}
uasort($engines, '_crm_core_match_engine_weight_cmp');
$cache = $engines;
}
return $cache;
}