Class kartik\daterange\DateRangePicker
Inheritance | kartik\daterange\DateRangePicker » kartik\base\InputWidget » yii\widgets\InputWidget » yii\base\Widget » yii\base\Component » yii\base\BaseObject |
---|---|
Implements | kartik\base\BootstrapInterface, yii\base\Configurable, yii\base\ViewContextInterface |
Uses Traits | kartik\base\BootstrapTrait, kartik\base\TranslationTrait, kartik\base\WidgetTrait |
Available since version | 1.0 |
DateRangePicker is an advanced date range picker input for Yii Framework 2 based on
bootstrap-daterangepicker
plugin.
See also https://github.com/dangrossman/bootstrap-daterangepicker.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$attribute | string|null | The model attribute that this widget is associated with. | yii\widgets\InputWidget |
$autoIdPrefix | string | The prefix to the automatically generated widget IDs. | yii\base\Widget |
$autoUpdateOnInit | boolean | Whether to auto update the input on initialization. | kartik\daterange\DateRangePicker |
$baseSourcePath | string|false | Get parsed base source path based on $sourcePath setting. If $sourcePath is not set, it will return the current working directory of this widget class. | kartik\base\WidgetTrait |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component. | yii\base\Component |
$bsColCssPrefixes | array | The bootstrap grid column css prefixes mapping, the key is the bootstrap versions, and the value is an array containing the sizes and their corresponding grid column css prefixes. | kartik\base\BootstrapTrait |
$bsCssMap | array | CSS conversion mappings across bootstrap library versions. | kartik\base\BootstrapTrait |
$bsExtBasename | integer | The yii2 bootstrap extension base name (readonly property available via getter method getBsExtBasename()) | kartik\base\BootstrapTrait |
$bsVer | integer | Bootstrap version number currently set (readonly property available via getter method getBsVer()) | kartik\base\BootstrapTrait |
$bsVersion | integer|string | The bootstrap library version that you wish to use for this specific extension / widget. | kartik\base\BootstrapTrait |
$callback | string | The javascript callback to be passed to the plugin constructor. | kartik\daterange\DateRangePicker |
$containerOptions | array | The HTML attributes for the container applied when $hideInput is set to true . |
kartik\daterange\DateRangePicker |
$containerTemplate | string | The template for rendering the container, when hideInput is set to true . |
kartik\daterange\DateRangePicker |
$convertFormat | boolean | Whether the widget should automatically format the date from the PHP DateTime format to the javascript/jquery plugin format. | kartik\base\InputWidget |
$counter | integer | A counter used to generate $id for widgets. | yii\base\Widget |
$data | array | The data (for list inputs) | kartik\base\InputWidget |
$defaultBtnCss | string | Default bootstrap button CSS (readonly property available via getter method getDefaultBtnCss()) | kartik\base\BootstrapTrait |
$defaultIconPrefix | string | Default icon prefix (readonly property available via getter method getDefaultIconPrefix()) | kartik\base\BootstrapTrait |
$defaultOptions | array | Default HTML attributes or other settings for widgets. | kartik\base\WidgetTrait |
$defaultPluginOptions | array | Default plugin options for the widget | kartik\base\WidgetTrait |
$defaultPresetValueOptions | array | The HTML attributes for the span element that displays the default value for a preset
dropdown. |
kartik\daterange\DateRangePicker |
$disabled | boolean | Whether input is to be disabled | kartik\base\InputWidget |
$dropdownClass | string | Bootstrap dropdown class name based on currently configured bootstrap version (readonly property available via getter method getDropdownClass()) | kartik\base\BootstrapTrait |
$encodeValue | boolean | Whether to HTML encode the value | kartik\daterange\DateRangePicker |
$endAttribute | string | The attribute name which you can set optionally to track changes to the range end value. | kartik\daterange\DateRangePicker |
$endInputOptions | array | The HTML attributes for the end input (applicable only if $endAttribute is set). | kartik\daterange\DateRangePicker |
$field | yii\widgets\ActiveField | Active input field, which triggers this widget rendering. | yii\widgets\InputWidget |
$hashVarLoadPosition | integer | The position where the client JS hash variables for the input widget will be loaded. | kartik\base\WidgetTrait |
$hideInput | boolean | Whether to hide the input (e.g. when you want to show the date range picker as a dropdown). | kartik\daterange\DateRangePicker |
$i18n | array | The the internalization configuration for this widget. | kartik\base\TranslationTrait |
$id | string|null | ID of the widget. Note that the type of this property differs in getter and setter. See getId() and setId() for details. | yii\base\Widget |
$includeDaysFilter | boolean | Whether to add additional preset filter options for days (applicable only when
$presetDropdown is true ). |
kartik\daterange\DateRangePicker |
$includeMonthsFilter | boolean | Whether to add additional preset filter options for months (applicable only when
$presetDropdown is true ). |
kartik\daterange\DateRangePicker |
$initRangeExpr | boolean | Initialize all the list values as part of ranges configuration in $pluginOptions and convert
all values to yii\web\JsExpression |
kartik\daterange\DateRangePicker |
$language | string | The language configuration (e.g. 'fr-FR', 'zh-CN'). | kartik\base\InputWidget |
$model | yii\base\Model|null | The data model that this widget is associated with. | yii\widgets\InputWidget |
$moduleId | string | The module identifier if this widget is part of a module. | kartik\base\WidgetTrait |
$name | string|null | The input name. | yii\widgets\InputWidget |
$options | array | The HTML attributes for the form input | kartik\daterange\DateRangePicker |
$pickerIcon | string | The markup for the calendar picker icon. | kartik\daterange\DateRangePicker |
$pjaxContainerId | string | The identifier for the PJAX widget container if the widget is to be rendered inside a PJAX container. | kartik\base\WidgetTrait |
$pjaxDuplicationFix | boolean | Prevent duplication of pjax containers when browser back & forward buttons are pressed. | kartik\base\WidgetTrait |
$pluginDestroyJs | string | The javascript that will be used to destroy the jQuery plugin | kartik\base\WidgetTrait |
$pluginEvents | array | Widget JQuery events. | kartik\base\WidgetTrait |
$pluginLoading | boolean | Show loading indicator while plugin loads | kartik\base\InputWidget |
$pluginName | string | The plugin name | kartik\daterange\DateRangePicker |
$pluginOptions | array | Widget plugin options. | kartik\base\WidgetTrait |
$presetDropdown | boolean | Show a preset dropdown. | kartik\daterange\DateRangePicker |
$presetFilterDays | array | List of preset filter days (which will be shown as Last {n} days) | kartik\daterange\DateRangePicker |
$presetFilterMonths | array | List of preset filter months (which will be shown as Last {n} months) | kartik\daterange\DateRangePicker |
$readonly | boolean | Whether input is to be readonly | kartik\base\InputWidget |
$sourcePath | string | Directory path to the original widget source. | kartik\base\WidgetTrait |
$stack | yii\base\Widget[] | The widgets that are currently being rendered (not ended). | yii\base\Widget |
$startAttribute | string | The attribute name which you can set optionally to track changes to the range start value. | kartik\daterange\DateRangePicker |
$startInputOptions | array | The HTML attributes for the start input (applicable only if $startAttribute is set). | kartik\daterange\DateRangePicker |
$useWithAddon | boolean | Whether you are using the picker with a input group addon. | kartik\daterange\DateRangePicker |
$value | string | The input value. | yii\widgets\InputWidget |
$view | yii\web\View | The view object that can be used to render views or view files. Note that the type of this property differs in getter and setter. See getView() and setView() for details. | yii\base\Widget |
$viewPath | string | The directory containing the view files for this widget. | yii\base\Widget |
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
$_bsVer | integer | Current bootstrap version number | kartik\base\BootstrapTrait |
$_dataVar | string | The HTML5 data variable name that will be used to store the Json encoded pluginOptions within the element on which the jQuery plugin will be initialized. | kartik\base\WidgetTrait |
$_defaultBtnCss | string | Default bootstrap button CSS | kartik\base\BootstrapTrait |
$_defaultIconPrefix | string | Default icon CSS prefix | kartik\base\BootstrapTrait |
$_encOptions | string | The JSON encoded plugin options. | kartik\base\WidgetTrait |
$_endInput | string | The generated input for end attribute when $endAttribute has been set | kartik\daterange\DateRangePicker |
$_format | string | The pluginOptions format configuration for the date time | kartik\daterange\DateRangePicker |
$_hashVar | string | The generated hashed variable name that will store the JSON encoded pluginOptions in yii\web\View::POS_HEAD. | kartik\base\WidgetTrait |
$_isBs4 | boolean | Flag to detect whether bootstrap 4. | kartik\base\BootstrapTrait |
$_lang | string | The two or three letter lowercase code for the language according to ISO-639. | kartik\base\InputWidget |
$_langFile | string | The language js file. | kartik\base\InputWidget |
$_loadIndicator | string | The indicator to be displayed while plugin is loading. | kartik\base\InputWidget |
$_localeLang | string | Locale language configuration to be used for the plugin | kartik\daterange\DateRangePicker |
$_msgCat | string | Translation message file category name for i18n. | kartik\base\TranslationTrait |
$_separator | string | The pluginOptions separator configuration | kartik\daterange\DateRangePicker |
$_startInput | string | The generated input for start attribute when $startAttribute has been set | kartik\daterange\DateRangePicker |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\Component |
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
__construct() | Constructor. | yii\base\BaseObject |
__get() | Returns the value of a component property. | yii\base\Component |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component |
__set() | Sets the value of a component property. | yii\base\Component |
__unset() | Sets a component property to be null. | yii\base\Component |
addCssClass() | Adds bootstrap CSS class to options by parsing the bootstrap version for the specified Bootstrap CSS type. | kartik\base\BootstrapTrait |
afterRun() | This method is invoked right after a widget is executed. | yii\base\Widget |
attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
beforeRun() | This method is invoked right before the widget is executed. | yii\base\Widget |
begin() | Begins a widget. | yii\base\Widget |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component |
className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
end() | Ends a widget. | yii\base\Widget |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
getBSClass() | Gets the respective Bootstrap class based on currently configured bootstrap version. | kartik\base\BootstrapTrait |
getBaseSourcePath() | Get parsed base source path based on $sourcePath setting. If $sourcePath is not set, it will return the current working directory of this widget class. | kartik\base\WidgetTrait |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
getBsVer() | Gets the current set bootstrap version number. | kartik\base\BootstrapTrait |
getCssClass() | Gets bootstrap css class by parsing the bootstrap version for the specified BS CSS type. | kartik\base\BootstrapTrait |
getDefaultBtnCss() | Gets the default button CSS | kartik\base\BootstrapTrait |
getDefaultIconPrefix() | Gets the default icon css prefix | kartik\base\BootstrapTrait |
getDropdownClass() | Gets the respective bootstrap dropdown class name based on currently configured bootstrap version. | kartik\base\BootstrapTrait |
getId() | Returns the ID of the widget. | yii\base\Widget |
getView() | kartik\base\WidgetTrait | |
getViewPath() | Returns the directory containing the view files for this widget. | yii\base\Widget |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component |
init() | Initializes the widget. | yii\widgets\InputWidget |
initI18N() | Yii i18n messages configuration for generating translations | kartik\base\TranslationTrait |
isBs() | Validate Bootstrap version | kartik\base\BootstrapTrait |
isBs4() | Validate if Bootstrap 4.x version. | kartik\base\BootstrapTrait |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
registerAssets() | Registers the client assets for DateRangeicker widget. | kartik\daterange\DateRangePicker |
registerWidgetJs() | Registers a JS code block for the widget. | kartik\base\WidgetTrait |
removeCssClass() | Removes bootstrap CSS class from options by parsing the bootstrap version for the specified Bootstrap CSS type. | kartik\base\BootstrapTrait |
render() | Renders a view. | yii\base\Widget |
renderFile() | Renders a view file. | yii\base\Widget |
run() | Executes the widget. | kartik\daterange\DateRangePicker |
setId() | Sets the ID of the widget. | yii\base\Widget |
setView() | Sets the view object to be used by this widget. | yii\base\Widget |
trigger() | Triggers an event. | yii\base\Component |
widget() | Creates a widget instance and runs it. | yii\base\Widget |
Protected Methods
Method | Description | Defined By |
---|---|---|
addAsset() | Adds an asset to the view. | kartik\base\WidgetTrait |
configureBsVersion() | Configures the bootstrap version settings | kartik\base\BootstrapTrait |
convertDateFormat() | Automatically convert the date format from PHP DateTime to Moment.js DateTime format as required by the
bootstrap-daterangepicker plugin. |
kartik\daterange\DateRangePicker |
fixPjaxDuplication() | Fix for weird PJAX container duplication behavior on pressing browser back and forward buttons. | kartik\base\WidgetTrait |
getBsExtBasename() | The yii2-bootstrap extension base name. | kartik\base\BootstrapTrait |
getInput() | Generates an input. | kartik\base\InputWidget |
getInputOpts() | Gets input options based on type. | kartik\daterange\DateRangePicker |
getPluginScript() | Returns the plugin registration script. | kartik\base\WidgetTrait |
getRangeAttr() | Gets the range attribute value based on type. | kartik\daterange\DateRangePicker |
getRangeInput() | Generates and returns the hidden input markup when one of start or end attributes are set. | kartik\daterange\DateRangePicker |
getRangeJs() | Generates and returns the client script on date range change, when the start and end attributes are set. | kartik\daterange\DateRangePicker |
getRangeValue() | Generates and returns the hidden input markup when one of start or end attributes are set. | kartik\daterange\DateRangePicker |
hasModel() | yii\widgets\InputWidget | |
hashPluginOptions() | Generates a hashed variable to store the pluginOptions. | kartik\base\WidgetTrait |
initBsVersion() | Initializes bootstrap versions for the widgets and asset bundles. | kartik\base\BootstrapTrait |
initDestroyJs() | Generates the pluginDestroyJs script if it is not set. |
kartik\base\WidgetTrait |
initDisability() | Validates and sets disabled or readonly inputs. | kartik\base\InputWidget |
initInputWidget() | Initializes the input widget. | kartik\base\InputWidget |
initLanguage() | Initialize the plugin language. | kartik\base\InputWidget |
initLocale() | Initialize locale settings. | kartik\daterange\DateRangePicker |
initRange() | Initializes the pluginOptions range list. | kartik\daterange\DateRangePicker |
initRangeValue() | Initializes the range values when one of start or end attributes are set. | kartik\daterange\DateRangePicker |
initSettings() | Initializes widget settings | kartik\daterange\DateRangePicker |
isSameVersion() | Compares two versions and checks if they are of the same major BS version. | kartik\base\BootstrapTrait |
mergeDefaultOptions() | Merge default options | kartik\base\WidgetTrait |
parseDateFormat() | Parses and sets plugin date format based on attribute type using yii\helpers\FormatConverter. Currently this method is used only within the kartik\date\DatePicker and \kartik\datetime\DateTimePicker\ widgets. | kartik\base\InputWidget |
parseJsExpr() | Parses variable and converts it to a yii\web\JsExpression instance. | kartik\daterange\DateRangePicker |
parseVer() | Parses and returns the major BS version | kartik\base\BootstrapTrait |
registerPlugin() | Registers a specific plugin and the related events | kartik\base\WidgetTrait |
registerPluginOptions() | Registers plugin options by storing within a uniquely generated javascript variable. | kartik\base\WidgetTrait |
renderInput() | Renders the input. | kartik\daterange\DateRangePicker |
renderInputHtml() | Render a HTML input tag. | yii\widgets\InputWidget |
setDataVar() | Sets a HTML5 data variable. | kartik\base\WidgetTrait |
setInputOpts() | Sets input options for a specific type. | kartik\daterange\DateRangePicker |
setLanguage() | Sets the language JS file if it exists. | kartik\base\InputWidget |
Events
Event | Type | Description | Defined By |
---|---|---|---|
EVENT_AFTER_RUN | yii\base\WidgetEvent | An event raised right after executing a widget. (available since version 2.0.11) | yii\base\Widget |
EVENT_BEFORE_RUN | yii\base\WidgetEvent | An event raised right before executing a widget. (available since version 2.0.11) | yii\base\Widget |
EVENT_INIT | yii\base\Event | An event that is triggered when the widget is initialized via init(). (available since version 2.0.11) | yii\base\Widget |
Constants
Constant | Value | Description | Defined By |
---|---|---|---|
LOAD_PROGRESS | ' |
kartik\base\InputWidget |
Property Details
The generated input for end attribute when $endAttribute has been set
The pluginOptions format configuration for the date time
Locale language configuration to be used for the plugin
The pluginOptions separator configuration
The generated input for start attribute when $startAttribute has been set
Whether to auto update the input on initialization. If set to false
, this will auto set the
pluginOptions['autoUpdateInput']
to false
. A default $callback will be auto-generated when this is set to
false
.
The javascript callback to be passed to the plugin constructor. Note: a default value is set for
this property when you set $hideInput to false, OR when you set $useWithAddon to true
or $autoUpdateOnInit
to false
. If you do set this property, it will override any auto-generated callbacks.
The HTML attributes for the container applied when $hideInput is set to true
. The following
special options are recognized:
tag
: string, the HTML tag for rendering the container. Defaults todiv
.
The template for rendering the container, when hideInput is set to true
. The special tag {input}
will be replaced with the hidden form input. In addition, the element with css class range-value
will be
replaced by the calculated plugin value. The special token {value}
will be replaced with the value of the hidden
form input during initialization and the token {pickerIcon}
will be replaced with the $pickerIcon property.
The HTML attributes for the span
element that displays the default value for a preset
dropdown. This property is not used any more and the $containerTemplate setting directly can be used to
render the preset value input.
Whether to HTML encode the value
The attribute name which you can set optionally to track changes to the range end value. One of the following actions will be taken when this is set:
- If using with model, an active hidden input will be automatically generated using this as an attribute name for the end value of the range.
- If using without model, a normal hidden input will be automatically generated using this as an input name for the end value of the range.
The HTML attributes for the end input (applicable only if $endAttribute is set). If using
without a model, you can set an end value here within the value
property.
Whether to hide the input (e.g. when you want to show the date range picker as a dropdown). If set
to true
, the input will be hidden. The plugin will be initialized on a container element (default 'div'),
using the container template. A default $callback will be setup in this case to display the selected range
value within the container.
Whether to add additional preset filter options for days (applicable only when
$presetDropdown is true
). If this is set to true
following additional preset filter option(s) will
be available:
- Last {n} Days
where n will be picked up from the list of filter days set via [presetFilterDays]
Whether to add additional preset filter options for months (applicable only when
$presetDropdown is true
). If this is set to true
following additional preset filter options will
be available:
- Last {n} Months
where n will be picked up from the list of filter months set via [presetFilterMonths]
Initialize all the list values as part of ranges
configuration in $pluginOptions and convert
all values to yii\web\JsExpression
The HTML attributes for the form input
The markup for the calendar picker icon. If not set this will default to:
<i class="glyphicon glyphicon-calendar"></i>
if $bsVersion is set to3.x
<i class="fas fa-calendar-alt"></i>
if $bsVersion is set to4.x
or5.x
The plugin name
Show a preset dropdown. If set to true, this will automatically generate a preset list of ranges
for selection. Setting this to true will also automatically set $initRangeExpr to true
.
List of preset filter days (which will be shown as Last {n} days)
List of preset filter months (which will be shown as Last {n} months)
The attribute name which you can set optionally to track changes to the range start value. One of the following actions will be taken when this is set:
- If using with model, an active hidden input will be automatically generated using this as an attribute name for the start value of the range.
- If using without model, a normal hidden input will be automatically generated using this as an input name for the start value of the range.
The HTML attributes for the start input (applicable only if $startAttribute is set). If using
without a model, you can set a start value here within the value
property.
Whether you are using the picker with a input group addon. You can set it to true
, when $hideInput is false, and you wish to show the picker position more correctly at the input-group addon indicator.
A default $callback will be generated in this case to generate the selected range value for the input.
Method Details
Automatically convert the date format from PHP DateTime to Moment.js DateTime format as required by the
bootstrap-daterangepicker
plugin.
See also:
protected static string convertDateFormat ( $format ) | ||
$format | string | The PHP date format string |
Gets input options based on type.
protected array|mixed getInputOpts ( $type = '' ) | ||
$type | string | Whether |
Gets the range attribute value based on type.
protected mixed|string getRangeAttr ( $type = '' ) | ||
$type | string | Whether |
Generates and returns the hidden input markup when one of start or end attributes are set.
protected string getRangeInput ( $type = '' ) | ||
$type | string | Whether |
Generates and returns the client script on date range change, when the start and end attributes are set.
protected string getRangeJs ( $type = '' ) | ||
$type | string | Whether |
Generates and returns the hidden input markup when one of start or end attributes are set.
protected string getRangeValue ( $type = '' ) | ||
$type | string | Whether |
throws | Exception |
---|
Initialize locale settings.
protected void initLocale ( ) | ||
throws | \ReflectionException|\Exception |
---|
Initializes the pluginOptions range list.
protected void initRange ( ) | ||
throws | yii\base\InvalidConfigException |
---|
Initializes the range values when one of start or end attributes are set.
protected void initRangeValue ( $type = '', $value = '' ) | ||
$type | string | Whether |
$value | string | The value to set |
Initializes widget settings
protected void initSettings ( ) | ||
throws | yii\base\InvalidConfigException | |
---|---|---|
throws | ReflectionException |
Parses variable and converts it to a yii\web\JsExpression instance.
protected static yii\web\JsExpression parseJsExpr ( $value ) | ||
$value | string|yii\web\JsExpression |
Registers the client assets for DateRangeicker widget.
public void registerAssets ( ) |
Renders the input.
protected string renderInput ( ) |
Executes the widget.
public string|void run ( ) | ||
return | string|void | The rendering result may be directly "echoed" or returned as a string |
---|---|---|
throws | yii\base\InvalidConfigException | |
throws | ReflectionException |
Sets input options for a specific type.
protected void setInputOpts ( $type = '', $options = [] ) | ||
$type | string | Whether |
$options | array | The options to set |