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->parent->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' . Redux_Functions::isMin() . '.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 }