Agenda uses FullCalendar, a free open source jQuery plugin by Adam Arshaw which generates an awesome calendar populated with your events.
This plugin combines the power of FullCalendar and glFusion to present your events in a calendar format, which can be organized by custom categories with full drag and drop capabilities.
The Agenda Plugin has the following system requirements:
- PHP 5.6.0 and higher.
- glFusion v1.7.0 or newer
- Must be using a UIKIT based theme - will not work with Vintage or Nouveau themes
Agenda is a full featured event management system that supports the following features:
- Dynamic, JavaScript driven calendar view (provided by Full Calendar)
- Recurring event support
- Localized - supports all glFusion supported languages
- Full RTL support
- Upcoming Events block
The Agenda Plugin uses the glFusion automated plugin installer. Simply upload the distribution using the glFusion plugin installer located in the Plugin Administration page.
The upgrade process is identical to the installation process, simply upload the distribution from the Plugin Administration page.
Agenda support the iCal RRULE standard for recurring events (RFC 2445).
Some examples of types of recurring events you can create:
- Weekly on Tuesday and Thursday for 5 weeks
- Monthly on the 1st Friday for ten occurrences
- Yearly, every forth Thursday in November (Thanksgiving in the US)
Per RFC section 3.3.10, recurrence instances falling on invalid dates and times are ignored rather than corrected:
Recurrence rules may generate recurrence instances with an invalid date (e.g., February 30) or nonexistent local time (e.g., 1:30 AM on a day where the local time is moved forward by an hour at 1:00 AM). Such recurrence instances MUST be ignored and MUST NOT be counted as part of the recurrence set.
This means recurring events that have an event that would occur on an invalid date is simply ignored. For example, every month on the 29th would skip February 29 on years that are not leap years.
When editing a specific event that is part of a series, you have the option to do the following:
- Edit the Individual Event
- Edit the entire series
When editing a single event in a series, you can change any attribute about the event, including dates and times. The event will marked as an exception, meaning any series edits will not apply this single event in the series.
Dragging a single event in a series to a new date or resizing the time window will mark the event as an exception, making it exempt from series edits.
If you delete the entire series, this event will be deleted as well.
When editing an Event Series, there are two methods to edit the series - updating without changing the dates / times or recurrence rules and updating the recurrence rules (Edit Recurrence checked in the edit form).
When updating just the Location, Description and/or Category (Edit Recurrence checkbox not checked), when saved, the entire event series will be updated except any exception events.
When Edit Recurrence is checked, allowing you to edit all attributes of the event series, when saved, the entire event series (including exception events) are deleted and the series is re-created using the new rules. It is important to remember when Edit Recurrence is checked, all exception events are removed on save. Agenda will also place a warning on the screen to remind you of this as well.
The following controls are implemented to control access:
You can enable or disable anonymous user access to the calendar. Logged-in users will have access to the calendar.
Agenda supports limiting who can add new events to the calendar. You can restrict to Admin users only, allow Admins and Logged-In users, or allow anyone (including non-logged in users) to add events.
Members of the Agenda Admin group have full read / write capabilities.
Anyone, with the agenda.view feature assigned to a group they belong to will be able to view the Agenda Calendar. Note, you can override the Configuration Setting of Allow Anonymous View by assigning the agenda.view feature to the Non-Logged-in Users group.
Anyone with the agenda.noqueue feature assigned to a group they belong to will be able to submit new events and bypass the submission queue (if enabled).
For more information on glFusion Groups / Rights - please see the Permissions Overview Wiki Page.
Allow Anonymous View
If set to TRUE - anonymous (non-logged-in-users) will be able to view the calendar. If set to FALSE, anonymous users will not be able to access the calendar. See the Security Exit option below to control how glFusion responds to a user without access.
Security Exit
If Allow Anonymous View is FALSE, this option controls how glFusion responds to an anonymous user. The user can receive a Page Not Found error or be redirected to the login to access the calendar.
Who can enter Events
This setting controls who can enter new events on the calendar. Options include No One (only admins), Logged-in-users or anyone. See the Submission Queue setting to enable / disable submission queuing of user submitted events.
Submission Queue
Controls what events are queued for review prior to publishing. Options include Disabled - all submissions are immediately published, Anonymous Only - only non-logged-in users will have their submissions queued, All - all user submitted events will be queued. Note: Admin users are exempt from the submission queue.
Display Blocks
Which glFusion blocks to display when viewing the Agenda Calendar.
Show Upcoming Events Block
If set to TRUE - the Upcoming Events block will be enabled.
Days to Include in Upcoming Events Block
Number of days into the future to list upcoming events.
How Often to Purge Old Events
Number of days between the purge old events maintenance task. The purge old events maintenance task will run automatically every XX days. This task will purge old events from the Agenda database tables.
How Many Years of Old Events to Keep
How many Years of old events to keep.
Default View
Select the default calendar view when calendar is initially displayed. Options are Month, Week, Day or List view.
Auto Height
Determines how the calendar sizes in the browser window. Auto will use as much 'height' as needed to display the select view without adding scroll bars to the view. Auto also compresses the month view to take only the space needed. Fit will take as much space as available and add scroll bars to the view if additional vertical space is needed.
Header Left Items
Select what to display in the Left header area of the calendar.
Header Center Items
Select what to display in the Center header area of the calendar.
Header Right Items
Select what to display in the Right header area of the calendar.
First Day of Week
Select the first day of the week for your location.
Display Week Numbers
If TRUE, the week number will be displayed on the Month, Week and Day views.
Print Enabled
If TRUE, a print button will be displayed in the Agenda header to allow printing the current view.
Month View :: Event Limit
Limits the number of events displayed on a day. When there are too many events, a link that looks like "+2 more" is displayed.
Month View :: Time Format
Determines the time-text that will be displayed on each event. For example, 'hh:mm a' will display 12:25 am. See PHP date() formats for details on different formats.
Month View :: Column Format
Determines the text that will be displayed on the calendar's column headings. For example, 'ddd' will display 'Mon', 'ddd M/D' will display 'Mon 9/7'.
Month View :: Title Format
Determines the text that will be displayed in the header's title. For example, MMMM YYYY' will display 'September 2009', 'MMM D YYYY' will display 'Sep 13 2009', 'MMMM D YYYY' will display 'September 8 2009'.
Month View :: Display Event Time
If TRUE, the Event Start Time will display next to the event (All Day events DO NOT display a start time).
Month View :: Display Event End Time
If TRUE, the Event End Time will also display next to the event (All Day events DO NOT display a end time).
Week View :: Event Limit
Limits the number of events displayed on a day. When there are too many events, a link that looks like "+2 more" is displayed.
Week View :: Time Format
Determines the time-text that will be displayed on each event. For example, 'hh:mm a' will display 12:25 am. See PHP date() formats for details on different formats.
Week View :: Column Format
Determines the text that will be displayed on the calendar's column headings. For example, 'ddd' will display 'Mon', 'ddd M/D' will display 'Mon 9/7'.
Week View :: Title Format
Determines the text that will be displayed in the header's title. For example, MMMM YYYY' will display 'September 2009', 'MMM D YYYY' will display 'Sep 13 2009', 'MMMM D YYYY' will display 'September 8 2009'.
Week View :: Display Event Time
If TRUE, the Event Start Time will display next to the event (All Day events DO NOT display a start time).
Week View :: Display Event End Time If TRUE, the Event End Time will also d isplay next to the event (All Day events DO NOT display a end time).
Day View :: Event Limit
Limits the number of events displayed on a day. When there are too many events, a link that looks like "+2 more" is displayed.
Day View :: Time Format
Determines the time-text that will be displayed on each event. For example, 'hh:mm a' will display 12:25 am. See PHP date() formats for details on different formats.formats.
Day View :: Column Format
Determines the text that will be displayed on the calendar's column headings. For example, 'ddd' will display 'Mon', 'ddd M/D' will display 'Mon 9/7'.
Day View :: Title Format
Determines the text that will be displayed in the header's title. For example, MMMM YYYY' will display 'September 2009', 'MMM D YYYY' will display 'Sep 13 2009', 'MMMM D YYYY' will display 'September 8 2009'.
Day View :: Display Event Time
If TRUE, the Event Start Time will display next to the event (All Day events DO NOT display a start time).
Day View :: Display Event End Time
If TRUE, the Event End Time will also display next to the event (All Day events DO NOT display a end time).
List View :: Time Format
Determines the time-text that will be displayed on each event. For example, 'hh:mm a' will display 12:25 am. See PHP date() formats for details on different formats.
List View :: Display Event Time
If TRUE, the Event Start Time will display next to the event (All Day events DO NOT display a start time).
List View :: Display Event End Time
If TRUE, the Event End Time will also display next to the event (All Day events DO NOT display a end time).
The glFusion Agenda Plugin is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This plugin would not be possible without other OpenSource projects:
- FullCalendar - Copyright (c) Adam Shaw - MIT License
- Moments.js - Copyright (c) JS Foundation and other contributors - MIT License
- qTip2 - Copyright (c) Craig Michael Thompson - MIT License
- RRULE for PHP - Copyright (c) Rémi Lanvin - MIT License