name = 'select'; $this->label = __("Select",'acf'); $this->category = __("Choice",'acf'); $this->defaults = array( 'multiple' => 0, 'allow_null' => 0, 'choices' => array(), 'default_value' => '' ); // do not delete! parent::__construct(); // extra //add_filter('acf/update_field/type=select', array($this, 'update_field'), 5, 2); add_filter('acf/update_field/type=checkbox', array($this, 'update_field'), 5, 2); add_filter('acf/update_field/type=radio', array($this, 'update_field'), 5, 2); } /* * create_field() * * Create the HTML interface for your field * * @param $field - an array holding all the field's data * * @type action * @since 3.6 * @date 23/01/13 */ function create_field( $field ) { // vars $optgroup = false; // determine if choices are grouped (2 levels of array) if( is_array($field['choices']) ) { foreach( $field['choices'] as $k => $v ) { if( is_array($v) ) { $optgroup = true; } } } // value must be array if( !is_array($field['value']) ) { // perhaps this is a default value with new lines in it? if( strpos($field['value'], "\n") !== false ) { // found multiple lines, explode it $field['value'] = explode("\n", $field['value']); } else { $field['value'] = array( $field['value'] ); } } // trim value $field['value'] = array_map('trim', $field['value']); // multiple select $multiple = ''; if( $field['multiple'] ) { // create a hidden field to allow for no selections echo ''; $multiple = ' multiple="multiple" size="5" '; $field['name'] .= '[]'; } // html echo ''; } /* * create_options() * * Create extra options for your field. This is rendered when editing a field. * The value of $field['name'] can be used (like bellow) 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 ) { $key = $field['name']; // implode choices so they work in a textarea if( is_array($field['choices']) ) { foreach( $field['choices'] as $k => $v ) { $field['choices'][ $k ] = $k . ' : ' . $v; } $field['choices'] = implode("\n", $field['choices']); } ?>