Method | Description | |
---|---|---|
__construct ( string $id, string $default = '', array $attributes = '' ) : void | Adds a date control to the form. | |
_init ( ) : array | Initializes the datepicker's data so calculations for disabled dates can be done. | |
_is_disabled ( integer $year, integer $month = '', integer $day = '' ) : boolean | Checks if, according to the restrictions of the calendar and/or the values defined by the "disabled_dates" property, a day, a month or a year needs to be disabled. | |
_is_format_valid ( $date ) : mixed | Checks if the enetered value is a valid date in the right format. | |
always_visible ( string $element ) : void | Should the date picker be always visible? | |
container ( string $element ) : void | Use this method to instruct the library to open a date picker inside a specific element - useful when you want the date picker to open at a specific position. | |
custom_classes ( array $custom_classes ) : void | Dates that should have custom classes applied to them. | |
default_position ( string $position ) : void | The position of the date picker relative to the element it is attached to. | |
direction ( mixed $direction ) : void | Direction of the calendar. | |
disable_zebra_datepicker ( ) : void | By default, Zebra_Form relies on {@link http://stefangabos.ro/jquery/zebra-datepicker/ Zebra_DatePicker} for {@link Zebra_Form_Date Date} controls. If you want to use a different date picker, you have to disable the built-in one by calling this method. | |
disabled_dates ( array $disabled_dates ) : void | Disables selection of specific dates or range of dates in the calendar. | |
enabled_dates ( array $enabled_dates ) : void | Enables selection of specific dates or range of dates in the calendar, after dates have been previously disabled via {@link disabled_dates()}. | |
first_day_of_week ( integer $day ) : void | Week's starting day. | |
format ( string $format ) : void | Sets the format of the returned date. | |
get_date ( ) : string | To be used after the form is submitted! | |
header_captions ( $captions ) : void | Captions in the datepicker's header, for the 3 possible views: days, months, years. | |
header_navigation ( $navigation ) : void | Sets the HTML to be used for the previous month/next month buttons. | |
icon_position ( string $position ) : void | The position of the date picker's inside the element it is attached to. | |
inside ( boolean $value ) : void | Sets whether the icon for opening the datepicker should be inside or outside the element. | |
offset ( array $value ) : void | Sets the offset, in pixels (x, y), to shift the date picker’s position relative to the top-left of the icon that toggles the date picker. | |
open_icon_only ( array $value ) : void | Sets whether the date picker should be shown *only* when clicking the icon. | |
pair ( string $value ) : void | Pairs the date element with another date element from the page, so that the other date element will use the current date element’s value as starting date. | |
readonly_element ( boolean $value ) : void | Sets whether the element the calendar is attached to should be read-only. | |
select_other_months ( string $value ) : void | Should days from previous and/or next month be selectable when visible? | |
show_clear_date ( string $value ) : void | Should the "Clear date" button be visible? | |
show_icon ( boolean $visible ) : void | Should a calendar icon be added to the elements the plugin is attached to? | |
show_other_months ( string $value = true ) : void | Should days from previous and/or next month be visible? | |
show_select_today ( string $value = 'Today' ) : void | Should the "Today" button be visible? | |
show_week_number ( string $value ) : void | Sets whether an extra column should be shown, showing the number of each week. | |
start_date ( date $value ) : void | Sets a default date to start the date picker with. | |
strict ( boolean $value ) : void | Sets whether default values, in the input field the date picker is attached to, be deleted if they are not valid according to {@link direction() direction} and/or {@link disabled_dates() disabled_dates}. | |
toHTML ( ) : string | Generates the control's HTML code. | |
view ( string $view ) : void | Sets how should the date picker start. | |
weekend_days ( array $days ) : void | Sets the days of the week that are to be considered as "weekend days". | |
zero_pad ( boolean $state ) : void | Should day numbers < 10 be padded with zero? |
create a new form
$form = new Zebra_Form('my_form');
add a date control to the form
$mydate = $form->add('date', 'my_date', date('Y-m-d'));
you *have* to set the "date" rule
$mydate->set_rule(array(
'date' => array('error', 'Invalid date specified!'),
));
set the date's format
$mydate->format('M d, Y');
don't forget to always call this method before rendering the form
if ($form->validate()) {
get the date in YYYY-MM-DD format so you can play with is easily
$date = $mydate->get_date();
}
output the form using an automatically generated template
$form->render();
public __construct ( string $id, string $default = '', array $attributes = '' ) : void | ||
$id | string | Unique name to identify the control in the form.
The control's name attribute will be the same as the id attribute!
This is the name to be used when referring to the control's value in the
POST/GET superglobals, after the form is submitted.
This is also the name of the variable to be used in custom template files, in
order to display the control.
// in a template file, in order to print the generated HTML
// for a control named "my_date", one would use:
echo $my_date;
@param string $default (Optional) Default date, formatted according to {@link format() format}.
@param array $attributes (Optional) An array of attributes valid for
{@link http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.4 input}
controls (size, readonly, style, etc)
Must be specified as an associative array, in the form of attribute => value.
// setting the "readonly" attribute
$obj = $form->add(
'date',
'my_date',
'',
array(
'readonly' => 'readonly'
)
);
See {@link Zebra_Form_Control::set_attributes() set_attributes()} on how to set
attributes, other than through the constructor.
The following attributes are automatically set when the control is created and
should not be altered manually:type, id, name, value, class @return void |
$default | string | |
$attributes | array | |
return | void |
public _is_format_valid ( $date ) : mixed | ||
return | mixed |
$date = $form->add('date', 'my_date');
an element having the ID "container"
will be the date picker's container
$date->always_visible('$("#container")');
public always_visible ( string $element ) : void | ||
$element | string | A jQuery selector pointing to an existing element from the page to be used as the date picker's container. @return void |
return | void |
$date = $form->add('date', 'my_date');
the date picker will open inside this element
$date->container('$("#container")');
$date = $form->add('date', 'my_date');
apply "myclass1" custom class to the first day, of every month, of every year
$date->custom_classes(array(
'myclass1' => array('01 * *'),
));
public custom_classes ( array $custom_classes ) : void | ||
$custom_classes | array | An array in the form of
array(
'myclass1': array(dates_to_apply_myclass1_to),
'myclass2': array(dates_to_apply_myclass2_to),
)
...where "dates_to_apply_myclassx_to" is an array of dates in the same format as
required for {@link disabled_dates} property.
Custom classes will be applied only in the day picker view and not on
month/year views! Also note that the class name will have the “_disabled” suffix
added if the day the class is applied to is disabled.
In order for the styles in your custom classes to be applied, make sure you are
using the following syntax:
.Zebra_DatePicker .dp_daypicker td.myclass1 { .. }
.Zebra_DatePicker .dp_daypicker td.myclass1_disabled { .. }
Default is FALSE, no custom classes
@since 2.9.8
@return void |
return | void |
$date = $form->add('date', 'my_date');
the date picker will open *below* the element is attached to
$date->default_position('below');
public default_position ( string $position ) : void | ||
$position | string | The position of the date picker relative to the element it is attached to. Possible values are "above" and "below". Default is "above" @since 2.9.8 @return void |
return | void |
$obj = $form->add('date', 'mydate')
calendar starts tomorrow and seven days after that are selectable
$obj->direction(array(1, 7));
calendar starts today and seven days after that are selectable
$obj->direction(array(true, 7));
calendar starts on January 1st 2013 and has no ending date
(assuming "format" is YYYY-MM-DD)
$obj->direction(array('2013-01-01', false));
calendar ends today and starts on January 1st 2012
assuming "format" is YYYY-MM-DD)
$obj->direction(array(false, '2012-01-01'));
public direction ( mixed $direction ) : void | ||
$direction | mixed | A positive or negative integer: - n (a positive integer) creates a future-only calendar beginning at n days after today; - -n (a negative integer) creates a past-only calendar ending at n days before today; - if n is 0, the calendar has no restrictions. Use boolean TRUE for a future-only calendar starting with today and use boolean FALSE for a past-only calendar ending today. You may also set this property to an array with two elements in the following combinations: - first item is boolean TRUE (calendar starts today), an integer > 0 (calendar starts n days after today), or a valid date given in the format defined by the "format" attribute (calendar starts at the specified date), and the second item is boolean FALSE (the calendar has no ending date), an integer > 0 (calendar ends n days after the starting date), or a valid date given in the format defined by the "format" attribute and which occurs after the starting date (calendar ends at the specified date) - first item is boolean FALSE (calendar ends today), an integer < 0 (calendar ends n days before today), or a valid date given in the format defined by the "format" attribute (calendar ends at the specified date), and the second item is an integer > 0 (calendar ends n days before the ending date), or a valid date given in the format defined by the "format" attribute and which occurs before the starting date (calendar starts at the specified date) Note that {@link disabled_dates()} will still apply! Default is 0 (no restrictions). @return void |
return | void |
public disable_zebra_datepicker ( ) : void | ||
return | void |
$obj = $form->add('date', 'mydate')
disable January 1, 2012
$obj->disabled_dates(array('1 1 2012'));
disable all days in January 2012
$obj->disabled_dates(array('* 1 2012'));
disable January 1 through 10 in 2012
$obj->disabled_dates(array('1-10 1 2012'));
disable January 1 and 10 in 2012
$obj->disabled_dates(array('1,10 1 2012'));
disable 1 through 10, and then 20th, 22nd and 24th
of January through March for every year
$obj->disabled_dates(array('1-10,20,22,24 1-3 *'));
disable all Saturdays and Sundays
$obj->disabled_dates(array('* * * 0,6'));
disable 1st and 2nd of July 2012,
and all of August of 2012;
$obj->disabled_dates(array('01 07 2012', '02 07 2012', '* 08 2012'));
public disabled_dates ( array $disabled_dates ) : void | ||
$disabled_dates | array | An array of strings representing disabled dates. Values in the string have to be in the following format: "day month year weekday" where "weekday" is optional and can be 0-6 (Saturday to Sunday); The syntax is similar to cron's syntax: the values are separated by spaces and may contain * (asterisk) - (dash) and , (comma) delimiters. Default is FALSE, no disabled dates. @return void |
return | void |
public enabled_dates ( array $enabled_dates ) : void | ||
$enabled_dates | array | |
return | void |
public first_day_of_week ( integer $day ) : void | ||
$day | integer | |
return | void |
$date = $form->add('date', 'my_date');
position the date picker's icon to the left
$date->icon_position('left');
public icon_position ( string $position ) : void | ||
$position | string | The position of the date picker's inside the element it is attached to. Possible values are "left" and "right". Default is "right" @since 2.9.8 @return void |
return | void |
public open_icon_only ( array $value ) : void | ||
$value | array | |
return | void |
let's assume this will be the starting date
$date1 = $form->add('date', 'starting_date');
dates are selectable in the future, starting with today
$date1->direction(true);
indicate another date element that will use this
element's value as starting date
$date1->pair('ending_date');
the other date element
$date2 = $form->add('date', 'ending_date');
start one day after the reference date
(that is, one day after whaterver is selected in the first element)
$date2->direction(1);
public pair ( string $value ) : void | ||
$value | string | The ID of another "date" element which will use the current date element's value as starting date. Note that the rules set in the "direction" property will still apply, only that the reference date will not be the current system date but the value selected in the current date picker. Default is FALSE (not paired with another date picker) @return void |
return | void |
public readonly_element ( boolean $value ) : void | ||
$value | boolean | |
return | void |
public select_other_months ( string $value ) : void | ||
$value | string | |
return | void |
public show_clear_date ( string $value ) : void | ||
$value | string | |
return | void |
$date = $form->add('date', 'my_date');
do not show the icon
$date->show_icon(false);
public show_other_months ( string $value = true ) : void | ||
$value | string | |
return | void |
public show_select_today ( string $value = 'Today' ) : void | ||
$value | string | |
return | void |
public show_week_number ( string $value ) : void | ||
$value | string | |
return | void |
public start_date ( date $value ) : void | ||
$value | date | |
return | void |
public weekend_days ( array $days ) : void | ||
$days | array | |
return | void |