Example #1
0
 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;
 }
Example #3
0
 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;
 }
Example #5
0
 private function is_container_type($type)
 {
     $container_types = SiteOrigin_Widget_Field_Factory::get_container_types();
     return in_array($type, $container_types);
 }