function _get_simple_input($var, $options, $override_value) { if (empty($options['type'])) { return "<!-- _get_simple_input called without a type option set. -->\n"; } $scrublist['textarea']['value'] = true; $scrublist['file']['value'] = true; $scrublist['dropdown']['value'] = true; $scrublist['dropdown']['type'] = true; $defaults = array(); if (isset($this->_args['widget_instance']) && @method_exists($this->_args['widget_instance'], 'get_field_name')) { $defaults['name'] = $this->_args['widget_instance']->get_field_name($var); } else { if (empty($this->_args['prefix'])) { $defaults['name'] = $var; } else { $defaults['name'] = "{$this->_args['prefix']}-{$var}"; } } $input_group_name = $defaults['name']; $var = str_replace('[]', '', $var); $clean_var = trim(preg_replace('/[^a-z0-9_]+/i', '-', $var), '-'); if (!empty($this->_input_group)) { if (false === strpos($defaults['name'], '[')) { $defaults['name'] = "[{$defaults['name']}]"; } else { $defaults['name'] = preg_replace('/^([^\\[]+)\\[/', '[$1][', $defaults['name']); } $input_group_name = $defaults['name']; $defaults['name'] = "{$this->_input_group}{$defaults['name']}"; $clean_var = trim(preg_replace('/[^a-z0-9_]+/i', '-', $defaults['name']), '-'); } if (isset($this->_args['widget_instance']) && @method_exists($this->_args['widget_instance'], 'get_field_id')) { $defaults['id'] = $this->_args['widget_instance']->get_field_id($var); } else { $defaults['id'] = $clean_var; } if (!empty($options['append_val_to_id']) && true === $options['append_val_to_id'] && !empty($options['value'])) { unset($options['append_val_to_id']); $defaults['id'] .= '-' . trim(preg_replace('/[^a-z0-9_]+/i', '-', $options['value']), '-'); } $options = ITUtility::merge_defaults($options, $defaults); if (false === $override_value && isset($this->_options[$var])) { if (in_array($options['type'], array('checkbox', 'radio'))) { if (is_array($this->_options[$var]) && in_array($options['value'], $this->_options[$var]) || !is_array($this->_options[$var]) && (string) $this->_options[$var] === (string) $options['value']) { $options['checked'] = 'checked'; } } else { if ('dropdown' !== $options['type']) { $options['value'] = $this->_options[$var]; } } } if (!empty($this->_args['prefix']) && preg_match("|^{$this->_args['prefix']}-|", $options['name']) || empty($this->_args['prefix'])) { if (!isset($this->_used_inputs[$this->_input_group]) || !in_array($input_group_name, $this->_used_inputs[$this->_input_group])) { $this->_used_inputs[$this->_input_group][] = $input_group_name; } } $attributes = ''; if (false !== $options) { foreach ((array) $options as $name => $val) { if (!is_array($val) && (!isset($scrublist[$options['type']][$name]) || true !== $scrublist[$options['type']][$name])) { if ('value' == $name) { $val = ITForm::esc_value_attr($val); } else { if (!in_array($options['type'], array('submit', 'button'))) { $val = esc_attr($val); } } $attributes .= "{$name}=\"{$val}\" "; } } } $retval = ''; if ('textarea' === $options['type']) { if (!isset($options['value'])) { $options['value'] = ''; } $retval = "<textarea {$attributes} >" . ITForm::esc_value_attr($options['value']) . '</textarea>'; } else { if ('dropdown' === $options['type']) { $retval = "<select {$attributes}>\n"; if (isset($options['value']) && is_array($options['value'])) { foreach ((array) $options['value'] as $val => $name) { if (is_array($name)) { $options = $name; if (preg_match('/^__optgroup_\\d+$/', $val)) { $retval .= "<optgroup class='it-classes-optgroup-separator'>\n"; } else { $retval .= "<optgroup label='" . esc_attr($val) . "'>\n"; } foreach ((array) $options as $val => $name) { $selected = isset($this->_options[$var]) && (string) $this->_options[$var] === (string) $val ? ' selected="selected"' : ''; $retval .= "<option value=\"" . ITForm::esc_value_attr($val) . "\"{$selected}>{$name}</option>\n"; } $retval .= "</optgroup>\n"; } else { $selected = isset($this->_options[$var]) && (string) $this->_options[$var] === (string) $val ? ' selected="selected"' : ''; $retval .= "<option value=\"" . ITForm::esc_value_attr($val) . "\"{$selected}>{$name}</option>\n"; } } } $retval .= "</select>\n"; } else { $retval = '<input ' . $attributes . '/>'; } } return $retval; }