'widget_specialrecentposts', 'description' => __('The Special Recent Posts widget. Drag to configure.', SRP_TRANSLATION_ID) ); // Assigning widget options. $this->WP_Widget('WDG_SpecialRecentPosts', __('Special Recent Posts', SRP_TRANSLATION_ID), $widget_ops); // Assigning global plugin option values to local variable. $this->plugin_args = get_option('srp_plugin_options'); } /* | --------------------------------------------- | WIDGET FORM DISPLAY METHOD | --------------------------------------------- */ // Main form widget method. function form($instance) { // Outputs the options form on widget panel. $this->buildWidgetForm($instance); } /* | --------------------------------------------- | WIDGET UPDATE & MAIN METHODS | --------------------------------------------- */ // Main method for widget update process. function update($new_instance, $old_instance) { // Processes widget options to be saved. $instance = $old_instance; $instance["srp_post_type"] = $new_instance["srp_post_type"]; $instance["srp_thumbnail_option"] = $new_instance["srp_thumbnail_option"]; $instance["srp_thumbnail_rotation"] = $new_instance["srp_thumbnail_rotation"]; $instance["srp_order_post_option"] = $new_instance["srp_order_post_option"]; $instance["srp_orderby_post_option"] = $new_instance["srp_orderby_post_option"]; $instance["srp_content_post_option"] = $new_instance["srp_content_post_option"]; $instance["srp_post_status_option"] = $new_instance["srp_post_status_option"]; $instance["srp_post_date_option"] = $new_instance["srp_post_date_option"]; $instance["srp_widget_title_hide_option"] = $new_instance["srp_widget_title_hide_option"]; $instance["srp_add_nofollow_option"] = $new_instance["srp_add_nofollow_option"]; $instance["srp_wdg_excerpt_length_mode"] = $new_instance["srp_wdg_excerpt_length_mode"]; $instance["srp_wdg_title_length_mode"] = $new_instance["srp_wdg_title_length_mode"]; $instance["srp_filter_cat_option"] = trim(strip_tags(strip_shortcodes($new_instance["srp_filter_cat_option"]))); $instance["srp_exclude_option"] = trim(strip_tags(strip_shortcodes($new_instance["srp_exclude_option"]))); $instance["srp_include_option"] = trim(strip_tags(strip_shortcodes($new_instance["srp_include_option"]))); $instance["srp_widget_title"] = trim(strip_tags(strip_shortcodes($new_instance["srp_widget_title"]))); $instance["srp_custom_post_type_option"] = trim(strip_tags(strip_shortcodes($new_instance["srp_custom_post_type_option"]))); // Updating widget values. // Handling max number of posts option. if (is_numeric(strip_tags($new_instance["srp_number_post_option"])) && (strip_tags($new_instance["srp_number_post_option"]) != "0") ) $instance["srp_number_post_option"] = trim(strip_tags(strip_shortcodes($new_instance["srp_number_post_option"]))); // Handling thumbnail width option. if (is_numeric(strip_tags($new_instance["srp_thumbnail_wdg_width"]))) $instance["srp_thumbnail_wdg_width"] = trim(strip_tags(strip_shortcodes($new_instance["srp_thumbnail_wdg_width"]))); // Handling thumbnail height option. if (is_numeric(strip_tags($new_instance["srp_thumbnail_wdg_height"]))) $instance["srp_thumbnail_wdg_height"] = trim(strip_tags(strip_shortcodes($new_instance["srp_thumbnail_wdg_height"]))); if (is_numeric(strip_tags($new_instance["srp_wdg_excerpt_length"])) && (strip_tags($new_instance["srp_wdg_excerpt_length"]) != "0") ) $instance["srp_wdg_excerpt_length"] = trim(strip_tags(strip_shortcodes($new_instance["srp_wdg_excerpt_length"]))); if (is_numeric(strip_tags($new_instance["srp_wdg_title_length"])) && (strip_tags($new_instance["srp_wdg_title_length"]) != "0") ) $instance["srp_wdg_title_length"] = trim(strip_tags(strip_shortcodes($new_instance["srp_wdg_title_length"]))); // Handling thumbnail height option. if (is_numeric(strip_tags($new_instance["srp_filter_cat_option"]))) $instance["srp_filter_cat_option"] = trim(strip_tags(strip_shortcodes($new_instance["srp_filter_cat_option"]))); // Handling global post offset option. if ( (is_numeric(strip_tags($new_instance["srp_post_global_offset_option"]))) && ($new_instance["srp_post_global_offset_option"] > 0) ) { $instance["srp_post_global_offset_option"] = trim(strip_tags(strip_shortcodes($new_instance["srp_post_global_offset_option"]))); } else { // If global post offset option has a blank value, set it to 0. $instance["srp_post_global_offset_option"] = 0; } // Return new widget instance. return $instance; } // Main widget method. Main logic here. function widget($args, $instance) { // Extracting Arguments. extract($args, EXTR_SKIP); // Print Before Widget stuff. echo $before_widget; if ('yes' != $instance["srp_widget_title_hide_option"]) { // Print before title. echo $before_title; // Check if SRP is displaying a category filter result and if it should use the linked category title. if ( ($instance["srp_filter_cat_option"] != '') && ($this->plugin_args["srp_category_title"] == "yes") ) { // Get Category Link. $srp_category_link = get_category_link($instance["srp_filter_cat_option"]); // Display Category Title. echo "" . get_cat_name($instance["srp_filter_cat_option"]) . ""; } else { // Display Widget Title. echo $instance["srp_widget_title"]; } // Print after title. echo $after_title; } // Creating an instance of Special Posts Class. $srp = new SpecialRecentPosts($instance); // Display Posts. $srp->displayPosts(true, 'print'); // Print After Widget stuff. echo $after_widget; } /* | --------------------------------------------- | METHODS | --------------------------------------------- */ // Build the widget admin form. function buildWidgetForm($instance) { if (empty($instance)) { // Loading default widget values. global $srp_default_widget_values; // Loading default plugin settings. $plugin_args = get_option('srp_plugin_options'); // Merging default values with instance array, in case this is empty. $instance = wp_parse_args( (array) $instance, $srp_default_widget_values); // Setting up thumbnails width, height and global offset to default values if this is the first run. if (!isset($instance["srp_thumbnail_wdg_width"])) { $instance["srp_thumbnail_wdg_width"] = $plugin_args["srp_thumbnail_width"]; } if (!isset($instance["srp_thumbnail_wdg_height"])) { $instance["srp_thumbnail_wdg_height"] = $plugin_args["srp_thumbnail_height"]; } if ( (!isset($instance["srp_post_global_offset_option"])) || ('' == $instance["srp_post_global_offset_option"])) { $instance["srp_post_global_offset_option"] = 0; } } ?>