web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginWidget.php
changeset 194 32102edaa81b
--- /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 @@
+<?php
+/**
+ * Class SlideshowPluginWidget allows showing one of your slideshows in your widget area.
+ *
+ * @author: Stefan Boonstra
+ * @version: 04-10-12
+ */
+class SlideshowPluginWidget extends WP_Widget {
+
+	/** Variables */
+	static $widgetName = 'Slideshow Widget';
+
+	/**
+	 * Initializes the widget
+	 */
+	function SlideshowPluginWidget(){
+		// Settings
+		$options = array(
+			'classname' => '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