0) { $locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', ['labelColumn' => 'display_name']); $entityBlock = ['id' => $addressId]; $address = CRM_Core_BAO_Address::getValues($entityBlock, FALSE, 'id'); if (!empty($address)) { foreach ($address as $key => & $value) { $value['location_type'] = $locationTypes[$value['location_type_id']]; } } } // we just need current address block $currentAddressBlock['address'][$locBlockNo] = array_pop($address); if (!empty($currentAddressBlock['address'][$locBlockNo])) { // get contact name of shared contact names $sharedAddresses = []; $shareAddressContactNames = CRM_Contact_BAO_Contact_Utils::getAddressShareContactNames($currentAddressBlock['address']); foreach ($currentAddressBlock['address'] as $key => $addressValue) { if (!empty($addressValue['master_id']) && !$shareAddressContactNames[$addressValue['master_id']]['is_deleted'] ) { $sharedAddresses[$key]['shared_address_display'] = [ 'address' => $addressValue['display'], 'name' => $shareAddressContactNames[$addressValue['master_id']]['name'], ]; } } $idValue = $currentAddressBlock['address'][$locBlockNo]['id']; if (!empty($currentAddressBlock['address'][$locBlockNo]['master_id'])) { $idValue = $currentAddressBlock['address'][$locBlockNo]['master_id']; } // add custom data of type address $groupTree = CRM_Core_BAO_CustomGroup::getTree('Address', NULL, $idValue); // we setting the prefix to dnc_ below so that we don't overwrite smarty's grouptree var. $currentAddressBlock['address'][$locBlockNo]['custom'] = CRM_Core_BAO_CustomGroup::buildCustomDataView($this, $groupTree, FALSE, NULL, "dnc_"); $this->assign("dnc_viewCustomData", NULL); $this->assign('add', $currentAddressBlock['address'][$locBlockNo]); $this->assign('sharedAddresses', $sharedAddresses); } $contact = new CRM_Contact_BAO_Contact(); $contact->id = $contactId; $contact->find(TRUE); $privacy = []; foreach (CRM_Contact_BAO_Contact::$_commPrefs as $name) { if (isset($contact->$name)) { $privacy[$name] = $contact->$name; } } $this->assign('contactId', $contactId); $this->assign('locationIndex', $locBlockNo); $this->assign('addressId', $addressId); $this->assign('privacy', $privacy); // check logged in user permission CRM_Contact_Page_View::checkUserPermission($this, $contactId); // finally call parent parent::run(); } }