[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-admin/includes/ -> theme-install.php (source)

   1  <?php
   2  /**
   3   * WordPress Theme Installation Administration API
   4   *
   5   * @package WordPress
   6   * @subpackage Administration
   7   */
   8  
   9  $themes_allowedtags = array(
  10      'a'       => array(
  11          'href'   => array(),
  12          'title'  => array(),
  13          'target' => array(),
  14      ),
  15      'abbr'    => array( 'title' => array() ),
  16      'acronym' => array( 'title' => array() ),
  17      'code'    => array(),
  18      'pre'     => array(),
  19      'em'      => array(),
  20      'strong'  => array(),
  21      'div'     => array(),
  22      'p'       => array(),
  23      'ul'      => array(),
  24      'ol'      => array(),
  25      'li'      => array(),
  26      'h1'      => array(),
  27      'h2'      => array(),
  28      'h3'      => array(),
  29      'h4'      => array(),
  30      'h5'      => array(),
  31      'h6'      => array(),
  32      'img'     => array(
  33          'src'   => array(),
  34          'class' => array(),
  35          'alt'   => array(),
  36      ),
  37  );
  38  
  39  $theme_field_defaults = array(
  40      'description'  => true,
  41      'sections'     => false,
  42      'tested'       => true,
  43      'requires'     => true,
  44      'rating'       => true,
  45      'downloaded'   => true,
  46      'downloadlink' => true,
  47      'last_updated' => true,
  48      'homepage'     => true,
  49      'tags'         => true,
  50      'num_ratings'  => true,
  51  );
  52  
  53  /**
  54   * Retrieves the list of WordPress theme features (aka theme tags).
  55   *
  56   * @since 2.8.0
  57   *
  58   * @deprecated 3.1.0 Use get_theme_feature_list() instead.
  59   *
  60   * @return array
  61   */
  62  function install_themes_feature_list() {
  63      _deprecated_function( __FUNCTION__, '3.1.0', 'get_theme_feature_list()' );
  64  
  65      $cache = get_transient( 'wporg_theme_feature_list' );
  66      if ( ! $cache ) {
  67          set_transient( 'wporg_theme_feature_list', array(), 3 * HOUR_IN_SECONDS );
  68      }
  69  
  70      if ( $cache ) {
  71          return $cache;
  72      }
  73  
  74      $feature_list = themes_api( 'feature_list', array() );
  75      if ( is_wp_error( $feature_list ) ) {
  76          return array();
  77      }
  78  
  79      set_transient( 'wporg_theme_feature_list', $feature_list, 3 * HOUR_IN_SECONDS );
  80  
  81      return $feature_list;
  82  }
  83  
  84  /**
  85   * Displays search form for searching themes.
  86   *
  87   * @since 2.8.0
  88   *
  89   * @param bool $type_selector
  90   */
  91  function install_theme_search_form( $type_selector = true ) {
  92      $type = isset( $_REQUEST['type'] ) ? wp_unslash( $_REQUEST['type'] ) : 'term';
  93      $term = isset( $_REQUEST['s'] ) ? wp_unslash( $_REQUEST['s'] ) : '';
  94      if ( ! $type_selector ) {
  95          echo '<p class="install-help">' . __( 'Search for themes by keyword.' ) . '</p>';
  96      }
  97      ?>
  98  <form id="search-themes" method="get">
  99      <input type="hidden" name="tab" value="search" />
 100      <?php if ( $type_selector ) : ?>
 101      <label class="screen-reader-text" for="typeselector">
 102          <?php
 103          /* translators: Hidden accessibility text. */
 104          _e( 'Type of search' );
 105          ?>
 106      </label>
 107      <select    name="type" id="typeselector">
 108      <option value="term" <?php selected( 'term', $type ); ?>><?php _e( 'Keyword' ); ?></option>
 109      <option value="author" <?php selected( 'author', $type ); ?>><?php _e( 'Author' ); ?></option>
 110      <option value="tag" <?php selected( 'tag', $type ); ?>><?php _ex( 'Tag', 'Theme Installer' ); ?></option>
 111      </select>
 112      <label class="screen-reader-text" for="s">
 113          <?php
 114          switch ( $type ) {
 115              case 'term':
 116                  /* translators: Hidden accessibility text. */
 117                  _e( 'Search by keyword' );
 118                  break;
 119              case 'author':
 120                  /* translators: Hidden accessibility text. */
 121                  _e( 'Search by author' );
 122                  break;
 123              case 'tag':
 124                  /* translators: Hidden accessibility text. */
 125                  _e( 'Search by tag' );
 126                  break;
 127          }
 128          ?>
 129      </label>
 130      <?php else : ?>
 131      <label class="screen-reader-text" for="s">
 132          <?php
 133          /* translators: Hidden accessibility text. */
 134          _e( 'Search by keyword' );
 135          ?>
 136      </label>
 137      <?php endif; ?>
 138      <input type="search" name="s" id="s" size="30" value="<?php echo esc_attr( $term ); ?>" autofocus="autofocus" />
 139      <?php submit_button( __( 'Search' ), '', 'search', false ); ?>
 140  </form>
 141      <?php
 142  }
 143  
 144  /**
 145   * Displays tags filter for themes.
 146   *
 147   * @since 2.8.0
 148   */
 149  function install_themes_dashboard() {
 150      install_theme_search_form( false );
 151      ?>
 152  <h4><?php _e( 'Feature Filter' ); ?></h4>
 153  <p class="install-help"><?php _e( 'Find a theme based on specific features.' ); ?></p>
 154  
 155  <form method="get">
 156      <input type="hidden" name="tab" value="search" />
 157      <?php
 158      $feature_list = get_theme_feature_list();
 159      echo '<div class="feature-filter">';
 160  
 161      foreach ( (array) $feature_list as $feature_name => $features ) {
 162          $feature_name = esc_html( $feature_name );
 163          echo '<div class="feature-name">' . $feature_name . '</div>';
 164  
 165          echo '<ol class="feature-group">';
 166          foreach ( $features as $feature => $feature_name ) {
 167              $feature_name = esc_html( $feature_name );
 168              $feature      = esc_attr( $feature );
 169              ?>
 170  
 171  <li>
 172      <input type="checkbox" name="features[]" id="feature-id-<?php echo $feature; ?>" value="<?php echo $feature; ?>" />
 173      <label for="feature-id-<?php echo $feature; ?>"><?php echo $feature_name; ?></label>
 174  </li>
 175  
 176  <?php    } ?>
 177  </ol>
 178  <br class="clear" />
 179          <?php
 180      }
 181      ?>
 182  
 183  </div>
 184  <br class="clear" />
 185      <?php submit_button( __( 'Find Themes' ), '', 'search' ); ?>
 186  </form>
 187      <?php
 188  }
 189  
 190  /**
 191   * Displays a form to upload themes from zip files.
 192   *
 193   * @since 2.8.0
 194   */
 195  function install_themes_upload() {
 196      ?>
 197  <p class="install-help"><?php _e( 'If you have a theme in a .zip format, you may install or update it by uploading it here.' ); ?></p>
 198  <form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo esc_url( self_admin_url( 'update.php?action=upload-theme' ) ); ?>">
 199      <?php wp_nonce_field( 'theme-upload' ); ?>
 200      <label class="screen-reader-text" for="themezip">
 201          <?php
 202          /* translators: Hidden accessibility text. */
 203          _e( 'Theme zip file' );
 204          ?>
 205      </label>
 206      <input type="file" id="themezip" name="themezip" accept=".zip" />
 207      <?php submit_button( _x( 'Install Now', 'theme' ), '', 'install-theme-submit', false ); ?>
 208  </form>
 209      <?php
 210  }
 211  
 212  /**
 213   * Prints a theme on the Install Themes pages.
 214   *
 215   * @deprecated 3.4.0
 216   *
 217   * @global WP_Theme_Install_List_Table $wp_list_table
 218   *
 219   * @param object $theme
 220   */
 221  function display_theme( $theme ) {
 222      _deprecated_function( __FUNCTION__, '3.4.0' );
 223      global $wp_list_table;
 224      if ( ! isset( $wp_list_table ) ) {
 225          $wp_list_table = _get_list_table( 'WP_Theme_Install_List_Table' );
 226      }
 227      $wp_list_table->prepare_items();
 228      $wp_list_table->single_row( $theme );
 229  }
 230  
 231  /**
 232   * Displays theme content based on theme list.
 233   *
 234   * @since 2.8.0
 235   *
 236   * @global WP_Theme_Install_List_Table $wp_list_table
 237   */
 238  function display_themes() {
 239      global $wp_list_table;
 240  
 241      if ( ! isset( $wp_list_table ) ) {
 242          $wp_list_table = _get_list_table( 'WP_Theme_Install_List_Table' );
 243      }
 244      $wp_list_table->prepare_items();
 245      $wp_list_table->display();
 246  }
 247  
 248  /**
 249   * Displays theme information in dialog box form.
 250   *
 251   * @since 2.8.0
 252   *
 253   * @global WP_Theme_Install_List_Table $wp_list_table
 254   */
 255  function install_theme_information() {
 256      global $wp_list_table;
 257  
 258      $theme = themes_api( 'theme_information', array( 'slug' => wp_unslash( $_REQUEST['theme'] ) ) );
 259  
 260      if ( is_wp_error( $theme ) ) {
 261          wp_die( $theme );
 262      }
 263  
 264      iframe_header( __( 'Theme Installation' ) );
 265      if ( ! isset( $wp_list_table ) ) {
 266          $wp_list_table = _get_list_table( 'WP_Theme_Install_List_Table' );
 267      }
 268      $wp_list_table->theme_installer_single( $theme );
 269      iframe_footer();
 270      exit;
 271  }


Generated : Thu Apr 25 08:20:02 2024 Cross-referenced by PHPXref