sections, $parent->args ); $this->parent = $parent; $this->field = $field; $this->value = $value; } /** * Field Render Function. * * Takes the vars and outputs the HTML for the field in the settings * * @since ReduxFramework 1.0.0 */ function render(){ $sortable = (isset($this->field['sortable']) && $this->field['sortable']) ? ' select2-sortable"' : ""; if (!empty($sortable)) { // Dummy proofing :P $this->field['multi'] = true; } if( !empty( $this->field['data'] ) && empty( $this->field['options'] ) ) { if (empty($this->field['args'])) { $this->field['args'] = array(); } if ($this->field['data'] == "elusive-icons" || $this->field['data'] == "elusive-icon" || $this->field['data'] == "elusive" ) { $icons_file = ReduxFramework::$_dir.'inc/fields/select/elusive-icons.php'; /** * filter 'redux-font-icons-file}' * @param array $icon_file File for the icons */ $icons_file = apply_filters('redux-font-icons-file',$icons_file); /** * filter 'redux/{opt_name}/field/font/icons/file' * @param array $icon_file File for the icons */ $icons_file = apply_filters("redux/{$this->parent->args['opt_name']}/field/font/icons/file",$icons_file); if( file_exists( $icons_file ) ) { require_once( $icons_file ); } } $this->field['options'] = $this->get_wordpress_data($this->field['data'], $this->field['args']); } if ( !empty($this->field['data']) && ( $this->field['data'] == "elusive-icons" || $this->field['data'] == "elusive-icon" || $this->field['data'] == "elusive" ) ) { $this->field['class'] = " font-icons"; }//if if (!empty($this->field['options'])) { $multi = (isset($this->field['multi']) && $this->field['multi']) ? ' multiple="multiple"' : ""; if (!empty($this->field['width'])) { $width = ' style="'.$this->field['width'].'"'; } else { $width = ' style="width: 40%;"'; } $nameBrackets = ""; if (!empty($multi)) { $nameBrackets = "[]"; } $placeholder = (isset($this->field['placeholder'])) ? esc_attr($this->field['placeholder']) : __( 'Select an item', 'redux-framework' ); if ( isset($this->field['select2']) ) { // if there are any let's pass them to js $select2_params = json_encode($this->field['select2']); $select2_params = htmlspecialchars( $select2_params , ENT_QUOTES); echo ''; } if (isset($this->field['multi']) && $this->field['multi'] && isset($this->field['sortable']) && $this->field['sortable'] && !empty($this->value) && is_array($this->value)) { $origOption = $this->field['options']; $this->field['options'] = array(); foreach($this->value as $value) { $this->field['options'][$value] = $origOption[$value]; } if (count($this->field['options'])< count($origOption)) { foreach ($origOption as $key=>$value) { if (!in_array($key, $this->field['options'])) { $this->field['options'][$key] = $value; } } } } $sortable = (isset($this->field['sortable']) && $this->field['sortable']) ? ' select2-sortable"' : ""; echo ''; } else { echo ''.__('No items of this type were found.', 'redux-framework').''; } }//function /** * Enqueue Function. * * If this field requires any scripts, or css define this function and register/enqueue the scripts/css * * @since ReduxFramework 1.0.0 */ function enqueue(){ wp_enqueue_script( 'field-select-js', ReduxFramework::$_url.'inc/fields/select/field_select.js', array('jquery', 'select2-js'), time(), true ); wp_enqueue_style( 'redux-field-select-css', ReduxFramework::$_url.'inc/fields/select/field_select.css', time(), true ); }//function }//class