WordPress.org

Make WordPress Core

Ticket #28673: 28673-quick-take.3.diff

File 28673-quick-take.3.diff, 8.7 KB (added by michalzuber, 8 years ago)

Created wp-admin/css/plugins.css to start separating plugins specific styling

  • src/wp-admin/includes/class-wp-plugin-install-list-table.php

     
    7474                                        case 'tag':
    7575                                                $args['tag'] = sanitize_title_with_dashes( $term );
    7676                                                break;
     77                                        case 'category':
     78                                                $args['category'] = sanitize_title_with_dashes( $term );
     79                                                break;
    7780                                        case 'term':
    7881                                                $args['search'] = $term;
    7982                                                break;
  • src/wp-admin/includes/plugin-install.php

     
    125125}
    126126
    127127function install_dashboard() {
    128         ?>
    129         <p><?php printf( __( 'Plugins extend and expand the functionality of WordPress. You may automatically install plugins from the <a href="%1$s">WordPress Plugin Directory</a> or upload a plugin in .zip format via <a href="%2$s">this page</a>.' ), 'https://wordpress.org/plugins/', self_admin_url( 'plugin-install.php?tab=upload' ) ); ?></p>
     128?>
     129        <div class="tablenav top">
     130                <div class="alignleft actions">
     131                        <?php install_search_form( false ); ?>
     132                </div>
     133        </div>
     134        <div class="plugin-install-wrap">
     135       
     136                <?php install_category_list(); ?>
     137               
     138                <div class="top-plugins">
     139                        <div class="featured-plugins plugins-list">
     140                                <h4><?php _e( 'Featured plugins' ); ?></h4>
     141                                <?php install_short_plugin_list( 'featured' ); ?>
     142                        </div>
     143       
     144                        <div class="popular-plugins plugins-list">
     145                                <h4><?php _e( 'Popular plugins' ); ?></h4>
     146                                <?php install_short_plugin_list( 'popular' ); ?>
     147                        </div>
    130148
    131         <h4><?php _e('Search') ?></h4>
    132         <?php install_search_form( false ); ?>
     149                        <br class="clear" />
     150                </div>
     151        </div>
     152<?php
     153}
     154add_action('install_plugins_dashboard', 'install_dashboard');
    133155
    134         <h4><?php _e('Popular tags') ?></h4>
    135         <p class="install-help"><?php _e('You may also browse based on the most popular tags in the Plugin Directory:') ?></p>
    136         <?php
     156/**
     157 * Display a brief unordered list of plugins.
     158 */
     159function install_short_plugin_list( $type, $limit = 10 ) {
     160        $limit = intval( $limit );
     161        if ( $limit < 1 )
     162                $limit = 1;
     163               
     164        $key = "short_plugin_list_{$type}_{$limit}";
     165        $api = get_site_transient( $key );
    137166
    138         $api_tags = install_popular_tags();
     167        if ( !$api ) {
     168                $api = plugins_api( 'query_plugins', array( 'browse' => $type, 'page' => 1, 'per_page' => $limit ) );
     169       
     170                if ( is_wp_error( $api ) ) {
     171                        echo '<p>' . $api->get_error_message() . '</p>';
     172                        return $api;
     173                }
     174                set_site_transient( $key, $api, 3 * HOUR_IN_SECONDS );
     175        }
     176       
     177        echo '<ul class="'.esc_attr( $type ).'-plugins">';
     178        foreach ( $api->plugins as $plugin ) {
     179                echo '<li>';
     180                echo '<a href="' . self_admin_url( 'plugin-install.php?tab=plugin-information&amp;plugin=' . $plugin->slug .
     181                                                        '&amp;TB_iframe=true&amp;width=600&amp;height=550' ) . '" class="thickbox" title="' .
     182                                                        esc_attr( sprintf( __( 'More information about %s' ), $plugin->name ) ) . '">' . esc_html( $plugin->name ) . '</a>';
     183                echo '</li>';
     184        }
     185        echo '</ul>';
     186}
    139187
    140         echo '<p class="popular-tags">';
    141         if ( is_wp_error($api_tags) ) {
    142                 echo $api_tags->get_error_message();
    143         } else {
    144                 //Set up the tags in a way which can be interpreted by wp_generate_tag_cloud()
    145                 $tags = array();
    146                 foreach ( (array)$api_tags as $tag )
    147                         $tags[ $tag['name'] ] = (object) array(
    148                                                                         'link' => esc_url( self_admin_url('plugin-install.php?tab=search&type=tag&s=' . urlencode($tag['name'])) ),
    149                                                                         'name' => $tag['name'],
    150                                                                         'id' => sanitize_title_with_dashes($tag['name']),
    151                                                                         'count' => $tag['count'] );
    152                 echo wp_generate_tag_cloud($tags, array( 'single_text' => __('%s plugin'), 'multiple_text' => __('%s plugins') ) );
     188/**
     189 * Return a list of plugin categories.
     190 */
     191function install_get_category_list( $args = array() ) {
     192        $key = md5(serialize($args));
     193        if ( false !== ($categories = get_site_transient('plugin_categories_' . $key) ) )
     194                return $categories;
     195
     196        $categories = plugins_api('hot_categories', $args);
     197
     198        if ( is_wp_error($categories) )
     199                return $categories;
     200
     201        set_site_transient( 'plugin_categories_' . $key, $categories, 3 * HOUR_IN_SECONDS );
     202
     203        return $categories;
     204}
     205
     206/**
     207 * Display a list of plugin categories.
     208 */
     209function install_category_list() {
     210       
     211        $categories = install_get_category_list();
     212        $categories = array_values( $categories );
     213       
     214        echo '<div class="plugin-categories">';
     215        for ( $i=0; $i < 4; $i++ ) {
     216                echo '<div class="plugin-category-big">';
     217                echo '<a href="' . esc_url( self_admin_url('plugin-install.php?tab=search&type=category&s=' . urlencode($categories[$i]['name'])) ) . '">';
     218                echo esc_html( $categories[ $i ]['name'] );
     219                echo '</a>';
     220                echo '</div>';
    153221        }
    154         echo '</p><br class="clear" />';
     222        echo '<br class="clear" />';
     223        for ( $i=4; $i < 8; $i++ ) {
     224                echo '<div class="plugin-category-small">';
     225                echo '<a href="' . esc_url( self_admin_url('plugin-install.php?tab=search&type=category&s=' . urlencode($categories[$i]['name'])) ) . '">';
     226                echo esc_html( $categories[ $i ]['name'] );
     227                echo '</a>';
     228                echo '</div>';
     229        }
     230       
     231        echo '</div>';
     232        echo '<br class="clear" />';
     233       
    155234}
    156 add_action('install_plugins_dashboard', 'install_dashboard');
    157235
    158236/**
    159237 * Display search form for searching plugins.
     
    171249                        <option value="term"<?php selected('term', $type) ?>><?php _e('Keyword'); ?></option>
    172250                        <option value="author"<?php selected('author', $type) ?>><?php _e('Author'); ?></option>
    173251                        <option value="tag"<?php selected('tag', $type) ?>><?php _ex('Tag', 'Plugin Installer'); ?></option>
     252                        <option value="category"<?php selected('category', $type) ?>><?php _ex('Category', 'Plugin Installer'); ?></option>
    174253                </select>
    175254                <?php endif; ?>
    176255                <input type="search" name="s" value="<?php echo esc_attr($term) ?>" autofocus="autofocus" />
     
    187266 */
    188267function install_plugins_upload( $page = 1 ) {
    189268?>
    190         <h4><?php _e('Install a plugin in .zip format'); ?></h4>
    191         <p class="install-help"><?php _e('If you have a plugin in a .zip format, you may install it by uploading it here.'); ?></p>
    192         <form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo self_admin_url('update.php?action=upload-plugin'); ?>">
    193                 <?php wp_nonce_field( 'plugin-upload'); ?>
    194                 <label class="screen-reader-text" for="pluginzip"><?php _e('Plugin zip file'); ?></label>
    195                 <input type="file" id="pluginzip" name="pluginzip" />
    196                 <?php submit_button( __( 'Install Now' ), 'button', 'install-plugin-submit', false ); ?>
    197         </form>
     269        <div class="plugin-install-wrap">
     270                <h4><?php _e('Install a plugin in .zip format'); ?></h4>
     271                <p class="install-help"><?php _e('If you have a plugin in a .zip format, you may install it by uploading it here.'); ?></p>
     272                <form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo self_admin_url('update.php?action=upload-plugin'); ?>">
     273                        <?php wp_nonce_field( 'plugin-upload'); ?>
     274                        <label class="screen-reader-text" for="pluginzip"><?php _e('Plugin zip file'); ?></label>
     275                        <input type="file" id="pluginzip" name="pluginzip" />
     276                        <?php submit_button( __( 'Install Now' ), 'button', 'install-plugin-submit', false ); ?>
     277                </form>
     278        </div>
    198279<?php
    199280}
    200281add_action('install_plugins_upload', 'install_plugins_upload', 10, 1);
  • src/wp-admin/plugin-install.php

     
    2929$title = __('Install Plugins');
    3030$parent_file = 'plugins.php';
    3131
     32wp_enqueue_style( 'plugins' );
    3233wp_enqueue_script( 'plugin-install' );
    3334if ( 'plugin-information' != $tab )
    3435        add_thickbox();
  • src/wp-includes/script-loader.php

     
    607607        $styles->add( 'wp-admin',           "/wp-admin/css/wp-admin$suffix.css", array( 'open-sans', 'dashicons' ) );
    608608        $styles->add( 'login',              "/wp-admin/css/login$suffix.css", array( 'buttons', 'open-sans', 'dashicons' ) );
    609609        $styles->add( 'install',            "/wp-admin/css/install$suffix.css", array( 'buttons', 'open-sans' ) );
     610        $styles->add( 'plugins',            "/wp-admin/css/plugins$suffix.css" );
    610611        $styles->add( 'wp-color-picker',    "/wp-admin/css/color-picker$suffix.css" );
    611612        $styles->add( 'customize-controls', "/wp-admin/css/customize-controls$suffix.css", array( 'wp-admin', 'colors', 'ie', 'imgareaselect' ) );
    612613        $styles->add( 'customize-widgets',  "/wp-admin/css/customize-widgets$suffix.css", array( 'wp-admin', 'colors' ) );