Created for Drupal Camp Asheville,this is my first Drupal 8 module released to the world.

Update: Now on Drupal.org! Eventbrite Attendees Block

Templateable

The module provides a new block type to Drupal 8 that lists attendee information for a given Eventbrite event ID. The output of that list is driven by a template that can be overridden in the theme.

On Drupal Camp Asheville’s website, I’ve overridden the template in two places. The one for past events simply adds a Drupal icon next to each attendee’s name.

For the current year’s event, I’ve provided a template that checks the attendee’s ticket type and order details to highlight our individual sponsors, and provide more information about the attendee.

Block functionality

The block form provides a few features that make this block more performant and reusable.

Caching

Due to the way Eventbrite provides data from its API (paginated), I implementing some simple caching for the provided response. Since past events will never have new attendees, the “Forever” cache option makes it so those blocks will never need to call the Eventbrite API again.

Token Eventbrite Event ID

I like to build my sites with Panels. On the Drupal Camp Asheville site, I override the node output of all past events with a single variant. And because of this architecture choice, a single block needs to appear on multiple event pages with relative Eventbrite IDs.

To solve that problem this module allows you to provide a node token in place of an Eventbrite ID. (Note: each of my Event nodes have a simple text field where we provide the event ID)

That’s pretty much it! The module is hosted on github. If you get a chance to check it out, let me know what you think!

Eventbrite Attendees

A simple Drupal 8 module that adds a new block to the system for showing a list of attendees to an Eventbrite event.

About the Author

Jonathan Daggerhart

Long time Drupal and WordPress developer. I like to write modules and plugins, and I dabble in frontend and design.

Leave a Reply

Your email address will not be published. Required fields are marked *