public static function getInstance() { if (!isset(SiteOrigin_Widget_Field_Factory::$instance)) { SiteOrigin_Widget_Field_Factory::$instance = new SiteOrigin_Widget_Field_Factory(); } return SiteOrigin_Widget_Field_Factory::$instance; }
protected function sanitize_field_input($value) { /* @var $field_factory SiteOrigin_Widget_Field_Factory */ $field_factory = SiteOrigin_Widget_Field_Factory::getInstance(); foreach ($this->fields as $sub_field_name => $sub_field_options) { if (empty($value[$sub_field_name])) { continue; } /* @var $sub_field SiteOrigin_Widget_Field_Base */ if (!empty($this->sub_fields) && !empty($this->fields[$sub_field_name])) { $sub_field = $this->sub_fields[$sub_field_name]; } else { $sub_field = $field_factory->create_field($this->base_name . '][' . $sub_field_name, $sub_field_options, $this->for_widget, $this->parent_container); } $value[$sub_field_name] = $sub_field->sanitize($value[$sub_field_name]); $value = $sub_field->sanitize_instance($value); } return $value; }
public function get_template_variables($instance, $args) { $instance = wp_parse_args($instance, array('text' => '')); $instance['text'] = $this->unwpautop($instance['text']); /* @var $field_factory SiteOrigin_Widget_Field_Factory */ $field_factory = SiteOrigin_Widget_Field_Factory::getInstance(); $form_options = $this->form_options(); $field = $field_factory->create_field($this->id_base, $form_options['text'], $this); $instance['text'] = $field->sanitize($instance['text']); $instance['text'] = apply_filters('widget_text', $instance['text']); // Run some known stuff if (!empty($GLOBALS['wp_embed'])) { $instance['text'] = $GLOBALS['wp_embed']->autoembed($instance['text']); } if ($instance['autop']) { $instance['text'] = wpautop($instance['text']); } $instance['text'] = do_shortcode($instance['text']); return array('text' => $instance['text']); }
/** * Update the widget instance. * * @param array $new_instance * @param array $old_instance * @return array|void */ public function update($new_instance, $old_instance) { if (!class_exists('SiteOrigin_Widgets_Color_Object')) { require plugin_dir_path(__FILE__) . 'inc/color.php'; } $form_options = $this->form_options(); if (!empty($form_options)) { /* @var $field_factory SiteOrigin_Widget_Field_Factory */ $field_factory = SiteOrigin_Widget_Field_Factory::getInstance(); foreach ($form_options as $field_name => $field_options) { /* @var $field SiteOrigin_Widget_Field_Base */ if (!empty($this->fields) && !empty($this->fields[$field_name])) { $field = $this->fields[$field_name]; } else { $field = $field_factory->create_field($field_name, $field_options, $this); $this->fields[$field_name] = $field; } $new_instance[$field_name] = $field->sanitize(isset($new_instance[$field_name]) ? $new_instance[$field_name] : null, $new_instance); $new_instance = $field->sanitize_instance($new_instance); } // Let other plugins also sanitize the instance $new_instance = apply_filters('siteorigin_widgets_sanitize_instance', $new_instance, $form_options, $this); $new_instance = apply_filters('siteorigin_widgets_sanitize_instance_' . $this->id_base, $new_instance, $form_options, $this); } // Remove the old CSS, it'll be regenerated on page load. $this->delete_css($this->modify_instance($new_instance)); return $new_instance; }
private function is_container_type($type) { $container_types = SiteOrigin_Widget_Field_Factory::get_container_types(); return in_array($type, $container_types); }