]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-admin/includes/theme-install.php
WordPress 4.5
[autoinstalls/wordpress.git] / wp-admin / includes / theme-install.php
index 1fdafec831cf01c33d65edbf70c58dd54d4a3ff2..27538b748991b0d98095f706dce1e6bcffaa2724 100644 (file)
@@ -28,18 +28,20 @@ $theme_field_defaults = array( 'description' => true, 'sections' => false, 'test
  *
  * @return array
  */
-function install_themes_feature_list( ) {
+function install_themes_feature_list() {
+       _deprecated_function( __FUNCTION__, '3.1', 'get_theme_feature_list()' );
+
        if ( !$cache = get_transient( 'wporg_theme_feature_list' ) )
-               set_transient( 'wporg_theme_feature_list', array( ), 10800);
+               set_transient( 'wporg_theme_feature_list', array(), 3 * HOUR_IN_SECONDS );
 
        if ( $cache )
                return $cache;
 
-       $feature_list = themes_api( 'feature_list', array( ) );
+       $feature_list = themes_api( 'feature_list', array() );
        if ( is_wp_error( $feature_list ) )
-               return $features;
+               return array();
 
-       set_transient( 'wporg_theme_feature_list', $feature_list, 10800 );
+       set_transient( 'wporg_theme_feature_list', $feature_list, 3 * HOUR_IN_SECONDS );
 
        return $feature_list;
 }
@@ -48,23 +50,41 @@ function install_themes_feature_list( ) {
  * Display search form for searching themes.
  *
  * @since 2.8.0
+ *
+ * @param bool $type_selector
  */
 function install_theme_search_form( $type_selector = true ) {
-       $type = isset( $_REQUEST['type'] ) ? stripslashes( $_REQUEST['type'] ) : 'term';
-       $term = isset( $_REQUEST['s'] ) ? stripslashes( $_REQUEST['s'] ) : '';
+       $type = isset( $_REQUEST['type'] ) ? wp_unslash( $_REQUEST['type'] ) : 'term';
+       $term = isset( $_REQUEST['s'] ) ? wp_unslash( $_REQUEST['s'] ) : '';
        if ( ! $type_selector )
                echo '<p class="install-help">' . __( 'Search for themes by keyword.' ) . '</p>';
        ?>
-<form id="search-themes" method="get" action="">
+<form id="search-themes" method="get">
        <input type="hidden" name="tab" value="search" />
        <?php if ( $type_selector ) : ?>
+       <label class="screen-reader-text" for="typeselector"><?php _e('Type of search'); ?></label>
        <select name="type" id="typeselector">
        <option value="term" <?php selected('term', $type) ?>><?php _e('Keyword'); ?></option>
        <option value="author" <?php selected('author', $type) ?>><?php _e('Author'); ?></option>
        <option value="tag" <?php selected('tag', $type) ?>><?php _ex('Tag', 'Theme Installer'); ?></option>
        </select>
+       <label class="screen-reader-text" for="s"><?php
+       switch ( $type ) {
+               case 'term':
+                       _e( 'Search by keyword' );
+                       break;
+               case 'author':
+                       _e( 'Search by author' );
+                       break;
+               case 'tag':
+                       _e( 'Search by tag' );
+                       break;
+       }
+       ?></label>
+       <?php else : ?>
+       <label class="screen-reader-text" for="s"><?php _e('Search by keyword'); ?></label>
        <?php endif; ?>
-       <input type="search" name="s" size="30" value="<?php echo esc_attr($term) ?>" />
+       <input type="search" name="s" id="s" size="30" value="<?php echo esc_attr($term) ?>" autofocus="autofocus" />
        <?php submit_button( __( 'Search' ), 'button', 'search', false ); ?>
 </form>
 <?php
@@ -81,10 +101,10 @@ function install_themes_dashboard() {
 <h4><?php _e('Feature Filter') ?></h4>
 <p class="install-help"><?php _e( 'Find a theme based on specific features.' ); ?></p>
 
-<form method="get" action="">
+<form method="get">
        <input type="hidden" name="tab" value="search" />
        <?php
-       $feature_list = get_theme_feature_list( );
+       $feature_list = get_theme_feature_list();
        echo '<div class="feature-filter">';
 
        foreach ( (array) $feature_list as $feature_name => $features ) {
@@ -114,63 +134,79 @@ function install_themes_dashboard() {
 </form>
 <?php
 }
-add_action('install_themes_dashboard', 'install_themes_dashboard');
 
-function install_themes_upload($page = 1) {
+/**
+ * @since 2.8.0
+ */
+function install_themes_upload() {
 ?>
-<h4><?php _e('Install a theme in .zip format') ?></h4>
-<p class="install-help"><?php _e('If you have a theme in a .zip format, you may install it by uploading it here.') ?></p>
-<form method="post" enctype="multipart/form-data" action="<?php echo self_admin_url('update.php?action=upload-theme') ?>">
-       <?php wp_nonce_field( 'theme-upload') ?>
-       <input type="file" name="themezip" />
+<p class="install-help"><?php _e('If you have a theme in a .zip format, you may install it by uploading it here.'); ?></p>
+<form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo self_admin_url('update.php?action=upload-theme'); ?>">
+       <?php wp_nonce_field( 'theme-upload' ); ?>
+       <label class="screen-reader-text" for="themezip"><?php _e( 'Theme zip file' ); ?></label>
+       <input type="file" id="themezip" name="themezip" />
        <?php submit_button( __( 'Install Now' ), 'button', 'install-theme-submit', false ); ?>
 </form>
        <?php
 }
-add_action('install_themes_upload', 'install_themes_upload', 10, 1);
 
 /**
  * Prints a theme on the Install Themes pages.
  *
  * @deprecated 3.4.0
+ *
+ * @global WP_Theme_Install_List_Table $wp_list_table
+ *
+ * @param object $theme
  */
 function display_theme( $theme ) {
        _deprecated_function( __FUNCTION__, '3.4' );
        global $wp_list_table;
-       return $wp_list_table->single_row( $theme );
+       if ( ! isset( $wp_list_table ) ) {
+               $wp_list_table = _get_list_table('WP_Theme_Install_List_Table');
+       }
+       $wp_list_table->prepare_items();
+       $wp_list_table->single_row( $theme );
 }
 
 /**
  * Display theme content based on theme list.
  *
  * @since 2.8.0
+ *
+ * @global WP_Theme_Install_List_Table $wp_list_table
  */
 function display_themes() {
        global $wp_list_table;
 
+       if ( ! isset( $wp_list_table ) ) {
+               $wp_list_table = _get_list_table('WP_Theme_Install_List_Table');
+       }
+       $wp_list_table->prepare_items();
        $wp_list_table->display();
+
 }
-add_action('install_themes_search', 'display_themes');
-add_action('install_themes_featured', 'display_themes');
-add_action('install_themes_new', 'display_themes');
-add_action('install_themes_updated', 'display_themes');
 
 /**
  * Display theme information in dialog box form.
  *
  * @since 2.8.0
+ *
+ * @global WP_Theme_Install_List_Table $wp_list_table
  */
 function install_theme_information() {
-       global $tab, $themes_allowedtags, $wp_list_table;
+       global $wp_list_table;
 
-       $theme = themes_api( 'theme_information', array( 'slug' => stripslashes( $_REQUEST['theme'] ) ) );
+       $theme = themes_api( 'theme_information', array( 'slug' => wp_unslash( $_REQUEST['theme'] ) ) );
 
        if ( is_wp_error( $theme ) )
                wp_die( $theme );
 
        iframe_header( __('Theme Install') );
+       if ( ! isset( $wp_list_table ) ) {
+               $wp_list_table = _get_list_table('WP_Theme_Install_List_Table');
+       }
        $wp_list_table->theme_installer_single( $theme );
        iframe_footer();
        exit;
 }
-add_action('install_themes_pre_theme-information', 'install_theme_information');