Example #1
0
function xpress_dashboard_rss_control( $widget_id, $form_inputs = array() ) {
	if ( !$widget_options = get_option( 'xpress_dashboard_widget_options' ) )
		$widget_options = array();

	if ( !isset($widget_options[$widget_id]) )
		$widget_options[$widget_id] = array();

	$number = 1; // Hack to use wp_widget_rss_form()
	$widget_options[$widget_id]['number'] = $number;

	if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset($_POST['widget-rss'][$number]) ) {
		$_POST['widget-rss'][$number] = stripslashes_deep( $_POST['widget-rss'][$number] );
		$widget_options[$widget_id] = wp_widget_rss_process( $_POST['widget-rss'][$number] );
		// title is optional.  If black, fill it if possible
		if ( !$widget_options[$widget_id]['title'] && isset($_POST['widget-rss'][$number]['title']) ) {
			$rss = fetch_feed($widget_options[$widget_id]['url']);
			if ( ! is_wp_error($rss) )
				$widget_options[$widget_id]['title'] = htmlentities(strip_tags($rss->get_title()));
			else
				$widget_options[$widget_id]['title'] = htmlentities(__('Unknown Feed'));
		}
		update_option( 'xpress_dashboard_widget_options', $widget_options );
	}

	wp_widget_rss_form( $widget_options[$widget_id], $form_inputs );
}
 function update($new_instance, $old_instance)
 {
     $testurl = isset($new_instance['url']) && (!isset($old_instance['url']) || $new_instance['url'] != $old_instance['url']);
     return wp_widget_rss_process($new_instance, $testurl);
 }
Example #3
0
/**
 * The RSS dashboard widget control.
 *
 * Sets up $args to be used as input to wp_widget_rss_form(). Handles POST data
 * from RSS-type widgets.
 *
 * @since 2.5.0
 *
 * @param string $widget_id
 * @param array $form_inputs
 */
function wp_dashboard_rss_control($widget_id, $form_inputs = array())
{
    if (!($widget_options = get_option('dashboard_widget_options'))) {
        $widget_options = array();
    }
    if (!isset($widget_options[$widget_id])) {
        $widget_options[$widget_id] = array();
    }
    $number = 1;
    // Hack to use wp_widget_rss_form()
    $widget_options[$widget_id]['number'] = $number;
    if ('POST' == $_SERVER['REQUEST_METHOD'] && isset($_POST['widget-rss'][$number])) {
        $_POST['widget-rss'][$number] = wp_unslash($_POST['widget-rss'][$number]);
        $widget_options[$widget_id] = wp_widget_rss_process($_POST['widget-rss'][$number]);
        $widget_options[$widget_id]['number'] = $number;
        // Title is optional. If black, fill it if possible.
        if (!$widget_options[$widget_id]['title'] && isset($_POST['widget-rss'][$number]['title'])) {
            $rss = fetch_feed($widget_options[$widget_id]['url']);
            if (is_wp_error($rss)) {
                $widget_options[$widget_id]['title'] = htmlentities(__('Unknown Feed'));
            } else {
                $widget_options[$widget_id]['title'] = htmlentities(strip_tags($rss->get_title()));
                $rss->__destruct();
                unset($rss);
            }
        }
        update_option('dashboard_widget_options', $widget_options);
        $cache_key = 'dash_' . md5($widget_id);
        delete_transient($cache_key);
    }
    wp_widget_rss_form($widget_options[$widget_id], $form_inputs);
}
	function update($new_instance, $old_instance) {
		$testurl = $new_instance['url'] != $old_instance['url'];
		return wp_widget_rss_process( $new_instance, $testurl );
	}
/**
 * The RSS dashboard widget control.
 *
 * Sets up $args to be used as input to wp_widget_rss_form(). Handles POST data
 * from RSS-type widgets.
 *
 * @since unknown
 *
 * @param string widget_id
 * @param array form_inputs
 */
function wp_dashboard_rss_control( $widget_id, $form_inputs = array() ) {
	if ( !$widget_options = get_option( 'dashboard_widget_options' ) )
		$widget_options = array();

	if ( !isset($widget_options[$widget_id]) )
		$widget_options[$widget_id] = array();

	$number = 1; // Hack to use wp_widget_rss_form()
	$widget_options[$widget_id]['number'] = $number;

	if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset($_POST['widget-rss'][$number]) ) {
		$_POST['widget-rss'][$number] = stripslashes_deep( $_POST['widget-rss'][$number] );
		$widget_options[$widget_id] = wp_widget_rss_process( $_POST['widget-rss'][$number] );
		// title is optional.  If black, fill it if possible
		if ( !$widget_options[$widget_id]['title'] && isset($_POST['widget-rss'][$number]['title']) ) {
			require_once(ABSPATH . WPINC . '/rss.php');
			$rss = fetch_rss($widget_options[$widget_id]['url']);
			$widget_options[$widget_id]['title'] = htmlentities(strip_tags($rss->channel['title']));
		}
		update_option( 'dashboard_widget_options', $widget_options );
	}

	wp_widget_rss_form( $widget_options[$widget_id], $form_inputs );
}
Example #6
0
/**
 * Display and process RSS widget control form.
 *
 * @since 2.2.0
 *
 * @param int $widget_args Widget number.
 */
function wp_widget_rss_control($widget_args)
{
    global $wp_registered_widgets;
    static $updated = false;
    if (is_numeric($widget_args)) {
        $widget_args = array('number' => $widget_args);
    }
    $widget_args = wp_parse_args($widget_args, array('number' => -1));
    extract($widget_args, EXTR_SKIP);
    $options = get_option('widget_rss');
    if (!is_array($options)) {
        $options = array();
    }
    $urls = array();
    foreach ((array) $options as $option) {
        if (isset($option['url'])) {
            $urls[$option['url']] = true;
        }
    }
    if (!$updated && 'POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['sidebar'])) {
        $sidebar = (string) $_POST['sidebar'];
        $sidebars_widgets = wp_get_sidebars_widgets();
        if (isset($sidebars_widgets[$sidebar])) {
            $this_sidebar =& $sidebars_widgets[$sidebar];
        } else {
            $this_sidebar = array();
        }
        foreach ((array) $this_sidebar as $_widget_id) {
            if ('wp_widget_rss' == $wp_registered_widgets[$_widget_id]['callback'] && isset($wp_registered_widgets[$_widget_id]['params'][0]['number'])) {
                $widget_number = $wp_registered_widgets[$_widget_id]['params'][0]['number'];
                if (!in_array("rss-{$widget_number}", $_POST['widget-id'])) {
                    // the widget has been removed.
                    unset($options[$widget_number]);
                }
            }
        }
        foreach ((array) $_POST['widget-rss'] as $widget_number => $widget_rss) {
            if (!isset($widget_rss['url']) && isset($options[$widget_number])) {
                // user clicked cancel
                continue;
            }
            $widget_rss = stripslashes_deep($widget_rss);
            $url = sanitize_url(strip_tags($widget_rss['url']));
            $options[$widget_number] = wp_widget_rss_process($widget_rss, !isset($urls[$url]));
        }
        update_option('widget_rss', $options);
        $updated = true;
    }
    if (-1 == $number) {
        $title = '';
        $url = '';
        $items = 10;
        $error = false;
        $number = '%i%';
        $show_summary = 0;
        $show_author = 0;
        $show_date = 0;
    } else {
        extract((array) $options[$number]);
    }
    wp_widget_rss_form(compact('number', 'title', 'url', 'items', 'error', 'show_summary', 'show_author', 'show_date'));
}