X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/449d082fcc4873c1f7d363a0d9f7409be7f6e77d..e3ff8f35458a959c1879c0a4976701ed8dcfe651:/wp-admin/includes/widgets.php diff --git a/wp-admin/includes/widgets.php b/wp-admin/includes/widgets.php index 9e15d548..fe2a957f 100644 --- a/wp-admin/includes/widgets.php +++ b/wp-admin/includes/widgets.php @@ -7,188 +7,106 @@ */ /** - * Display list of widgets, either all or matching search. + * Display list of the available widgets. * - * The search parameter are search terms separated by spaces. + * @since 2.5.0 * - * @since unknown - * - * @param string $show Optional, default is all. What to display, can be 'all', 'unused', or 'used'. - * @param string $_search Optional. Search for widgets. Should be unsanitized. + * @global array $wp_registered_widgets + * @global array $wp_registered_widget_controls */ -function wp_list_widgets( $show = 'all', $_search = false ) { - global $wp_registered_widgets, $sidebars_widgets, $wp_registered_widget_controls; - if ( $_search ) { - // sanitize - $search = preg_replace( '/[^\w\s]/', '', $_search ); - // array of terms - $search_terms = preg_split( '/[\s]/', $search, -1, PREG_SPLIT_NO_EMPTY ); - } else { - $search_terms = array(); +function wp_list_widgets() { + global $wp_registered_widgets, $wp_registered_widget_controls; + + $sort = $wp_registered_widgets; + usort( $sort, '_sort_name_callback' ); + $done = array(); + + foreach ( $sort as $widget ) { + if ( in_array( $widget['callback'], $done, true ) ) // We already showed this multi-widget + continue; + + $sidebar = is_active_widget( $widget['callback'], $widget['id'], false, false ); + $done[] = $widget['callback']; + + if ( ! isset( $widget['params'][0] ) ) + $widget['params'][0] = array(); + + $args = array( 'widget_id' => $widget['id'], 'widget_name' => $widget['name'], '_display' => 'template' ); + + if ( isset($wp_registered_widget_controls[$widget['id']]['id_base']) && isset($widget['params'][0]['number']) ) { + $id_base = $wp_registered_widget_controls[$widget['id']]['id_base']; + $args['_temp_id'] = "$id_base-__i__"; + $args['_multi_num'] = next_widget_id_number($id_base); + $args['_add'] = 'multi'; + } else { + $args['_add'] = 'single'; + if ( $sidebar ) + $args['_hide'] = '1'; + } + + $args = wp_list_widget_controls_dynamic_sidebar( array( 0 => $args, 1 => $widget['params'][0] ) ); + call_user_func_array( 'wp_widget_control', $args ); } +} - if ( !in_array( $show, array( 'all', 'unused', 'used' ) ) ) - $show = 'all'; -?> - - - -