[ Index ]

PHP Cross Reference of WordPress

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"><?php _e( 'Type of search' ); ?></label>
 102      <select    name="type" id="typeselector">
 103      <option value="term" <?php selected( 'term', $type ); ?>><?php _e( 'Keyword' ); ?></option>
 104      <option value="author" <?php selected( 'author', $type ); ?>><?php _e( 'Author' ); ?></option>
 105      <option value="tag" <?php selected( 'tag', $type ); ?>><?php _ex( 'Tag', 'Theme Installer' ); ?></option>
 106      </select>
 107      <label class="screen-reader-text" for="s">
 108          <?php
 109          switch ( $type ) {
 110              case 'term':
 111                  _e( 'Search by keyword' );
 112                  break;
 113              case 'author':
 114                  _e( 'Search by author' );
 115                  break;
 116              case 'tag':
 117                  _e( 'Search by tag' );
 118                  break;
 119          }
 120          ?>
 121      </label>
 122      <?php else : ?>
 123      <label class="screen-reader-text" for="s"><?php _e( 'Search by keyword' ); ?></label>
 124      <?php endif; ?>
 125      <input type="search" name="s" id="s" size="30" value="<?php echo esc_attr( $term ); ?>" autofocus="autofocus" />
 126      <?php submit_button( __( 'Search' ), '', 'search', false ); ?>
 127  </form>
 128      <?php
 129  }
 130  
 131  /**
 132   * Displays tags filter for themes.
 133   *
 134   * @since 2.8.0
 135   */
 136  function install_themes_dashboard() {
 137      install_theme_search_form( false );
 138      ?>
 139  <h4><?php _e( 'Feature Filter' ); ?></h4>
 140  <p class="install-help"><?php _e( 'Find a theme based on specific features.' ); ?></p>
 141  
 142  <form method="get">
 143      <input type="hidden" name="tab" value="search" />
 144      <?php
 145      $feature_list = get_theme_feature_list();
 146      echo '<div class="feature-filter">';
 147  
 148      foreach ( (array) $feature_list as $feature_name => $features ) {
 149          $feature_name = esc_html( $feature_name );
 150          echo '<div class="feature-name">' . $feature_name . '</div>';
 151  
 152          echo '<ol class="feature-group">';
 153          foreach ( $features as $feature => $feature_name ) {
 154              $feature_name = esc_html( $feature_name );
 155              $feature      = esc_attr( $feature );
 156              ?>
 157  
 158  <li>
 159      <input type="checkbox" name="features[]" id="feature-id-<?php echo $feature; ?>" value="<?php echo $feature; ?>" />
 160      <label for="feature-id-<?php echo $feature; ?>"><?php echo $feature_name; ?></label>
 161  </li>
 162  
 163  <?php    } ?>
 164  </ol>
 165  <br class="clear" />
 166          <?php
 167      }
 168      ?>
 169  
 170  </div>
 171  <br class="clear" />
 172      <?php submit_button( __( 'Find Themes' ), '', 'search' ); ?>
 173  </form>
 174      <?php
 175  }
 176  
 177  /**
 178   * @since 2.8.0
 179   */
 180  function install_themes_upload() {
 181      ?>
 182  <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>
 183  <form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo self_admin_url( 'update.php?action=upload-theme' ); ?>">
 184      <?php wp_nonce_field( 'theme-upload' ); ?>
 185      <label class="screen-reader-text" for="themezip"><?php _e( 'Theme zip file' ); ?></label>
 186      <input type="file" id="themezip" name="themezip" accept=".zip" />
 187      <?php submit_button( __( 'Install Now' ), '', 'install-theme-submit', false ); ?>
 188  </form>
 189      <?php
 190  }
 191  
 192  /**
 193   * Prints a theme on the Install Themes pages.
 194   *
 195   * @deprecated 3.4.0
 196   *
 197   * @global WP_Theme_Install_List_Table $wp_list_table
 198   *
 199   * @param object $theme
 200   */
 201  function display_theme( $theme ) {
 202      _deprecated_function( __FUNCTION__, '3.4.0' );
 203      global $wp_list_table;
 204      if ( ! isset( $wp_list_table ) ) {
 205          $wp_list_table = _get_list_table( 'WP_Theme_Install_List_Table' );
 206      }
 207      $wp_list_table->prepare_items();
 208      $wp_list_table->single_row( $theme );
 209  }
 210  
 211  /**
 212   * Displays theme content based on theme list.
 213   *
 214   * @since 2.8.0
 215   *
 216   * @global WP_Theme_Install_List_Table $wp_list_table
 217   */
 218  function display_themes() {
 219      global $wp_list_table;
 220  
 221      if ( ! isset( $wp_list_table ) ) {
 222          $wp_list_table = _get_list_table( 'WP_Theme_Install_List_Table' );
 223      }
 224      $wp_list_table->prepare_items();
 225      $wp_list_table->display();
 226  
 227  }
 228  
 229  /**
 230   * Displays theme information in dialog box form.
 231   *
 232   * @since 2.8.0
 233   *
 234   * @global WP_Theme_Install_List_Table $wp_list_table
 235   */
 236  function install_theme_information() {
 237      global $wp_list_table;
 238  
 239      $theme = themes_api( 'theme_information', array( 'slug' => wp_unslash( $_REQUEST['theme'] ) ) );
 240  
 241      if ( is_wp_error( $theme ) ) {
 242          wp_die( $theme );
 243      }
 244  
 245      iframe_header( __( 'Theme Installation' ) );
 246      if ( ! isset( $wp_list_table ) ) {
 247          $wp_list_table = _get_list_table( 'WP_Theme_Install_List_Table' );
 248      }
 249      $wp_list_table->theme_installer_single( $theme );
 250      iframe_footer();
 251      exit;
 252  }


Generated: Thu Apr 25 01:00:03 2024 Cross-referenced by PHPXref 0.7.1