public function RelationsImportSettingsBase::getAvailableRelations in CRM Core 7
Build a list of available relations relevant to current settings.
2 calls to RelationsImportSettingsBase::getAvailableRelations()
- RelationsCiviCrmImportSettings::configForm in modules/
crm_core_data_import/ plugins/ settings/ RelationsCiviCrmImportSettings.inc - Configuration form for settings plugin.
- RelationsImportSettingsBase::configForm in modules/
crm_core_data_import/ plugins/ settings/ RelationsImportSettingsBase.inc - Configuration form for settings plugin.
File
- modules/
crm_core_data_import/ plugins/ settings/ RelationsImportSettingsBase.inc, line 166 - Base relations settings handler for CRM Core Data Import.
Class
- RelationsImportSettingsBase
- @file Base relations settings handler for CRM Core Data Import.
Code
public function getAvailableRelations($settings) {
// @TODO inversion.
$relations = array();
$entities = $this
->entityList($settings);
$entities_names = array();
// A list with entity info.
foreach ($entities as $entity_info) {
$entities_names[] = $entity_info['entity_type'] . ':' . $entity_info['bundle'];
}
$relation_types = relation_get_types();
foreach ($relation_types as $relation_type) {
$available_source = FALSE;
$available_destination = FALSE;
// If empty, available for all bundles.
if (empty($relation_type->source_bundles)) {
$available_source = TRUE;
}
foreach ($relation_type->source_bundles as $source) {
if (in_array($source, $entities_names) || $source == 'crm_core_contact:*') {
$available_source = TRUE;
}
}
// If empty, available for all bundles.
if (empty($relation_type->target_bundles)) {
$available_destination = TRUE;
}
foreach ($relation_type->target_bundles as $destination) {
if (in_array($destination, $entities_names) || $destination == 'crm_core_contact:*') {
$available_destination = TRUE;
}
}
// If both relations exist in the settings.
if ($available_source && $available_destination) {
$relations[$relation_type->relation_type] = $relation_type->label;
}
}
if (empty($relations)) {
$relations[] = t('No available relations');
}
return $relations;
}