[Refer to CiviiMember spec for background, examples and details on this issue... http://wiki.civicrm.org/confluence/display/CRM/CiviMember+-+Phase+1+Specifications]
Define CiviMember ("CiviCRM Membership Engine") in Core_Component.
- component is enabled via Config enableComponents
- permissions are "access CiviMember", and "edit memberships" (same rules/structure as for contributions)
Implement menus for CiviMember with permissioning:
- CiviMember is new top-level menu (follows CiviMail in menu block)
- Sub-menus are "Find Members" and "Import Members"
Create sample data for CiviMember objects in xml/templates/civicrm_sample.tpl. Include 3 membership_type records, 3-4 membership_status records. (use case examples in spec for "ideas" on sample data...)
Modify GenerateData.php to include insertion of corresponding membership records using the 3 sample membership_type(s) for ~25% of contacts. Use a variety of statuses and start dates (preferably w/ start dates that are offsets of current date so that "reports" for recent months return some data - see next item...).
Implement CiviMember "component dashboard" (civicrm/member?reset=1) based on layout provided in Member/Page/DashBoard.tpl and spec as follows:
Membership Summary Table
- Dynamically display current month and current year instead of "June" and "2006" in the MTD and YTD column header cells.
- Table has a row for each active membership_type record - sorted by membership_type.weight.
- Each cell in the table is a link to member/search?force=1&reset=1&[search params]. Search params for each "count" are noted in the table cells in the tpl file (although they may change a bit once we actually get member search implemented).
(we'll embed member search selector here as in CiviContrib dashboard - hold implementation until search is completed)
[Import Members implementation will be described as a separate Jira issue...]