| @@ 8-44 (lines=37) @@ | ||
| 5 | /** |
|
| 6 | * Select dropdown field class wtih multiple selection enabled. |
|
| 7 | */ |
|
| 8 | class Multiselect_Field extends Predefined_Options_Field { |
|
| 9 | /** |
|
| 10 | * Returns an array that holds the field data, suitable for JSON representation. |
|
| 11 | * This data will be available in the Underscore template and the Backbone Model. |
|
| 12 | * |
|
| 13 | * @param bool $load Should the value be loaded from the database or use the value from the current instance. |
|
| 14 | * @return array |
|
| 15 | */ |
|
| 16 | public function to_json( $load ) { |
|
| 17 | $field_data = parent::to_json( $load ); |
|
| 18 | $this->load_options(); |
|
| 19 | ||
| 20 | $field_data = array_merge( $field_data, array( |
|
| 21 | 'options' => $this->parse_options( $this->options ), |
|
| 22 | ) ); |
|
| 23 | return $field_data; |
|
| 24 | } |
|
| 25 | ||
| 26 | /** |
|
| 27 | * The main Underscore template of this field. |
|
| 28 | */ |
|
| 29 | public function template() { |
|
| 30 | ?> |
|
| 31 | <# if (_.isEmpty(options)) { #> |
|
| 32 | <em><?php _e( 'no options', 'carbon_fields' ); ?></em> |
|
| 33 | <# } else { #> |
|
| 34 | <select id="{{{ id }}}" name="{{{ name }}}[]" multiple {{{ special_attrs }}}> |
|
| 35 | <# _.each(options, function(option) { #> |
|
| 36 | <option value="{{ option.value }}" {{{ value && ( value.indexOf(option.value) != -1 ) ? 'selected="selected"' : '' }}}> |
|
| 37 | {{{ option.name }}} |
|
| 38 | </option> |
|
| 39 | <# }) #> |
|
| 40 | </select> |
|
| 41 | <# } #> |
|
| 42 | <?php |
|
| 43 | } |
|
| 44 | } |
|
| 45 | ||
| @@ 8-45 (lines=38) @@ | ||
| 5 | /** |
|
| 6 | * Select dropdown field class. |
|
| 7 | */ |
|
| 8 | class Select_Field extends Predefined_Options_Field { |
|
| 9 | /** |
|
| 10 | * Returns an array that holds the field data, suitable for JSON representation. |
|
| 11 | * This data will be available in the Underscore template and the Backbone Model. |
|
| 12 | * |
|
| 13 | * @param bool $load Should the value be loaded from the database or use the value from the current instance. |
|
| 14 | * @return array |
|
| 15 | */ |
|
| 16 | public function to_json( $load ) { |
|
| 17 | $field_data = parent::to_json( $load ); |
|
| 18 | $this->load_options(); |
|
| 19 | ||
| 20 | $field_data = array_merge( $field_data, array( |
|
| 21 | 'options' => $this->parse_options( $this->options ), |
|
| 22 | ) ); |
|
| 23 | ||
| 24 | return $field_data; |
|
| 25 | } |
|
| 26 | ||
| 27 | /** |
|
| 28 | * The main Underscore template of this field. |
|
| 29 | */ |
|
| 30 | public function template() { |
|
| 31 | ?> |
|
| 32 | <# if (_.isEmpty(options)) { #> |
|
| 33 | <em><?php _e( 'no options', 'carbon_fields' ); ?></em> |
|
| 34 | <# } else { #> |
|
| 35 | <select id="{{{ id }}}" name="{{{ name }}}" {{{ special_attrs }}} {{{ special_attrs }}} > |
|
| 36 | <# _.each(options, function(option) { #> |
|
| 37 | <option value="{{ option.value }}" {{{ option.value == value ? 'selected="selected"' : '' }}}> |
|
| 38 | {{{ option.name }}} |
|
| 39 | </option> |
|
| 40 | <# }) #> |
|
| 41 | </select> |
|
| 42 | <# } #> |
|
| 43 | <?php |
|
| 44 | } |
|
| 45 | } |
|
| 46 | ||