This document provides an overview and demonstration of the Smart Date module for Drupal. It summarizes the module as follows:
1. Smart Date aims to simplify working with dates and recurring events in Drupal by providing an intuitive user interface for editors and improved performance.
2. It extends Drupal's core date field and stores data as timestamps for better performance. Recurring dates are stored as normal field deltas so they work with views.
3. The module includes calendar integration allowing drag and drop editing of events directly on the calendar. Starter kits provide configurations for event content and calendars.
9. RECURRING EVENTS
9
- A common use case
- Though there are interface
differences, calendar apps are
largely consistent in the
functionality they offer
- Many apps use the RRULE format
for or storage and/or
import/export
10. THE GOLDEN RRULE
10
- A standard data model for describing recurring dates
- Used by popular calendar apps, including Google and Apple
- FREQ: YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, or
SECONDLY
- Limit: COUNT or UNTIL
- INTERVAL
- Complex structures: BYMONTH, BYWEEKNO, BYYEARDAY,
BYMONTHDAY, BYDAY, BYHOUR, BYMINUTE, BYSECOND,
BYSETPOS
21. LEVERAGE CORE
21
- Extend core Date Range field
- Uses an HTML5 datetime picker
- Store data as timestamps
- Native db Datetime has advantages, but 100% custom
- Also not as portable
- Postgres uses timestamps to store dates
- Use existing class and methods
- JS uses timestamps for internal storage too
22. RECURRING DATES
22
- Stores recurring instances as normal field deltas, so views will
work like normal multivalued fields
- Able to override specific instances
- Reschedule or cancel
- Special formatters for recurring dates
- Show a specific number of
upcoming and/or past instances
- Able to customize text display
of recurrence rule
23. CALENDAR INTEGRATION
23
- Originally a patch on Fullcalendar View
- Now a plugin instance
- Drag-and-drop support
- Double-click to add events
- Full support for recurring dates
24. STARTER KITS
24
- Bundles of configuration to get you up and running quickly
- Install an Event content type and related views
- A great way to try out Smart Date, or jump start your project
- Easiest way to use Smart Date with Fullcalendar View
- Patches welcome!
25. SMART DATE CALENDAR KIT
25
> composer require drupal/smart_date_calendar_kit
> drush en smart_date_calendar_kit smart_date_recur
30. RECURRING DATES FIELD
30
- AKA date_recur
- The goto solution in Drupal 7
- RRULE field, instances generated
- No UI out of the box
- Companion module offers options
- Views require relationship to show instances
- Some calendars require patches
31. SMART DATE
31
- Primary design goal was ease of use
- Takes cues popular calendar software
- Recurring dates added as a submodule
- Instances stored as field deltas, reference rule
- Uses RRULEs internally
- Calendar integration out of the box
- Drag-and-drop editing, creation
32. RECURRING EVENTS
32
- Doesn't use RRULE internally
- Submodule for registration
- Not a field, custom entities
- UI is deliberately unstyled - a blank canvas!
- "Consecutive" recurring dates
- No timezone handling
33. BOOKABLE CALENDAR
33
- Uses the Smart Date interface
- Built for registration
- Not a field, custom entities
- A work in progress!
35. REGISTRATION
35
- Does it need to be in Drupal? Eventbrite, etc
- Simple use cases: Webform
- Complex use cases: Recurring Events
- Consider Bookable Calendar
- Even more robust
- BEE - Bookable Entities Everywhere
- RNG - Events and Registration
- BAT - Booking and Availability Management Tools
36. ADDRESSING THE PROBLEMS
36
SPEED
Timestamps for
better
performance
FORMAT
Intelligent
formatting of
output,
translatable
EDITOR UX
JS-rich interface
provides app-like
functionality
SITE
BUILDERS
Recurring
dates
Interactive
calendars
Timezones
37. BADCamp 2020
Coming up next
Friday 10 am ● Best practices for building multilingual
sites in Drupal 8 with Mohit Aghera
● Classic Website Blunders with Stephen
Pashby
● Facets in Drupal 8: supercharged
filtering of listings with Nick
Dickinson-Wilde
● New CSS Tech: Tell Your Designers! with
Mike Herchel