I am looking at add a column for expired/grace members to the Membership Dashboard, but I am running into a roadblock on how to do it.

I know that the DashBoard.tpl file pulls in list of new and renewed members and that DashBoard.php also needs to modified. Dashboard.php refers to CRM_Member_BAO_Membership, which comes from CRM/Member/BAO/Membership.php. There are three functions in Membership.php, getMembershipJoins, getMembershipRenewals and getMembershipStarts that pull numbers from the SQL side.

My problems: 1. In Membership.php there is this function: public static function _getActTypes() { which very helpfully has this as a code comment: * @todo document me - I seem a bit out of date....

These functions call things from the CRM_Utils_Array, which I cannot find. Which file is that in? I am not a PHP programmer, but is this a general function call that is extended by several files?

  1. Does CRM_Utils_Array::key('Membership Grace', $activityTypes); or CRM_Utils_Array::key('Membership Expired', $activityTypes); exist? If it doesn't, would I add such a function to Membership.php and then call it through the previously mentioned files?

1 Answer 1


In my experience, the Membership Dashboard isn't really a great tool, and I was it was deprecated. It's extremely inflexible (as you're seeing here) and any reports you need can be placed on the main dashboard as a dashlet. So I would recommend a different approach.

To answer some of your other questions - class names and file locations map to each other. You should find the CRM_Utils_Array class in <civiroot>/CRM/Utils/Array.php.

Finally, it's a bad idea to change core CiviCRM files, because they'll be overwritten on upgrade.

  • Thanks. I was planning on suggesting this as a change to the main CiviCRM. Do you have a suggestion for another tool I could use to write such a dashboard for our non-technical users to see membership at a glance? Oct 26, 2019 at 19:20
  • 1
    With the data processor extension (lab.civicrm.org/extensions/dataprocessor) you can create custom reports and searches and also add them to your dashboard. For the dashboard functionality you need the master version. Oct 28, 2019 at 12:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.