A date and time picker module for SilverStripe v4 which adds flatpickr to
standard SilverStripe DateField
, DatetimeField
and TimeField
instances.
Installation is via Composer:
$ composer require silverware/calendar
Note: forms on the website will automatically make use of the datepicker if
the app is using SilverWare. If you are using a vanilla SilverStripe
project, you'll need to load the module script and styles in your app bundle
(jQuery is required):
silverware/calendar: client/dist/js/bundle.js
silverware/calendar: client/dist/styles/bundle.css
As with all SilverStripe modules, configuration is via YAML. Extensions to LeftAndMain
and
ContentController
are applied via config.yml
.
The module supports a custom highlight color for both the CMS and forms on the website. To
define the highlight color, use the following YAML configuration:
# Custom highlight color for CMS:
SilverStripe\Admin\LeftAndMain:
calendar_highlight_color: '#abc'
# Custom highlight color for website forms:
SilverStripe\CMS\Controllers\ContentController:
calendar_highlight_color: '#cba'
SilverStripe will not apply it's own JavaScript to form fields which have a certain
datepicker class. To prevent conflicts, use the following configuration to define the class
which SilverStripe will detect:
SilverStripe\Forms\FormField:
calendar_datepicker_class: 'hasDatepicker'
If you need to disable the datepicker for all instances of a certain form field, use
the following configuration:
# Disable for all date fields:
SilverStripe\Forms\DateField:
calendar_disabled: true
Out of the box, the module will automatically add a flatpickr to
all DateField
, DatetimeField
and TimeField
instances. Each field will
be configured automatically with default settings for each use case.
If you need to apply additional options supported by flatpickr, you
can do so by using the setCalendarConfig()
method:
use SilverStripe\Forms\DateField;
$field = DateField::create('Date', 'Date');
$field->setCalendarConfig([
'minDate' => date('Y-m-d'),
'shorthandCurrentMonth' => true
]);
In addition to accepting an array, the setCalendarConfig()
method also supports
the setting of individual config settings:
$field->setCalendarConfig('weekNumbers', true);
To see a full list of the supported options, please refer to the
flatpickr documentation.
If you need to disable the datepicker for a particular field instance,
as opposed to all instances, you may call the setCalendarDisabled()
method
on the field:
$field->setCalendarDisabled(true);
Please use the GitHub issue tracker for bug reports and feature requests.
Your contributions are gladly welcomed to help make this project better.
Please see contributing for more information.
Colin Tucker | Praxis Interactive |
BSD-3-Clause © Praxis Interactive
Module rating system helping users find modules that are well supported. For more on how the rating system works visit Module standards
Score not correct? Let us know there is a problem