WordPress 4.5
[autoinstalls/wordpress.git] / wp-admin / includes / theme-install.php
index 5c135aa10aa826b64f43b4c31da4aa245f7b8161..27538b748991b0d98095f706dce1e6bcffaa2724 100644 (file)
@@ -28,18 +28,20 @@ $theme_field_defaults = array( 'description' => true, 'sections' => false, 'test
  *
  * @return array
  */
  *
  * @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' ) )
        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;
 
 
        if ( $cache )
                return $cache;
 
-       $feature_list = themes_api( 'feature_list', array( ) );
+       $feature_list = themes_api( 'feature_list', array() );
        if ( is_wp_error( $feature_list ) )
        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;
 }
 
        return $feature_list;
 }
@@ -48,14 +50,16 @@ function install_themes_feature_list( ) {
  * Display search form for searching themes.
  *
  * @since 2.8.0
  * Display search form for searching themes.
  *
  * @since 2.8.0
+ *
+ * @param bool $type_selector
  */
 function install_theme_search_form( $type_selector = true ) {
  */
 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>';
        ?>
        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>
        <input type="hidden" name="tab" value="search" />
        <?php if ( $type_selector ) : ?>
        <label class="screen-reader-text" for="typeselector"><?php _e('Type of search'); ?></label>
@@ -97,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>
 
 <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
        <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 ) {
        echo '<div class="feature-filter">';
 
        foreach ( (array) $feature_list as $feature_name => $features ) {
@@ -130,63 +134,79 @@ function install_themes_dashboard() {
 </form>
 <?php
 }
 </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" class="wp-upload-form" action="<?php echo self_admin_url('update.php?action=upload-theme'); ?>">
 <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'); ?>
-       <input type="file" name="themezip" />
+       <?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
 }
        <?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
 
 /**
  * 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;
  */
 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
 }
 
 /**
  * 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;
 
  */
 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();
        $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
 
 /**
  * Display theme information in dialog box form.
  *
  * @since 2.8.0
+ *
+ * @global WP_Theme_Install_List_Table $wp_list_table
  */
 function install_theme_information() {
  */
 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 ( 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;
 }
        $wp_list_table->theme_installer_single( $theme );
        iframe_footer();
        exit;
 }
-add_action('install_themes_pre_theme-information', 'install_theme_information');