Commit | Line | Data |
---|---|---|
6a488035 TO |
1 | <?php |
2 | /* | |
3 | +--------------------------------------------------------------------+ | |
06b69b18 | 4 | | CiviCRM version 4.5 | |
6a488035 | 5 | +--------------------------------------------------------------------+ |
06b69b18 | 6 | | Copyright CiviCRM LLC (c) 2004-2014 | |
6a488035 TO |
7 | +--------------------------------------------------------------------+ |
8 | | This file is a part of CiviCRM. | | |
9 | | | | |
10 | | CiviCRM is free software; you can copy, modify, and distribute it | | |
11 | | under the terms of the GNU Affero General Public License | | |
12 | | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. | | |
13 | | | | |
14 | | CiviCRM is distributed in the hope that it will be useful, but | | |
15 | | WITHOUT ANY WARRANTY; without even the implied warranty of | | |
16 | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | | |
17 | | See the GNU Affero General Public License for more details. | | |
18 | | | | |
19 | | You should have received a copy of the GNU Affero General Public | | |
20 | | License and the CiviCRM Licensing Exception along | | |
21 | | with this program; if not, contact CiviCRM LLC | | |
22 | | at info[AT]civicrm[DOT]org. If you have questions about the | | |
23 | | GNU Affero General Public License or the licensing of CiviCRM, | | |
24 | | see the CiviCRM license FAQ at http://civicrm.org/licensing | | |
25 | +--------------------------------------------------------------------+ | |
26 | */ | |
27 | ||
28 | /** | |
29 | * | |
30 | * @package CRM | |
06b69b18 | 31 | * @copyright CiviCRM LLC (c) 2004-2014 |
6a488035 TO |
32 | * $Id$ |
33 | * | |
34 | */ | |
35 | ||
36 | /** | |
8ef12e64 | 37 | * Dummy page for details of address |
6a488035 TO |
38 | * |
39 | */ | |
40 | class CRM_Contact_Page_Inline_Address extends CRM_Core_Page { | |
41 | ||
42 | /** | |
43 | * Run the page. | |
44 | * | |
45 | * This method is called after the page is created. | |
46 | * | |
47 | * @return void | |
48 | * @access public | |
49 | * | |
50 | */ | |
51 | function run() { | |
52 | // get the emails for this contact | |
53 | $contactId = CRM_Utils_Request::retrieve('cid', 'Positive', CRM_Core_DAO::$_nullObject, TRUE, NULL, $_REQUEST); | |
54 | $locBlockNo = CRM_Utils_Request::retrieve('locno', 'Positive', CRM_Core_DAO::$_nullObject, TRUE, NULL, $_REQUEST); | |
55 | $addressId = CRM_Utils_Request::retrieve('aid', 'Positive', CRM_Core_DAO::$_nullObject, FALSE, NULL, $_REQUEST); | |
56 | ||
57 | $address = array(); | |
58 | if ( $addressId > 0 ) { | |
8f785c9e | 59 | $locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', array('labelColumn' => 'display_name')); |
6a488035 TO |
60 | |
61 | $entityBlock = array('id' => $addressId); | |
62 | $address = CRM_Core_BAO_Address::getValues($entityBlock, FALSE, 'id'); | |
63 | if (!empty($address)) { | |
64 | foreach ($address as $key =>& $value) { | |
65 | $value['location_type'] = $locationTypes[$value['location_type_id']]; | |
66 | } | |
67 | } | |
68 | } | |
69 | ||
70 | // we just need current address block | |
8ef12e64 | 71 | $currentAddressBlock['address'][$locBlockNo] = array_pop( $address ); |
72 | ||
6a488035 TO |
73 | if ( !empty( $currentAddressBlock['address'][$locBlockNo] ) ) { |
74 | // get contact name of shared contact names | |
75 | $sharedAddresses = array(); | |
76 | $shareAddressContactNames = CRM_Contact_BAO_Contact_Utils::getAddressShareContactNames($currentAddressBlock['address']); | |
77 | foreach ($currentAddressBlock['address'] as $key => $addressValue) { | |
a7488080 | 78 | if (!empty($addressValue['master_id']) && |
6a488035 TO |
79 | !$shareAddressContactNames[$addressValue['master_id']]['is_deleted'] |
80 | ) { | |
81 | $sharedAddresses[$key]['shared_address_display'] = array( | |
82 | 'address' => $addressValue['display'], | |
83 | 'name' => $shareAddressContactNames[$addressValue['master_id']]['name'], | |
84 | ); | |
85 | } | |
86 | } | |
87 | ||
88 | // add custom data of type address | |
89 | $groupTree = CRM_Core_BAO_CustomGroup::getTree( 'Address', | |
90 | $this, $currentAddressBlock['address'][$locBlockNo]['id'] | |
91 | ); | |
92 | ||
93 | // we setting the prefix to dnc_ below so that we don't overwrite smarty's grouptree var. | |
94 | $currentAddressBlock['address'][$locBlockNo]['custom'] = CRM_Core_BAO_CustomGroup::buildCustomDataView( $this, $groupTree, FALSE, NULL, "dnc_"); | |
95 | $this->assign("dnc_viewCustomData", NULL); | |
8ef12e64 | 96 | |
6a488035 TO |
97 | $this->assign('add', $currentAddressBlock['address'][$locBlockNo]); |
98 | $this->assign('sharedAddresses', $sharedAddresses); | |
99 | } | |
100 | $contact = new CRM_Contact_BAO_Contact( ); | |
101 | $contact->id = $contactId; | |
102 | $contact->find(true); | |
103 | $privacy = array( ); | |
104 | foreach ( CRM_Contact_BAO_Contact::$_commPrefs as $name ) { | |
105 | if ( isset( $contact->$name ) ) { | |
106 | $privacy[$name] = $contact->$name; | |
107 | } | |
108 | } | |
109 | ||
110 | $this->assign('contactId', $contactId); | |
111 | $this->assign('locationIndex', $locBlockNo); | |
112 | $this->assign('addressId', $addressId); | |
113 | $this->assign('privacy', $privacy); | |
8ef12e64 | 114 | |
6a488035 TO |
115 | // check logged in user permission |
116 | CRM_Contact_Page_View::checkUserPermission($this, $contactId); | |
117 | ||
8ef12e64 | 118 | // finally call parent |
6a488035 TO |
119 | parent::run(); |
120 | } | |
121 | } | |
122 |