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->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.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