Class kartik\date\DatePicker
Inheritance | kartik\date\DatePicker » 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 |
Subclasses | kartik\widgets\DatePicker |
Available since version | 1.0 |
DatePicker widget is a Yii2 wrapper for the Bootstrap DatePicker plugin by @eternicode and provides a flexible datepicker widget in Bootstrap style.This DatePicker widget by Krajee also includes additional features and enhancements to the core plugin like better useful bootstrap addons. It includes an enhanced date clear addon button to clear dates easily. It also adds ability to configure and render the datepicker INLINE, or as a BUTTON, or as a date RANGE by integrating with the kartik\field\FieldRange widget.
Usage example:
use kartik\date\DatePicker;
// usage without model
echo '<label>Check Issue Date</label>';
echo DatePicker::widget([
'name' => 'check_issue_date',
'value' => date('d-M-Y', strtotime('+2 days')),
'options' => ['placeholder' => 'Select issue date ...'],
'pluginOptions' => [
'format' => 'dd-M-yyyy',
'todayHighlight' => true
]
]);
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$addInputCss | string | Additional CSS class that will be appended to the date input class within $options and
$options2. |
kartik\date\DatePicker |
$attribute | string|null | The model attribute that this widget is associated with. | yii\widgets\InputWidget |
$attribute2 | string | The model attribute 2 if you are setting $type to TYPE_RANGE for markup. | kartik\date\DatePicker |
$autoIdPrefix | string | The prefix to the automatically generated widget IDs. | yii\base\Widget |
$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 |
$buttonOptions | array | The HTML attributes for the button that is rendered for TYPE_BUTTON. | kartik\date\DatePicker |
$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 |
$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 |
$field | yii\widgets\ActiveField | Active input field, which triggers this widget rendering. | yii\widgets\InputWidget |
$form | yii\widgets\ActiveForm | The ActiveForm object which you can pass for seamless usage with ActiveForm. | kartik\date\DatePicker |
$hashVarLoadPosition | integer | The position where the client JS hash variables for the input widget will be loaded. | kartik\base\WidgetTrait |
$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 |
$language | string | The language configuration (e.g. 'fr-FR', 'zh-CN'). | kartik\base\InputWidget |
$layout | string | The layout template to display the buttons (applicable only when $type is set to one of TYPE_COMPONENT_PREPEND or TYPE_COMPONENT_APPEND or TYPE_RANGE). | kartik\date\DatePicker |
$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 |
$name2 | string | The name of input number 2 if you are setting $type to TYPE_RANGE for markup. | kartik\date\DatePicker |
$options | array | The HTML attributes for the input tag. | kartik\date\DatePicker |
$options2 | array | The HTML attributes for the input number 2 if you are setting $type to TYPE_RANGE for markup. | kartik\date\DatePicker |
$pickerButton | array|string|boolean | The calendar picker button configuration. | kartik\date\DatePicker |
$pickerIcon | string | The markup for the calendar picker icon. | kartik\date\DatePicker |
$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\date\DatePicker |
$pluginOptions | array | Widget plugin options. | kartik\base\WidgetTrait |
$readonly | boolean | Whether input is to be readonly | kartik\base\InputWidget |
$removeButton | array|string|boolean | The calendar remove button configuration - applicable only for type set to TYPE_COMPONENT_PREPEND or TYPE_COMPONENT_APPEND. | kartik\date\DatePicker |
$removeIcon | string | The markup for the remove icon (which will clear the datepicker data). | kartik\date\DatePicker |
$separator | string | The range input separator if you are setting $type to TYPE_RANGE for markup. | kartik\date\DatePicker |
$size | string | The size of the input - 'lg', 'md', 'sm', 'xs' | kartik\date\DatePicker |
$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 |
$type | string | The markup type of widget markup must be one of the TYPE constants. | kartik\date\DatePicker |
$value | string | The input value. | yii\widgets\InputWidget |
$value2 | string | The name of value for input number 2 if you are setting $type to TYPE_RANGE for markup. | kartik\date\DatePicker |
$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 |
$_hasAddon | boolean | Whether a prepend or append addon exists. | kartik\date\DatePicker |
$_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 |
$_msgCat | string | Translation message file category name for i18n. | kartik\date\DatePicker |
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. | kartik\base\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 kartik\date\DatePicker widget client assets. | kartik\date\DatePicker |
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\date\DatePicker |
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 Javascript DateTime format | kartik\base\InputWidget |
err() | Raise an invalid configuration exception. | kartik\date\DatePicker |
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 |
getPluginScript() | Returns the plugin registration script. | kartik\base\WidgetTrait |
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 |
initIcon() | Initializes picker icon and remove icon | kartik\date\DatePicker |
initInputWidget() | Initializes the input widget. | kartik\base\InputWidget |
initLanguage() | Initialize the plugin language. | kartik\base\InputWidget |
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 |
parseMarkup() | Parses the input to render based on markup type. | kartik\date\DatePicker |
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 |
renderAddon() | Returns the addon to render | kartik\date\DatePicker |
renderDatePicker() | Renders the date picker widget. | kartik\date\DatePicker |
renderInput() | Renders the source input for the DatePicker plugin. | kartik\date\DatePicker |
renderInputHtml() | Render a HTML input tag. | yii\widgets\InputWidget |
setDataVar() | Sets a HTML5 data variable. | kartik\base\WidgetTrait |
setLanguage() | Sets the language JS file if it exists. | kartik\base\InputWidget |
validateConfig() | Validates widget configuration. | kartik\date\DatePicker |
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 | |
TYPE_BUTTON | 6 | Datepicker rendered as a picker button without any input | kartik\date\DatePicker |
TYPE_COMPONENT_APPEND | 3 | Datepicker with the date picker button rendered as a appended bootstrap addon component | kartik\date\DatePicker |
TYPE_COMPONENT_PREPEND | 2 | Datepicker with the date picker button rendered as a prepended bootstrap addon component | kartik\date\DatePicker |
TYPE_INLINE | 4 | Datepicker calendar directly rendered inline | kartik\date\DatePicker |
TYPE_INPUT | 1 | Datepicker rendered as a plain input. | kartik\date\DatePicker |
TYPE_RANGE | 5 | Datepicker range with from and to date inputs | kartik\date\DatePicker |
Property Details
Whether a prepend or append addon exists.
Translation message file category name for i18n.
Additional CSS class that will be appended to the date input class
within $options and
$options2. Defaults to form-control
. This value can be changed for custom (non Bootstrap) CSS styling.
The model attribute 2 if you are setting $type to TYPE_RANGE for markup.
The HTML attributes for the button that is rendered for TYPE_BUTTON. Defaults to
['class'=>'btn btn-default']
for $bsVersion = '3.x', and['class'=>'btn btn-secondary']
for $bsVersion = '4.x' The following special options are recognized:- 'label': string the button label. Defaults to the $pickerIcon setting.
The ActiveForm object which you can pass for seamless usage with ActiveForm. This property is especially useful for client validation of $attribute2 for TYPE_RANGE validation.
The layout template to display the buttons (applicable only when $type is set to one of TYPE_COMPONENT_PREPEND or TYPE_COMPONENT_APPEND or TYPE_RANGE). The following tokens will be parsed and replaced when $type is set to one of TYPE_COMPONENT_PREPEND or TYPE_COMPONENT_APPEND:
{picker}
: will be replaced with the date picker button (rendered as a bootstrap input group addon).{remove}
: will be replaced with the date clear/remove button (rendered as a bootstrap input group addon).{input}
: will be replaced with the HTML input markup that stores the date.
When $type is set to TYPE_RANGE the following tokens will be parsed and replaced:
{input1}
: will be replaced with the HTML input markup that stores the date for attribute1.{separator}
: will be replaced with the input group addon for field range separator. The text for the separator is set via theseparator
property.{input2}
: will be replaced with the HTML input markup that stores the date for attribute2.
The $layout property defaults to the following value if not set:
{picker}{remove}{input}
for TYPE_COMPONENT_PREPEND{input}{remove}{picker}
for TYPE_COMPONENT_APPEND{input1}{separator}{input2}
for TYPE_RANGE
The name of input number 2 if you are setting $type to TYPE_RANGE for markup.
The HTML attributes for the input tag.
The HTML attributes for the input number 2 if you are setting $type to TYPE_RANGE for markup.
The calendar picker button configuration.
- if this is passed as a string, it will be displayed as is (will not be HTML encoded).
- if this is set to
false
, the picker button will not be displayed. - if this is passed as an array (which is the default) it will be parsed as HTML attributes for the button (to
be displayed as a Bootstrap addon). The following special keys are recognized;
label
: string, the label for the button. Defaults to $pickerIcon.title
: _string|boolean, the title to be displayed on hover. Defaults to 'Select date & time'. To disable, set it tofalse
.
The markup for the calendar picker icon. If not set this will default to:
<i class="glyphicon glyphicon-calendar kv-dp-icon"></i>
if $bsVersion is set to3.x
<i class="fas fa-calendar-alt kv-dp-icon"></i>
if $bsVersion is set to4.x
The plugin name
The calendar remove button configuration - applicable only for type set to TYPE_COMPONENT_PREPEND or TYPE_COMPONENT_APPEND.
- if this is passed as a string, it will be displayed as is (will not be HTML encoded).
- if this is set to
false
, the remove button will not be displayed. - if this is passed as an array (this is the DEFAULT) it will treat this as HTML attributes for the button (to
be displayed as a Bootstrap addon). The following special keys are recognized;
label
: string, the label for the button. Defaults to $removeIcon.title
: _string|boolean, the title to be displayed on hover. Defaults to 'Clear field'. To disable, set it tofalse
.
The markup for the remove icon (which will clear the datepicker data). If not set this will default to:
<i class="glyphicon glyphicon-remove kv-dp-icon"></i>
if $bsVersion is set to3.x
<i class="fas fa-times kv-dp-icon"></i>
if $bsVersion is set to4.x
The range input separator if you are setting $type to TYPE_RANGE for markup. Defaults to 'to'.
The size of the input - 'lg', 'md', 'sm', 'xs'
The markup type of widget markup must be one of the TYPE constants. Defaults to TYPE_COMPONENT_PREPEND
The name of value for input number 2 if you are setting $type to TYPE_RANGE for markup.
Method Details
Raise an invalid configuration exception.
protected static void err ( $msg = '' ) | ||
$msg | string | The exception message |
throws | yii\base\InvalidConfigException |
---|
Initializes picker icon and remove icon
protected void initIcon ( $type, $bs3Icon, $bs4Icon ) | ||
$type | string | The icon type 'picker' or 'remove' |
$bs3Icon | string | The icon suffix name for Bootstrap 3 version |
$bs4Icon | string | The icon suffix name for Bootstrap 4 version |
Parses the input to render based on markup type.
protected string parseMarkup ( $input ) | ||
$input | string |
Registers the kartik\date\DatePicker widget client assets.
public void registerAssets ( ) |
Returns the addon to render
protected string renderAddon ( &$options, $type = 'picker' ) | ||
$options | array | The HTML attributes for the addon |
$type | string | Whether the addon is the picker or remove |
Renders the date picker widget.
protected void renderDatePicker ( ) | ||
throws | yii\base\InvalidConfigException |
---|
Renders the source input for the DatePicker plugin.
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 |
Validates widget configuration.
protected void validateConfig ( ) | ||
throws | yii\base\InvalidConfigException |
---|