You are here

function crm_core_relationship_load_relationship_types in CRM Core 8.2

Same name and namespace in other branches
  1. 8.3 modules/crm_core_relationship/crm_core_relationship.module \crm_core_relationship_load_relationship_types()
  2. 8 modules/crm_core_relationship/crm_core_relationship.module \crm_core_relationship_load_relationship_types()
  3. 7 modules/crm_core_relationship/crm_core_relationship.module \crm_core_relationship_load_relationship_types()

Return relationship types that can be applied to specific contact type.

Parameters

type $contact_type: CRM contact type name.

type $reverse: Whether relationship is reversed.

1 call to crm_core_relationship_load_relationship_types()
crm_core_relationship_ui_add_relationship in modules/crm_core_relationship_ui/crm_core_relationship_ui.pages.inc
Return a list of links to add relationship for specific CRM contact.

File

modules/crm_core_relationship/crm_core_relationship.module, line 168
CRM Core Relationship, handles relationship logic and API.

Code

function crm_core_relationship_load_relationship_types($contact_type, $reverse = 0) {
  $relation_types = RelationType::loadMultiple();
  $available_relationship_types = array();
  foreach ($relation_types as $relation_type) {
    if (!crm_core_relationship_is_relationship_type($relation_type->relation_type)) {
      continue;
    }
    $bundles = $reverse ? $relation_type->target_bundles : $relation_type->source_bundles;
    if (in_array('crm_core_contact:' . $contact_type, $bundles) || in_array('crm_core_contact:*', $bundles)) {
      $available_relationship_types[] = $relation_type;
    }
  }
  return $available_relationship_types;
}