diff -r 2f6f6f7551ca -r 32102edaa81b web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginWidget.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginWidget.php Mon Nov 19 18:26:13 2012 +0100 @@ -0,0 +1,121 @@ + 'SlideshowWidget', + 'description' => __('Enables you to show your slideshows in the widget area of your website.', 'slideshow-plugin') + ); + + // Create the widget. + $this->WP_Widget( + 'slideshowWidget', + __('Slideshow Widget', 'slideshow-plugin'), + $options + ); + } + + /** + * The widget as shown to the user. + * + * @param mixed array $args + * @param mixed array $instance + */ + function widget($args, $instance){ + // Get slideshowId + $slideshowId = ''; + if(isset($instance['slideshowId'])) + $slideshowId = $instance['slideshowId']; + + // Get title + $title = ''; + if(isset($instance['title'])) + $title = $instance['title']; + + // Prepare slideshow for output to website. + $output = SlideshowPlugin::prepare($slideshowId); + + $beforeWidget = $afterWidget = $beforeTitle = $afterTitle = ''; + if(isset($args['before_widget'])) + $beforeWidget = $args['before_widget']; + if(isset($args['after_widget'])) + $afterWidget = $args['after_widget']; + if(isset($args['before_title'])) + $beforeTitle = $args['before_title']; + if(isset($args['after_title'])) + $afterTitle = $args['after_title']; + + // Output widget + echo $beforeWidget . + $beforeTitle . $title . $afterTitle . + $output . + $afterWidget; + } + + /** + * The form shown on the admins widget page. Here settings can be changed. + * + * @param mixed array $instance + * @return string + */ + function form($instance){ + // Defaults + $defaults = array( + 'title' => __(self::$widgetName, 'slideshow-plugin'), + 'slideshowId' => -1 + ); + + // Merge database settings with defaults + $instance = wp_parse_args((array) $instance, $defaults); + + // Get slideshows + $slideshows = get_posts(array( + 'numberposts' => -1, + 'offset' => 0, + 'post_type' => SlideshowPluginPostType::$postType + )); + + // Include form + include(SlideshowPluginMain::getPluginPath() . '/views/' . __CLASS__ . '/form.php'); + } + + /** + * Updates widget's settings. + * + * @param mixed array $newInstance + * @param mixed array $instance + * @return mixed array $instance + */ + function update($newInstance, $instance){ + // Update title + if(isset($newInstance['title'])) + $instance['title'] = $newInstance['title']; + + // Update slideshowId + if(isset($newInstance['slideshowId']) && !empty($newInstance['slideshowId'])) + $instance['slideshowId'] = $newInstance['slideshowId']; + + // Save + return $instance; + } + + /** + * Registers this widget (should be called upon widget_init action hook) + */ + static function registerWidget(){ + register_widget(__CLASS__); + } +} \ No newline at end of file