Events Overview

by Luke Simpson, Skyler Katz | Last edited: 10/20/2017

The events API has three different display types: list, detail, and calendar.  

There are two 'reserved' templates that handle events, ekk_eventpage.php and ekk_events.php.

Event Lists

There is one default template for event lists, ekk_events.php. This page is accessed via "/events/2008/11/19" where the three numbers are the year, month and day. The links generated by calendar days will lead users to this template. This will display all events occurring on that day with the following getContent:

getContent("event", "display:list", "enablepast:yes", "year:".$_GET['year'], "month:".$_GET['month'], "day:".$_GET['day'],
"beforeshow:__date format='F, j Y'__ </div>    <div id='conMain'>",
"show: <div class='events'><h4><a href='__url__'>__title__</a></h4>",
"show:<p>__eventtimes__</p>",
"show:</div>"
);

Other event lists can be placed anywhere else on the site. Here are a few examples... 

This will list every event for the next ten days. It's grouped by day so it will list the day (formatted November 15 2007) if there are events for that day, then it will list each event's title and when it occurs.

getContent(
"event",
"display:list",
"groupby:day",
"howmanydays:10",
"repeatevent:yes",
"group_show:<h3>__title__</h3>",
"show:<h4>__title__<h4>",
"show:__eventtimes__"
); 

Publishing an event to a group

An event can be published to a group in the CMS by clicking the publishing status (usually "Active"), and then clicking the "More Options" link. A list of groups will be displayed. You can can use filter for group by adding the following parameter to a event list getContent:

"find_group:group-slug",

Event Detail

Detail mode uses the template ekk_eventpage.php by default. This template can be accessed via /event/event-title-slug/ on any site. The template should contain a getContent such as:

getContent(
   "event",
   "display:detail",
   "find:".$_GET['slug'],
   "show:<h3>__title__</h3>",
   "show:<p class="eventtime">__eventtimes__</p>",
   "show:<p><b>Location:</b> __location__, <a href="http://maps.google.com/maps?q=__fulladdress__" title="map it">__fulladdress__</a>",
   "show:<p><b>Website:</b> <a href="__website__" title="Visit event site">__website__</a></p>",
   "show:<div id="text">__description__</div>"
   );

 If you would like the event detail page to reside somewhere other than /event/ then you will need to modify the htaccess file.

Registration

How do I enable event registration? 
  • Make sure event registration is enabled for the site. This is set in the E Commerce settings for the site. You may need your reseller to enable this.
  • Check 'Allow RSVP' when editing the event in the backend
  • Add __registration__ to the display:detail monklet or getContent.
What does the process look like? 

There will be a link that says 'RSVP'. This can be replaced by an image with css. When a user clicks the link a popup iframe will appear guiding them through the registration process. This dialouge will vary depending on which options were selected in the backend.

What happens when someone registers? 

After a user completes registration they will see a confirmation screen. If it was a paid event they will also receive an a confirmation email. An email will also be sent to the event coordinator if that option was checked in the backend. While you can display the coordinators "Alternate Email" on the event detail page, RSVP notifications will still be sent to the users primary email address. If the user clicks the 'RSVP' link again, they will be able to cancel their registration. 

Where can I see who has registered?

A complete list of registrants can be accessed from the event list page. From this list you can update the users registration details, cancel their registration, or export a list of all registrants. 

RSVP list

How can registration be canceled?

Registration may be canceled by any event admin. On the list above, simply click the 'trash' icon on the right.

A user may cancel their registration by clicking the RSVP link on the event page which they used to sign up initially. After logging in and verifying their contact info, they will be given the option to cancel their registration.

Please note that neither method will refund any payments the user may have made.

Calendars

Calendars can have only the days be links, links to events inside of days, a list of events for a day below the calendar, or a list of events for each day follow the mouse. In all cases the day number will link to /events/YYYY/MM/DD. See the 'display mode: list' section for more information on that template.

If a day has an event then the day number will be linked and the the td will have the class of 'linked-day'. Also the current day will have a class of 'current'. Using noecho is recommended with the getContent to ensure that the correct day will always have the class of current.

Here are a few examples of different types of calendars...

This calendar will display all events for the next four months and the titles for each day will appear below the month when the day is hovered over.

getContent(
  "event",
  "display:calendar",
  "eventTitles:belowMonth",
  "enablepast:yes",
  "headingletters:1",
  "scrollingMonths:no",
  "numberOfMonths:4"
);

Which will produce (from http://www.imagodeicommunity.com):

Imago Calendar  

 

 

 

 

 

 

 

 

 

 

This calendar will only show one month at a time and allow the user to toggle through the next six months. Since there may be more than one calendar on a page on this site, the id's are change to aviod conflict. To use 'followMouse', you must include the following javascript in the head section of the page: "document.write('<div id="traildiv"></div>');"

 getContent(
   "event",
   "display:calendar",
   "numberOfMonths:6",
   "eventTitles:followMouse",
   "eventTitlesXY:5,5",
   "nextPrev:<img src="/images/cal_next.gif" alt="next" />, <img src="/images/cal_previous.gif" alt="previous" />",
   "monthid:mini-cal"
   );

This will produce (from http://www.kaleochurch.com/):

 

Kaleo Calendar