示例#1
0
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;
}
示例#2
0
    /**
     * 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'];
    }
示例#3
0
文件: widgets.php 项目: alextkd/fdsmc
 /**
  * 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'];
 }
示例#4
0
    /**
     * 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);
            }
        }
    }