'', 'classname' => '', 'description' => '', 'width' => '', 'class' => '', 'fields' => array(), 'defaults' => array(), ); public function __construct($key, $params) { $widget_ops = array(); $control_ops = array(); $this->unique = $key; $this->args = apply_filters("csf_{$this->unique}_args", wp_parse_args($params, $this->args), $this); // Set control options if (!empty($this->args['width'])) { $control_ops['width'] = esc_attr($this->args['width']); } // Set widget options if (!empty($this->args['description'])) { $widget_ops['description'] = esc_attr($this->args['description']); } if (!empty($this->args['classname'])) { $widget_ops['classname'] = esc_attr($this->args['classname']); } // Set filters $widget_ops = apply_filters("csf_{$this->unique}_widget_ops", $widget_ops, $this); $control_ops = apply_filters("csf_{$this->unique}_control_ops", $control_ops, $this); parent::__construct($this->unique, esc_attr($this->args['title']), $widget_ops, $control_ops); } // Register widget with WordPress public static function instance($key, $params = array()) { return new self($key, $params); } // Front-end display of widget. public function widget($args, $instance) { call_user_func($this->unique, $args, $instance); } // get default value public function get_default($field) { $default = (isset($field['default'])) ? $field['default'] : ''; $default = (isset($this->args['defaults'][$field['id']])) ? $this->args['defaults'][$field['id']] : $default; return $default; } // get widget value public function get_widget_value($instance, $field) { $default = (isset($field['id'])) ? $this->get_default($field) : ''; $value = (isset($field['id']) && isset($instance[$field['id']])) ? $instance[$field['id']] : $default; return $value; } // Back-end widget form. public function form($instance) { if (!empty($this->args['fields'])) { $class = ($this->args['class']) ? ' ' . $this->args['class'] : ''; echo '
'; } } // Sanitize widget form values as they are saved. public function update($new_instance, $old_instance) { // auto sanitize foreach ($this->args['fields'] as $field) { if (!empty($field['id']) && (!isset($new_instance[$field['id']]) || is_null($new_instance[$field['id']]))) { $new_instance[$field['id']] = ''; } } $new_instance = apply_filters("csf_{$this->unique}_save", $new_instance, $this->args, $this); do_action("csf_{$this->unique}_save_before", $new_instance, $this->args, $this); return $new_instance; } } }