first commit
This commit is contained in:
+140
@@ -0,0 +1,140 @@
|
||||
<?php
|
||||
/**
|
||||
* Datetime control class. This class is meant for storing a datetime in the format
|
||||
* of `YYYY-MM-DD HH:MM:SS` or `0000-00-00 00:00:00`. You can set the `$show_time`
|
||||
* property to `false`.
|
||||
*
|
||||
* Note that this control should be used in conjunction with the `datetime` setting
|
||||
* type or another custom class that can handle the datetime.
|
||||
*
|
||||
* @package ButterBean
|
||||
* @subpackage Admin
|
||||
* @author Justin Tadlock <justin@justintadlock.com>
|
||||
* @copyright Copyright (c) 2015-2016, Justin Tadlock
|
||||
* @link https://github.com/justintadlock/butterbean
|
||||
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
/**
|
||||
* Datetime control class.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access public
|
||||
*/
|
||||
class ButterBean_Control_Datetime extends ButterBean_Control {
|
||||
|
||||
/**
|
||||
* The type of control.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access public
|
||||
* @var string
|
||||
*/
|
||||
public $type = 'datetime';
|
||||
|
||||
/**
|
||||
* Whether to show the time. Note that settings, particularly the
|
||||
* `ButterBean_Setting_Date` class will store the time as `00:00:00` if
|
||||
* no time is provided.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access public
|
||||
* @var bool
|
||||
*/
|
||||
public $show_time = true;
|
||||
|
||||
/**
|
||||
* Adds custom data to the json array. This data is passed to the Underscore template.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access public
|
||||
* @globl object $wp_locale
|
||||
* @return void
|
||||
*/
|
||||
public function to_json() {
|
||||
global $wp_locale;
|
||||
|
||||
parent::to_json();
|
||||
|
||||
$this->json['show_time'] = $this->show_time;
|
||||
|
||||
$field_name = $this->get_field_name();
|
||||
|
||||
// Get project start/end dates.
|
||||
$date = $this->get_value();
|
||||
|
||||
// Get the year, month, and day.
|
||||
$year = $date ? mysql2date( 'Y', $date, false ) : '';
|
||||
$month = $date ? mysql2date( 'm', $date, false ) : '';
|
||||
$day = $date ? mysql2date( 'd', $date, false ) : '';
|
||||
|
||||
// Get the hour, minute, and second.
|
||||
$hour = $date ? mysql2date( 'H', $date, false ) : '';
|
||||
$minute = $date ? mysql2date( 'i', $date, false ) : '';
|
||||
$second = $date ? mysql2date( 's', $date, false ) : '';
|
||||
|
||||
// Year
|
||||
$this->json['year'] = array(
|
||||
'value' => esc_attr( $year ),
|
||||
'label' => esc_html__( 'Year', 'butterbean' ),
|
||||
'name' => esc_attr( "{$field_name}_year" ),
|
||||
'attr' => sprintf( 'placeholder="%s" size="4" maxlength="4" autocomplete="off"', esc_attr( date_i18n( 'Y' ) ) )
|
||||
);
|
||||
|
||||
// Month
|
||||
$this->json['month'] = array(
|
||||
'value' => esc_attr( $month ),
|
||||
'name' => esc_attr( "{$field_name}_month" ),
|
||||
'label' => esc_html__( 'Month', 'butterbean' ),
|
||||
'choices' => array(
|
||||
array(
|
||||
'num' => '',
|
||||
'label' => ''
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
for ( $i = 1; $i < 13; $i = $i +1 ) {
|
||||
|
||||
$monthnum = zeroise( $i, 2 );
|
||||
$monthtext = $wp_locale->get_month_abbrev( $wp_locale->get_month( $i ) );
|
||||
|
||||
$this->json['month']['choices'][] = array(
|
||||
'num' => $monthnum,
|
||||
'label' => $monthtext
|
||||
);
|
||||
}
|
||||
|
||||
// Day
|
||||
$this->json['day'] = array(
|
||||
'value' => esc_attr( $day ),
|
||||
'name' => esc_attr( "{$field_name}_day" ),
|
||||
'label' => esc_html__( 'Day', 'butterbean' ),
|
||||
'attr' => sprintf( 'placeholder="%s" size="2" maxlength="2" autocomplete="off"', esc_attr( date_i18n( 'd' ) ) )
|
||||
);
|
||||
|
||||
// Hour
|
||||
$this->json['hour'] = array(
|
||||
'value' => esc_attr( $hour ),
|
||||
'name' => esc_attr( "{$field_name}_hour" ),
|
||||
'label' => esc_html__( 'Hour', 'butterbean' ),
|
||||
'attr' => 'placeholder="00" size="2" maxlength="2" autocomplete="off"'
|
||||
);
|
||||
|
||||
// Minute
|
||||
$this->json['minute'] = array(
|
||||
'value' => esc_attr( $minute ),
|
||||
'name' => esc_attr( "{$field_name}_minute" ),
|
||||
'label' => esc_html__( 'Minute', 'butterbean' ),
|
||||
'attr' => 'placeholder="00" size="2" maxlength="2" autocomplete="off"'
|
||||
);
|
||||
|
||||
// Second
|
||||
$this->json['second'] = array(
|
||||
'value' => esc_attr( $second ),
|
||||
'name' => esc_attr( "{$field_name}_second" ),
|
||||
'label' => esc_html__( 'Second', 'butterbean' ),
|
||||
'attr' => 'placeholder="00" size="2" maxlength="2" autocomplete="off"'
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user