Organizations who use CiviEvent have requested to ability to expose a list of participants for an event. This capability will be configurable at the event level and permissioned via Drupal access control for this initial implementation.
1. Add option group and option values for participant listing options:
Group Name = 'participant_listing'.
'Name Only', 1
'Name and Email Address', 2
(NOTE: This group and it's options are not exposed explicitly in the admin UI.)
2. Add column to civicrm_event table:
- participant_listing_id, INT, default = 0, implicit FK to civicrm_option_value
3. Add new <select> field to the Event Information and Settings form under Configure Event (CRM/Event/Form/ManageEvent/EventInfo.php)
- label: Participant Listings
- field: <select> with all active participant_listing option values, value is required
- default value: None (0)
4. Define Drupal permission: 'view event participants'
5. Create listing page:
- url = civicrm/event/participants?id=$eventID
- page is simple selector with pager, either Name column only, or Name, Email columns depending on participant_listing_id for the event. (Name value = sort_name, Email value = primary email address). Columns s/b sortable.
ISSUE: What participant status(es) should be included in the listing? Perhaps all participants w/ status = Registered OR Attended.
6. Permissioning for listing page:
- Page request is valid IF civicrm_event.participant_listing_id = 1 or 2 AND the user's role (or anonymous) has 'view event participants' permission.
7. Add a "row" in the Configure Event template (CRM/Event/Page/ManageEventEdit.tpl.):
Left column = "Participant Listing"
Right column =
- If participant_listing_id is 1 or 2, display the link to the page
- Else "Participant Listing is not enabled for this event. You can enable it from <a href=
>Event Information and Settings</a>."