Change Log for Zap Calendar

New features in Zap Calendar 4.3:

Date and time field on the same line
Time can now be selected from a pick list or entered manually
End date time zone field added
Locations can now be grouped by category, allowing for subset of locations to be selected in location dialog
PHP 7 compatibility
Migration from MooTools to jQuery library
Misc. bug fixes

Version 4.3.3
February 28, 2019
Fix: Fixed error when editing categories

Version 4.3.7
August 25, 2017
Security release: This fixes one security issue
Fix: Misc. fixes

Version 4.3.6
Jun 15, 2017
Fix: Removed deprecated warnings when using PHP 7
Fix: Details panel now appears correctly on right side of event, category and calendar edit screens when using Joomla 3.7.x
Fix: iCalendar import function now works correctly (broken in 4.3.5)

Version 4.3.5
April 25, 2017
New birthday/anniversary plugin (basic, standard, pro versions)
Added RFC 7986 features to iCalendar export (calendar name, uid, and refresh-interval)
Added cache option for exported RSS and iCalendar feeds
Misc. bug fixes

Version 4.3.2
July 5, 2016
Fixed bug with location categories
Fixed bug preventing syncing of calendars (ical sync plugin)

Version 4.3.1
May 27, 2016
Misc. bug fixes

Compatibility With Other Extensions

This page will be updated as compatibility issues are found with other Joomla extensions.

 

Akeeba Admin Tools Professional

Symptom: Calendar browser does not work properly when AJAX mode is enabled.

Solution: Make the following change from the option Admin Tools -> Security -> Web Application Firewall -> Configure WAF:

Under the item "List of allowed tmpl= keywords" add "zcalendar" to the comma delimited list, i.e. "component,system,raw,zcalendar"

Data Scraping Protection

Data Scraping Protection (DSP) is a new feature with Zap Calendar 4.2.  When enabled, DSP takes Joomla's internal IDs in Zap Calendar URL's and replaces them with alternate, non-sequential IDs. This prevents your event data from getting stolen by bots or users using URL guessing or automatic URL generation techniques. 

For example, a Zap Calendar non-SEF URL like this:

http://mydomain.com/calendar/option=com_zcalendar?view=event&calid=7&id=1762&Itemid=212

will be converted to this URL when DSP is enabled:

http://mydomain.com/calendar/option=com_zcalendar?view=event&calid=BF8A06622C9279C5&id=676E9E9F5EA074D4&Itemid=212

This works for SEF URLs too.  For example:

http://mydomain.com/calendar/7,1762-friday-meeting 

will be converted to this DSP URL:

http://mydomain.com/calendar/BF8A06622C9279C5,676E9E9F5EA074D4-friday-meeting

With DSP enabled, the internal event ID and calendar ID are replaced with a non-sequential number, making it impossible to guess the URLs of events. Interestingly, sh404SEF URLs will not change if DSP is enabled or disabled. However, you will need to purge your old links in sh404SEF's URL Manager to rebuild the SEF URLs using the new Zap Calendar URLs.

DSP may not be for everyone, but may be useful for sites where protecting your calendar data is important, for example, when users create their own events or when Zap Calendar's personal calendar feature is enabled.  When data scraping protection is enabled, URLs in the original format will no longer work.  It is best to enable this for a new Zap Calendar site or set the feature to "transitional" for existing sites.  Transitional mode will create the new URL's but will still accept old URLs.  Switching from transitional to full protection can be done later when use of the old URLs is minimized.

DSP is a site wide feature and is enabled from the global Zap Calendar settings.  This feature works only with Zap Calendar URLs.  It is available with all Zap Calendar free and subscription versions.

Customizing Zap Calendar

There are a number of ways to customize Zap Calendar to tailor it to a customer's specific needs. This article describes these methods and how to ensure these customizations will stay after a Zap Calendar update.

Themes

Themes provide a way to customize the display of the calendar in the front end.  Zap Calendar contains a number of themes with different color schemes to fit many site designs.  Each theme is contained in its own folder in the "components/zap_calendar/themes" folder.  This folder contains the cascading style sheet (CSS) file and associated image files needed to display the theme.

Don't Modify Existing Themes

The danger in modifying an existing theme is that when the next Zap Calendar update is done, the changes made to the theme will be overwritten by the update.  Instead, it is best to create a new theme.  To create a new theme, create a new folder with the theme name in the "components/com_zcalendar/themes" folder.  It is probably easiest to copy an existing theme that may be similar to your custom theme into the newly created theme folder.  Custom theme folders will not be overwritten when a Zap Calendar update is performed (the theme will be removed if the component is removed from the site).  You can modify the theme.css file to alter the color scheme of the calendar.  To make more extensive changes to the theme, you may want to refer to the common.css file located in the "components/com_zcalendar/assets/css/" folder to override the CSS settings made in that file.

 

Forms

Forms provide a way to customize the output of Zap Calendar.  Forms provide a way to modify the HTML, the output data, or both.  For example, you can modify the display of an event's time within a month calendar to include both a start time and end time (the default form shows only the start time).  Forms are located in the "components/com_zcalendar/forms" folder.  If you have installed one of Zap Calendar's language file, you may see your language specific forms under your language folder.  Otherwise, the forms will be listed in the "en-GB" subfolder.  Some Zap Calendar plugins install forms to allow customization of plugin output.  These forms can be found in the "plugins/zapcalendar" folder.

The forms that are available for customization are:

Form Name Description
approveremail.tpl  E-mail sent to administrator when new events need to be approved
emailurl.tpl  E-mail send form, used by the share event feature (used by guest)
emailurluser.tpl  E-mail send form, used by the share event feature (used by registered user)
eventemail.tpl  
eventfeed.tpl  Event feed, used by RSS
eventfeed_simple.tpl  Simple event feed format, used by RSS
eventlink.tpl  Used when displaying an event title within monthly, weekly, daily calendars and upcoming events and lists
shareurl.tpl  Share URL window
showdailyitem.tpl  Show event within day calendar
showevent.tpl  Full event listing
showurls.tpl  
subscribe.tpl Subscribe popup window
upcomingitem.tpl Single event in an upcoming events listing (see below)
upcomingitem_fancy.php.tpl Single event in an upcoming events listing, fancy format (see below)
upcomingtitle.tpl  

Don't Modify the TPL Files

As with themes, there is a danger in losing customizations during a Zap Calendar update if the TPL file is modified.  Instead, copy the TPL file to a FRM file and modify the FRM file.  For example, copy the "eventlink.tpl" file to "eventlink.frm" file and modify that one.  Zap Calendar will automatically look at the .frm file first.

Upcoming Item Forms

The administrator has the ability to switch formats for the upcoming item listing.  The form name must be in one of two formats in order to be used by Zap Calendar:

upcomingitem_%FORM%.tpl

upcomingitem_%FORM%.php.tpl

 

Where "%FORM%" is the form name you wish to use when specifying the name in the view settings. Zap Calendar comes with two upcoming item forms, "upcomingitem.tpl" and "upcomingitem_fancy.php.tpl".  In the Zap Calendar view settings, you would select these by specifying the form names, "" (blank) and "fancy", respectively.  The fancy form is written in PHP, an option for creating forms where the text based forms may not be sufficient.  Just like with text forms, PHP forms should be copied and not modified if changes are needed.  So, for this PHP form, it would be copied to the name "upcomingitem_fancy.php.frm" and modified from there.

Foreign Language Forms

Forms are stored by language in the forms folder.  The foreign languge form will be used if Joomla is configured to be used in another language.  If the foreign language version of the form is not available, then the english version will be used by default.

Add-ons

Add-ons provide another method of customizing Zap Calendar. There are dozens of add-ons available for Zap Calendar that can add functionality and enhance its display.

Events Are Not Showing On My Calendar: A Troubleshooting Guide

Users frequently contact us to determine why events are not showing on their calendars.  Zap Calendar provides many advanced features but that can also lead to configurations where events do not display as expected.  Here is a checklist of items to look for if you do not see events in your calendar.

  • Verify the event is published and approved in the event manager.
  • Verify that at least one of the event's categories is listed in the calendar's category list (under the category tab in the calendar settings).
  • Verify the category is published in the category manager
  • Check the date range in the calendar (under the general tab in the calendar settings) to verify the event falls within the date range.  If the date range is blank, check the range in Zap Calendar's global settings. The date range is typically set to "-1Y" and "+3Y", which is one year ago from today to 3 years in the future (some users have had success when resaving the Zap Calendar global settings).
  • Verify your calendar does not have personal mode enabled, defined under the general tab in the calendar settings.  When personal mode is enabled, only events created by the user will be displayed (and the user is logged into the site).
  • Verify the event's access is set to public, or verify the security access matches the user's access level if not set to public.

 

Joomla! Debug Console

Session

Profile Information

Memory Usage

Database Queries