3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
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 +--------------------------------------------------------------------+
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
19 * This class is for building membership block on user dashboard
21 class CRM_Member_Page_UserDashboard
extends CRM_Contact_Page_View_UserDashBoard
{
24 * List memberships for the UF user.
27 public function listMemberships() {
29 $dao = new CRM_Member_DAO_Membership();
30 $dao->contact_id
= $this->_contactId
;
32 $dao->orderBy('start_date DESC');
35 while ($dao->fetch()) {
36 $membership[$dao->id
] = [];
37 CRM_Core_DAO
::storeValues($dao, $membership[$dao->id
]);
39 //get the membership status and type values.
40 $statusANDType = CRM_Member_BAO_Membership
::getStatusANDTypeValues($dao->id
);
45 $membership[$dao->id
][$fld] = $statusANDType[$dao->id
][$fld] ??
NULL;
47 if (!empty($statusANDType[$dao->id
]['is_current_member'])) {
48 $membership[$dao->id
]['active'] = TRUE;
51 $membership[$dao->id
]['renewPageId'] = CRM_Member_BAO_Membership
::getContributionPageId($dao->id
);
52 if (!$membership[$dao->id
]['renewPageId']) {
53 // Membership payment was not done via online contribution page or free membership. Check for default membership renewal page from CiviMember Settings
54 $defaultRenewPageId = Civi
::settings()->get('default_renewal_contribution_page');
55 if ($defaultRenewPageId) {
56 //CRM-14831 - check if membership type is present in contrib page
57 $memBlock = CRM_Member_BAO_Membership
::getMembershipBlock($defaultRenewPageId);
58 if (!empty($memBlock['membership_types'])) {
59 $memTypes = explode(',', $memBlock['membership_types']);
60 if (in_array($dao->membership_type_id
, $memTypes)) {
61 $membership[$dao->id
]['renewPageId'] = $defaultRenewPageId;
68 $activeMembers = CRM_Member_BAO_Membership
::activeMembers($membership);
69 $inActiveMembers = CRM_Member_BAO_Membership
::activeMembers($membership, 'inactive');
71 $this->assign('activeMembers', $activeMembers);
72 $this->assign('inActiveMembers', $inActiveMembers);
76 * the main function that is called when the page
77 * loads, it decides the which action has to be taken for the page.
80 public function run() {
82 $this->listMemberships();