name = 'dynamic_year_select'; $this->label = __('Dynamic Year', 'acf-dynamic_year_select'); $this->category = __('Choice', 'acf-dynamic_year_select'); $this->defaults = array( 'oldest_year_method' => 'relative', 'oldest_year_exact_year' => date('Y'), 'oldest_year_relative_year' => 20, 'oldest_year_relative_year_direction' => 'before', 'newest_year_method' => 'exact', 'newest_year_exact_year' => date('Y'), 'newest_year_relative_year' => 20, 'newest_year_relative_year_direction' => 'after', 'year_step' => 1, 'order_by' => 'chronological', 'current_year_allow' => false, 'current_year_label' => 'Current' ); // do not delete! parent::__construct(); // settings $this->settings = array( 'path' => apply_filters('acf/helpers/get_path', __FILE__), 'dir' => apply_filters('acf/helpers/get_dir', __FILE__), 'version' => '1.0.0' ); } /* * create_options() * * Create extra options for your field. This is rendered when editing a field. * The value of $field['name'] can be used (like below) to save extra data to the $field * * @type action * @since 3.6 * @date 23/01/13 * * @param $field - an array holding all the field's data */ function create_options( $field ) { // defaults? $field = array_merge($this->defaults, $field); // key is needed in the field names to correctly save the data $key = $field['name']; // Create Field Options HTML ?>

'number', 'name' => 'fields['.$key.'][year_step]', 'class' => 'year_step', 'value' => $field['year_step'], 'min' => 1, )); ?>

'select', 'name' => 'fields['.$key.'][order_by]', 'class' => 'order_by', 'value' => $field['order_by'], 'choices' => array( 'chronological' => __('Chronological','acf-dynamic_year_select'), 'rchronological' => __('Reverse Chronological','acf-dynamic_year_select') ), )); ?>

defaults, $field); */ // perhaps use $field['preview_size'] to alter the markup? // create Field HTML /* * Create a simple text input using the 'font_size' setting. */ // vars $atts = array( 'id' => $field['id'], 'class' => $field['class'], 'name' => $field['name'], ); echo ''; } /* * walk * * Walk through each choice and create HTML for options * * @type function * @date 14/02/2016 * @since 1.0.0 * * @param $post_id (int) * @return $post_id (int) */ function walk( $choices, $value ) { // bail early if no choices if( empty($choices) ) return; // loop foreach( $choices as $k => $v ) { $atts = array( 'value' => $k ); // set selected value if( $value == $v ) { $atts['selected'] = 'selected'; } // option echo ''; } } /* * acf_esc_attr * * This function will return a render of an array of attributes to be used in markup * * @type function * @date 1/10/13 * @since 5.0.0 * * @param $atts (array) * @return n/a */ function acf_esc_attr( $atts ) { // is string? if( is_string($atts) ) { $atts = trim( $atts ); return esc_attr( $atts ); } // validate if( empty($atts) ) { return ''; } // vars $e = array(); // loop through and render foreach( $atts as $k => $v ) { // object if( is_array($v) || is_object($v) ) { $v = json_encode($v); // boolean } elseif( is_bool($v) ) { $v = $v ? 1 : 0; // string } elseif( is_string($v) ) { $v = trim($v); } // append $e[] = $k . '="' . esc_attr( $v ) . '"'; } // echo return implode(' ', $e); } /* * input_admin_enqueue_scripts() * * This action is called in the admin_enqueue_scripts action on the edit screen where your field is created. * Use this action to add CSS + JavaScript to assist your create_field() action. * * $info http://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts * @type action * @since 3.6 * @date 23/01/13 */ function input_admin_enqueue_scripts() { } /* * input_admin_head() * * This action is called in the admin_head action on the edit screen where your field is created. * Use this action to add CSS and JavaScript to assist your create_field() action. * * @info http://codex.wordpress.org/Plugin_API/Action_Reference/admin_head * @type action * @since 3.6 * @date 23/01/13 */ function input_admin_head() { // Note: This function can be removed if not used } /* * field_group_admin_enqueue_scripts() * * This action is called in the admin_enqueue_scripts action on the edit screen where your field is edited. * Use this action to add CSS + JavaScript to assist your create_field_options() action. * * $info http://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts * @type action * @since 3.6 * @date 23/01/13 */ function field_group_admin_enqueue_scripts() { wp_register_script( 'acf-input-dynamic_year_select_admin', $this->settings['dir'] . 'js/admin.js', array(), $this->settings['version'] ); wp_register_style( 'acf-input-dynamic_year_select_admin', $this->settings['dir'] . 'css/admin.css', array(), $this->settings['version'] ); // scripts wp_enqueue_script(array('acf-input-dynamic_year_select_admin')); // styles wp_enqueue_style(array('acf-input-dynamic_year_select_admin')); } /* * field_group_admin_head() * * This action is called in the admin_head action on the edit screen where your field is edited. * Use this action to add CSS and JavaScript to assist your create_field_options() action. * * @info http://codex.wordpress.org/Plugin_API/Action_Reference/admin_head * @type action * @since 3.6 * @date 23/01/13 */ function field_group_admin_head() { // Note: This function can be removed if not used } /* * load_value() * * This filter is applied to the $value after it is loaded from the db * * @type filter * @since 3.6 * @date 23/01/13 * * @param $value - the value found in the database * @param $post_id - the $post_id from which the value was loaded * @param $field - the field array holding all the field options * * @return $value - the value to be saved in the database */ function load_value( $value, $post_id, $field ) { // Note: This function can be removed if not used return $value; } /* * update_value() * * This filter is applied to the $value before it is updated in the db * * @type filter * @since 3.6 * @date 23/01/13 * * @param $value - the value which will be saved in the database * @param $post_id - the $post_id of which the value will be saved * @param $field - the field array holding all the field options * * @return $value - the modified value */ function update_value( $value, $post_id, $field ) { // Note: This function can be removed if not used return $value; } /* * format_value() * * This filter is applied to the $value after it is loaded from the db and before it is passed to the create_field action * * @type filter * @since 3.6 * @date 23/01/13 * * @param $value - the value which was loaded from the database * @param $post_id - the $post_id from which the value was loaded * @param $field - the field array holding all the field options * * @return $value - the modified value */ function format_value( $value, $post_id, $field ) { // show current label if value is current if( $value == 'current' ) { $value = $field['current_year_label']; } return $value; } /* * format_value_for_api() * * This filter is applied to the $value after it is loaded from the db and before it is passed back to the API functions such as the_field * * @type filter * @since 3.6 * @date 23/01/13 * * @param $value - the value which was loaded from the database * @param $post_id - the $post_id from which the value was loaded * @param $field - the field array holding all the field options * * @return $value - the modified value */ function format_value_for_api( $value, $post_id, $field ) { // defaults? /* $field = array_merge($this->defaults, $field); */ // perhaps use $field['preview_size'] to alter the $value? // Note: This function can be removed if not used return $value; } /* * load_field() * * This filter is applied to the $field after it is loaded from the database * * @type filter * @since 3.6 * @date 23/01/13 * * @param $field - the field array holding all the field options * * @return $field - the field array holding all the field options */ function load_field( $field ) { // Note: This function can be removed if not used return $field; } /* * update_field() * * This filter is applied to the $field before it is saved to the database * * @type filter * @since 3.6 * @date 23/01/13 * * @param $field - the field array holding all the field options * @param $post_id - the field group ID (post_type = acf) * * @return $field - the modified field */ function update_field( $field, $post_id ) { // Note: This function can be removed if not used return $field; } } // create field new acf_field_dynamic_year_select(); endif; ?>