name = 'date_time_picker'; $this->title = __( 'Date and Time Picker' ); $this->domain = 'acf-date_time_picker'; $this->defaults = array( 'value' => '' , 'label' => __( 'Choose Time', $this->domain ) , 'time_format' => 'hh:mm' , 'show_date' => true , 'date_format' => 'mm/dd/yy' , 'show_week_number' => false , 'picker' => 'slider' ); $this->settings = array( 'path' => plugin_dir_path( __FILE__) , 'dir' => plugin_dir_url( __FILE__) , 'version' => '2.0.0.beta' ); } /*-------------------------------------------------------------------------------------- * * create_options * - this function is called from core/field_meta_box.php to create extra options * for your field * * @params * - $key (int) - the $_POST obejct key required to save the options to the field * - $field (array) - the field object * * @author Elliot Condon * @since 2.2.0 * *-------------------------------------------------------------------------------------*/ function create_options( $key, $field ) { $field = array_merge( $this->defaults, $field ); ?> parent->create_field( array( 'type' => 'radio' , 'name' => 'fields['.$key.'][show_date]' , 'value' => $field['show_date'] , 'layout' => 'horizontal' , 'choices' => array( 'true' => __( 'Date and Time Picker', $this->domain ) , 'false' => __( 'Time Picker', $this->domain ) ) ) ); ?>

domain ); ?> formatDate

parent->create_field( array( 'type' => 'text' , 'name' => 'fields[' . $key . '][date_format]' , 'value' => $field['date_format'] ) ); ?>

formatting time", $this->domain ), "http://trentrichardson.com/examples/timepicker/#tp-formatting" );?>

parent->create_field( array( 'type' => 'text' , 'name' => 'fields[' . $key . '][time_format]' , 'value' => $field['time_format'] ) ); ?> parent->create_field( array( 'type' => 'radio' , 'name' => 'fields['.$key.'][show_week_number]' , 'value' => $field['show_week_number'] , 'layout' => 'horizontal' , 'choices' => array( 'true' => __( 'Yes', $this->domain ) , 'false' => __( 'No', $this->domain ) ) ) ); ?> parent->create_field( array( 'type' => 'radio' , 'name' => 'fields['.$key.'][picker]' , 'value' => $field['picker'] , 'layout' => 'horizontal' , 'choices' => array( 'slider' => __( 'Slider', $this->domain ) , 'select' => __( 'Dropdown', $this->domain ) ) ) ); ?> defaults, $field ); extract( $field, EXTR_SKIP ); //Declare each item in $field as its own variable i.e.: $name, $value, $label, $time_format, $date_format and $show_week_number if ( $show_date != 'true' ) { echo ''; } else { echo ''; } } /*-------------------------------------------------------------------------------------- * * admin_print_scripts / admin_print_styles * - this function is called in the admin_print_scripts / admin_print_styles where * your field is created. Use this function to register css and javascript to assist * your create_field() function. * * @author Elliot Condon * @since 3.0.0 * *-------------------------------------------------------------------------------------*/ function admin_print_scripts() { global $wp_locale; $has_locale = false; $js_locale = $this->get_js_locale(get_locale()); wp_enqueue_script( 'jquery-ui-timepicker', $this->settings['dir'] . 'js/jquery-ui-timepicker-addon.js', array( 'jquery-ui-datepicker', 'jquery-ui-slider' ), $this->settings['version'], true ); if ( file_exists( dirname( __FILE__ ) . '/js/localization/jquery-ui-timepicker-' . $js_locale . '.js' ) ) { wp_enqueue_script( 'timepicker-localization', $this->settings['dir'] . 'js/localization/jquery-ui-timepicker-' . $js_locale . '.js', array( 'jquery-ui-timepicker' ), $this->settings['version'], true ); wp_enqueue_script( 'timepicker', $this->settings['dir'] . 'js/timepicker.js', array( 'timepicker-localization' ), $this->settings['version'], true ); $has_locale = true; } else { wp_enqueue_script( 'timepicker', $this->settings['dir'] . 'js/timepicker.js', array( 'jquery-ui-timepicker' ), $this->settings['version'], true ); } if ( ! $has_locale && $js_locale != 'en' ) { $timepicker_locale = array( 'closeText' => __( 'Done', $this->domain ) , 'currentText' => __( 'Today', $this->domain ) , 'prevText' => __( 'Prev', $this->domain ) , 'nextText' => __( 'Next', $this->domain ) , 'monthStatus' => __( 'Show a different month', $this->domain ) , 'weekHeader' => __( 'Wk', $this->domain ) , 'timeText' => __( "Time", $this->domain ) , 'hourText' => __( "Hour", $this->domain ) , 'minuteText' => __( "Minute", $this->domain ) , 'secondText' => __( "Second", $this->domain ) , 'millisecText' => __( "Millisecond", $this->domain ) , 'timezoneText' => __( "Time Zone", $this->domain ) , 'isRTL' => $wp_locale->is_rtl() ); } $timepicker_wp_locale = array( 'monthNames' => $this->strip_array_indices( $wp_locale->month ) , 'monthNamesShort' => $this->strip_array_indices( $wp_locale->month_abbrev ) , 'dayNames' => $this->strip_array_indices( $wp_locale->weekday ) , 'dayNamesShort' => $this->strip_array_indices( $wp_locale->weekday_abbrev ) , 'dayNamesMin' => $this->strip_array_indices( $wp_locale->weekday_initial ) , 'showMonthAfterYear' => false , 'showWeek' => false , 'firstDay' => get_option( 'start_of_week' ) ); $l10n = ( isset( $timepicker_locale ) ) ? array_merge( $timepicker_wp_locale, $timepicker_locale ) : $timepicker_wp_locale; wp_localize_script( 'timepicker', 'timepicker_objectL10n', $l10n ); } /** * helper function, see: http://www.renegadetechconsulting.com/tutorials/jquery-datepicker-and-wordpress-i18n * @param array $ArrayToStrip * @return array */ function strip_array_indices( $ArrayToStrip ) { foreach ( $ArrayToStrip as $objArrayItem ) { $NewArray[] = $objArrayItem; } return $NewArray; } function get_js_locale($locale) { $tmp_locale = ( '' == $locale ) ? 'en' : strtolower($locale); if (strpos($tmp_locale,'_') !== false) { return substr( $tmp_locale, 3, 2 ); } else { return $tmp_locale; } } function admin_print_styles() { wp_enqueue_style( 'jquery-style', $this->settings['dir'] . 'css/jquery-ui.css' ); wp_enqueue_style( 'timepicker', $this->settings['dir'] . 'css/jquery-ui-timepicker-addon.css', array( 'jquery-style' ), $this->settings['version'] ); } }