function origin_widgets_display_css() { if (is_admin()) { return; } if (empty($_GET['action']) || $_GET['action'] != 'origin_widgets_css') { return; } if (empty($_GET['class']) || empty($_GET['style']) || empty($_GET['preset'])) { return; } if (strpos($_GET['class'], 'SiteOrigin_Panels_Widget_') !== 0) { return; } header("Content-type: text/css"); echo origin_widgets_generate_css(filter_input(INPUT_GET, 'class'), filter_input(INPUT_GET, 'style'), filter_input(INPUT_GET, 'preset'), filter_input(INPUT_GET, 'ver')); exit; }
/** * Render the widget. * * @param array $args * @param array $instance * @return bool|void */ function widget($args, $instance) { // Set up defaults for all the widget args foreach ($this->form_args as $field_id => $field_args) { if (isset($field_args['default']) && !isset($instance[$field_id])) { $instance[$field_id] = $field_args['default']; } if (!isset($instance[$field_id])) { $instance[$field_id] = false; } } // Filter the title if (!empty($instance['title'])) { $instance['title'] = apply_filters('widget_title', $instance['title'], $instance, $this->id_base); } if (!empty($instance['origin_style'])) { list($style, $preset) = explode(':', $instance['origin_style']); $style = sanitize_file_name($style); $preset = sanitize_file_name($preset); $data = $this->get_style_data($style); $template = $data['Template']; } else { $style = 'default'; $preset = 'default'; } if (empty($template)) { $template = 'default'; } $template_file = false; $paths = $this->get_widget_paths(); foreach ($paths as $path) { if (file_exists($path . '/' . $this->origin_id . '/tpl/' . $template . '.php')) { $template_file = $path . '/' . $this->origin_id . '/tpl/' . $template . '.php'; break; } } if (empty($template_file)) { echo $args['before_widget']; echo 'Template not found'; echo $args['after_widget']; return false; } // Dynamically generate the CSS if (!empty($instance['origin_style'])) { $filename = $this->origin_id . '-' . $style . '-' . $preset; if (siteorigin_panels_setting('inline-css')) { static $inlined_css = array(); if (empty($inlined_css[$filename])) { $inlined_css[$filename] = true; ?> <style type="text/css" media="all"><?php echo origin_widgets_generate_css(get_class($this), $style, $preset); ?> </style><?php } } else { wp_enqueue_style('origin-widget-' . $filename, add_query_arg(array('class' => get_class($this), 'style' => $style, 'preset' => $preset), site_url('?action=origin_widgets_css')), array(), SITEORIGIN_PANELS_VERSION); } } if (method_exists($this, 'enqueue_scripts')) { $this->enqueue_scripts(); } $widget_classes = apply_filters('siteorigin_widgets_classes', array('origin-widget', 'origin-widget-' . $this->origin_id, 'origin-widget-' . $this->origin_id . '-' . $style . '-' . $preset), $instance); if (method_exists($this, 'widget_classes')) { $widget_classes = $this->widget_classes(array('origin-widget', 'origin-widget-' . $this->origin_id, 'origin-widget-' . $this->origin_id . '-' . $style . '-' . $preset), $instance); } echo $args['before_widget']; echo '<div class="' . esc_attr(implode(' ', $widget_classes)) . '">'; include $template_file; echo '</div>'; echo $args['after_widget']; }
/** * Render the widget. * * @param array $args * @param array $instance * @return bool|void */ function widget($args, $instance) { // Set up defaults for all the widget args foreach ($this->form_args as $field_id => $field_args) { if (isset($field_args['default']) && !isset($instance[$field_id])) { $instance[$field_id] = $field_args['default']; } if (!isset($instance[$field_id])) { $instance[$field_id] = false; } } // Filter the title if (!empty($instance['title'])) { $instance['title'] = apply_filters('widget_title', $instance['title'], $instance, $this->id_base); } if (!empty($instance['origin_style'])) { list($style, $preset) = explode(':', $instance['origin_style']); $style = sanitize_file_name($style); $preset = sanitize_file_name($preset); $data = $this->get_style_data($style); $template = $data['Template']; } else { $style = 'default'; $preset = 'default'; } if (empty($template)) { $template = 'default'; } $template_file = false; $paths = $this->get_widget_paths(); foreach ($paths as $path) { if (file_exists($path . '/' . $this->origin_id . '/tpl/' . $template . '.php')) { $template_file = $path . '/' . $this->origin_id . '/tpl/' . $template . '.php'; break; } } if (empty($template_file)) { echo $args['before_widget']; echo 'Template not found'; echo $args['after_widget']; return false; } // Dynamically generate the CSS if (!empty($instance['origin_style'])) { $filename = $this->origin_id . '-' . $style . '-' . $preset; static $inlined_css = array(); if (empty($inlined_css[$filename])) { $inlined_css[$filename] = true; global $siteorigin_panels_inline_css; if (empty($siteorigin_panels_inline_css)) { $siteorigin_panels_inline_css = ''; } $siteorigin_panels_inline_css .= "\n" . origin_widgets_generate_css(get_class($this), $style, $preset); } } if (method_exists($this, 'enqueue_scripts')) { $this->enqueue_scripts(); } $widget_classes = apply_filters('siteorigin_widgets_classes', array('origin-widget', 'origin-widget-' . $this->origin_id, 'origin-widget-' . $this->origin_id . '-' . $style . '-' . $preset), $instance); if (method_exists($this, 'widget_classes')) { $widget_classes = $this->widget_classes(array('origin-widget', 'origin-widget-' . $this->origin_id, 'origin-widget-' . $this->origin_id . '-' . $style . '-' . $preset), $instance); } echo $args['before_widget']; echo '<div class="' . esc_attr(implode(' ', $widget_classes)) . '">'; include $template_file; echo '</div>'; echo $args['after_widget']; }
/** * Dynamically generates CSS for for SiteOrigin_Panels_Widget::widget * * @param $style * @param $preset * @param object $class The widget class */ function widget_dynamically_generate_css($style, $preset, $instance, $class) { if (!empty($instance['origin_style'])) { $filename = $class->origin_id . '-' . $style . '-' . $preset; if (siteorigin_panels_setting('inline-css')) { static $inlined_css = array(); if (empty($inlined_css[$filename])) { $inlined_css[$filename] = true; ?> <style type = "text/css" media = "all"><?php echo origin_widgets_generate_css(get_class($class), $style, $preset); ?> </style><?php } } else { wp_enqueue_style('origin-widget-' . $filename, add_query_arg(array('class' => get_class($class), 'style' => $style, 'preset' => $preset), site_url('?action = origin_widgets_css')), array(), POOTLEPAGE_VERSION); } } }