Merge pull request #22438 from eileenmcnaughton/format
[civicrm-core.git] / CRM / Member / Page / UserDashboard.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
5 | |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
10 */
11
12 /**
13 *
14 * @package CRM
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
16 */
17
18 /**
19 * This class is for building membership block on user dashboard
20 */
21 class CRM_Member_Page_UserDashboard extends CRM_Contact_Page_View_UserDashBoard {
22
23 /**
24 * List memberships for the UF user.
25 *
26 */
27 public function listMemberships() {
28 $membership = [];
29 $dao = new CRM_Member_DAO_Membership();
30 $dao->contact_id = $this->_contactId;
31 $dao->is_test = 0;
32 $dao->find();
33
34 while ($dao->fetch()) {
35 $membership[$dao->id] = [];
36 CRM_Core_DAO::storeValues($dao, $membership[$dao->id]);
37
38 //get the membership status and type values.
39 $statusANDType = CRM_Member_BAO_Membership::getStatusANDTypeValues($dao->id);
40 foreach ([
41 'status',
42 'membership_type',
43 ] as $fld) {
44 $membership[$dao->id][$fld] = $statusANDType[$dao->id][$fld] ?? NULL;
45 }
46 if (!empty($statusANDType[$dao->id]['is_current_member'])) {
47 $membership[$dao->id]['active'] = TRUE;
48 }
49
50 $membership[$dao->id]['renewPageId'] = CRM_Member_BAO_Membership::getContributionPageId($dao->id);
51 if (!$membership[$dao->id]['renewPageId']) {
52 // Membership payment was not done via online contribution page or free membership. Check for default membership renewal page from CiviMember Settings
53 $defaultRenewPageId = Civi::settings()->get('default_renewal_contribution_page');
54 if ($defaultRenewPageId) {
55 //CRM-14831 - check if membership type is present in contrib page
56 $memBlock = CRM_Member_BAO_Membership::getMembershipBlock($defaultRenewPageId);
57 if (!empty($memBlock['membership_types'])) {
58 $memTypes = explode(',', $memBlock['membership_types']);
59 if (in_array($dao->membership_type_id, $memTypes)) {
60 $membership[$dao->id]['renewPageId'] = $defaultRenewPageId;
61 }
62 }
63 }
64 }
65 }
66
67 $activeMembers = CRM_Member_BAO_Membership::activeMembers($membership);
68 $inActiveMembers = CRM_Member_BAO_Membership::activeMembers($membership, 'inactive');
69
70 $this->assign('activeMembers', $activeMembers);
71 $this->assign('inActiveMembers', $inActiveMembers);
72 }
73
74 /**
75 * the main function that is called when the page
76 * loads, it decides the which action has to be taken for the page.
77 *
78 */
79 public function run() {
80 parent::preProcess();
81 $this->listMemberships();
82 }
83
84 }