Ticket #8781: 8781.9.patch
File 8781.9.patch, 3.6 KB (added by , 16 years ago) |
---|
-
wp-admin/includes/dashboard.php
734 734 $new = fetch_feed( 'http://wordpress.org/extend/plugins/rss/browse/new/' ); 735 735 $updated = fetch_feed( 'http://wordpress.org/extend/plugins/rss/browse/updated/' ); 736 736 737 if ( false === $plugin_slugs = get_transient( 'plugin_slugs' ) ) { 738 $plugin_slugs = array_keys( get_plugins() ); 739 set_transient( 'plugin_slugs', $plugin_slugs, 86400 ); 740 } 741 737 742 foreach ( array( 'popular' => __('Most Popular'), 'new' => __('Newest Plugins'), 'updated' => __('Recently Updated') ) as $feed => $label ) { 738 743 if ( !$$feed->get_item_quantity() ) 739 744 continue; 740 745 741 746 $items = $$feed->get_items(0, 5); 742 $item_key = array_rand($items);743 747 748 // Pick a random, non-installed plugin 749 while ( true ) { 750 // Abort this foreach loop iteration if there's no plugins left of this type 751 if ( 0 == count($items) ) 752 continue 2; 753 754 $item_key = array_rand($items); 755 $item = $items[$item_key]; 756 757 list($link, $frag) = explode( '#', $item->get_link() ); 758 759 $link = clean_url($link); 760 if ( preg_match( '|/([^/]+?)/?$|', $link, $matches ) ) 761 $slug = $matches[1]; 762 else { 763 unset( $items[$item_key] ); 764 continue; 765 } 766 767 // Is this random plugin's slug already installed? If so, try again. 768 reset( $plugin_slugs ); 769 foreach ( $plugin_slugs as $plugin_slug ) { 770 if ( $slug == substr( $plugin_slug, 0, strlen( $slug ) ) ) { 771 unset( $items[$item_key] ); 772 continue 2; 773 } 774 } 775 776 // If we get to this point, then the random plugin isn't installed and we can stop the while(). 777 break; 778 } 779 744 780 // Eliminate some common badly formed plugin descriptions 745 781 while ( ( null !== $item_key = array_rand($items) ) && false !== strpos( $items[$item_key]->get_description(), 'Plugin Name:' ) ) 746 782 unset($items[$item_key]); … … 748 784 if ( !isset($items[$item_key]) ) 749 785 continue; 750 786 751 $item = $items[$item_key];752 753 787 // current bbPress feed item titles are: user on "topic title" 754 788 if ( preg_match( '/"(.*)"/s', $item->get_title(), $matches ) ) 755 789 $title = $matches[1]; … … 759 793 760 794 $description = wp_specialchars( strip_tags(html_entity_decode($item->get_description(), ENT_QUOTES, get_option('blog_charset'))) ); 761 795 762 list($link, $frag) = explode( '#', $item->get_link() );763 764 $link = clean_url($link);765 if( preg_match('|/([^/]+?)/?$|', $link, $matches) )766 $slug = $matches[1];767 else768 $slug = '';769 770 796 $ilink = wp_nonce_url('plugin-install.php?tab=plugin-information&plugin=' . $slug, 'install-plugin_' . $slug) . 771 797 '&TB_iframe=true&width=600&height=800'; 772 798 … … 885 911 */ 886 912 function wp_dashboard_empty() {} 887 913 888 ?> 914 ?> 915 No newline at end of file -
wp-admin/plugins.php
212 212 $inactive_plugins = array(); 213 213 $recent_plugins = array(); 214 214 $recently_activated = (array) get_option('recently_activated'); 215 set_transient( 'plugin_slugs', array_keys($all_plugins), 86400 ); 215 216 216 // Clean out any plugins which were deactivated over a week ago.217 // Clean out any plugins which were deactivated over a week ago. 217 218 foreach ( $recently_activated as $key => $time ) 218 219 if ( $time + (7*24*60*60) < time() ) //1 week 219 220 unset($recently_activated[ $key ]); … … 394 395 395 396 <?php 396 397 include('admin-footer.php'); 397 ?> 398 ?> 399 No newline at end of file