WordPress.org

Make WordPress Core

Changeset 15655


Ignore:
Timestamp:
09/24/2010 03:28:28 PM (8 years ago)
Author:
ryan
Message:

get_theme_feature_list() replaces install_themes_feature_list(). Does translation and works if feature_list is not accessible from api.wordpress.org. see #14936

Location:
trunk/wp-admin/includes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/theme-install.php

    r15519 r15655  
    7070 *
    7171 * @since 2.8.0
     72 *
     73 * @deprecated since 3.1.0  Use get_theme_feature_list() instead.
    7274 *
    7375 * @return array
     
    125127<p class="install-help"><?php _e('Find a theme based on specific features') ?></p>
    126128    <?php
    127     $feature_list = install_themes_feature_list( );
     129    $feature_list = get_theme_feature_list( );
    128130    echo '<div class="feature-filter">';
    129     $trans = array ('Colors' => __('Colors'), 'black' => __('Black'), 'blue' => __('Blue'), 'brown' => __('Brown'),
    130         'green' => __('Green'), 'orange' => __('Orange'), 'pink' => __('Pink'), 'purple' => __('Purple'), 'red' => __('Red'),
    131         'silver' => __('Silver'), 'tan' => __('Tan'), 'white' => __('White'), 'yellow' => __('Yellow'), 'dark' => __('Dark'),
    132         'light' => __('Light'), 'Columns' => __('Columns'), 'one-column' => __('One Column'), 'two-columns' => __('Two Columns'),
    133         'three-columns' => __('Three Columns'), 'four-columns' => __('Four Columns'), 'left-sidebar' => __('Left Sidebar'),
    134         'right-sidebar' => __('Right Sidebar'), 'Width' => __('Width'), 'fixed-width' => __('Fixed Width'), 'flexible-width' => __('Flexible Width'),
    135         'Features' => __('Features'), 'custom-colors' => __('Custom Colors'), 'custom-header' => __('Custom Header'), 'theme-options' => __('Theme Options'),
    136         'threaded-comments' => __('Threaded Comments'), 'sticky-post' => __('Sticky Post'), 'microformats' => __('Microformats'),
    137         'Subject' => __('Subject'), 'holiday' => __('Holiday'), 'photoblogging' => __('Photoblogging'), 'seasonal' => __('Seasonal'),
    138     );
    139131
    140132    foreach ( (array) $feature_list as $feature_name => $features ) {
    141         if ( isset($trans[$feature_name]) )
    142              $feature_name = $trans[$feature_name];
    143133        $feature_name = esc_html( $feature_name );
    144134        echo '<div class="feature-name">' . $feature_name . '</div>';
    145135
    146136        echo '<ol style="float: left; width: 725px;" class="feature-group">';
    147         foreach ( $features as $feature ) {
    148             $feature_name = $feature;
    149             if ( isset($trans[$feature]) )
    150                 $feature_name = $trans[$feature];
     137        foreach ( $features as $feature => $feature_name ) {
    151138            $feature_name = esc_html( $feature_name );
    152139            $feature = esc_attr($feature);
  • trunk/wp-admin/includes/theme.php

    r15300 r15655  
    251251}
    252252
     253/**
     254 * Retrieve list of WordPress theme features (aka theme tags)
     255 *
     256 * @since 3.1.0
     257 *
     258 * @return array  Array of features keyed by category with translations keyed by slug.
     259 */
     260function get_theme_feature_list() {
     261    // Hard-coded list is used if api not accessible.
     262    $features = array(
     263            __('Colors') => array(
     264                'black'   => __( 'Black' ),
     265                'blue'    => __( 'Blue' ),
     266                'brown'   => __( 'Brown' ),
     267                'green'   => __( 'Green' ),
     268                'orange'  => __( 'Orange' ),
     269                'pink'    => __( 'Pink' ),
     270                'purple'  => __( 'Purple' ),
     271                'red'     => __( 'Red' ),
     272                'silver'  => __( 'Silver' ),
     273                'tan'     => __( 'Tan' ),
     274                'white'   => __( 'White' ),
     275                'yellow'  => __( 'Yellow' ),
     276                'dark'    => __( 'Dark' ),
     277                'light'   => __( 'Light ')
     278            ),
     279
     280        __('Columns') => array(
     281            'one-column'    => __( 'One Column' ),
     282            'two-columns'   => __( 'Two Columns' ),
     283            'three-columns' => __( 'Three Columns' ),
     284            'four-columns'  => __( 'Four Columns' ),
     285            'left-sidebar'  => __( 'Left Sidebar' ),
     286            'right-sidebar' => __( 'Right Sidebar' )
     287        ),
     288
     289        __('Width') => array(
     290            'fixed-width'    => __( 'Fixed Width' ),
     291            'flexible-width' => __( 'Flexible Width' )
     292        ),
     293
     294        __( 'Features' ) => array(
     295            'blavatar'             => __( 'Blavatar' ),
     296            'buddypress'           => __( 'BuddyPress' ),
     297            'custom-background'    => __( 'Custom Background' ),
     298            'custom-colors'        => __( 'Custom Colors' ),
     299            'custom-header'        => __( 'Custom Header' ),
     300            'custom-menu'          => __( 'Custom Menu' ),
     301            'editor-style'         => __( 'Editor Style' ),
     302            'front-page-post-form' => __( 'Front Page Posting' ),
     303            'microformats'         => __( 'Microformats' ),
     304            'sticky-post'          => __( 'Sticky Post' ),
     305            'theme-options'        => __( 'Theme Options' ),
     306            'threaded-comments'    => __( 'Threaded Comments' ),
     307            'translation-ready'    => __( 'Translation Ready' ),
     308            'rtl-language-support' => __( 'RTL Language Support' )
     309        ),
     310
     311        __( 'Subject' )  => array(
     312            'holiday' => __( 'Holiday' ),
     313            'photoblogging' => __( 'Photoblogging' ),
     314            'seasonal' => __( 'Seasonal' )
     315        )
     316    );
     317
     318    if ( !current_user_can('install_themes') )
     319        return $features;
     320
     321    if ( !$feature_list = get_site_transient( 'wporg_theme_feature_list' ) )
     322        set_site_transient( 'wporg_theme_feature_list', array( ),  10800);
     323
     324    if ( !$feature_list ) {
     325        $feature_list = themes_api( 'feature_list', array( ) );
     326        if ( is_wp_error( $feature_list ) )
     327            return $features;
     328    }
     329
     330    if ( !$feature_list )
     331        return $features;
     332
     333    set_site_transient( 'wporg_theme_feature_list', $feature_list, 10800 );
     334
     335    $category_translations = array( 'Colors' => __('Colors'), 'Columns' => __('Columns'), 'Width' => __('Width'),
     336                                   'Features' => __('Features'), 'Subject' => __('Subject') );
     337
     338    // Loop over the wporg canonical list and apply translations
     339    $wporg_features = array();
     340    foreach ( (array) $feature_list as $feature_category => $feature_items ) {
     341        if ( isset($category_translations[$feature_category]) )
     342            $feature_category = $category_translations[$feature_category];
     343        $wporg_features[$feature_category] = array();
     344
     345        foreach ( $feature_items as $feature ) {
     346            if ( isset($features[$feature_category][$feature]) )
     347                $wporg_features[$feature_category][$feature] = $features[$feature_category][$feature];
     348            else
     349                $wporg_features[$feature_category][$feature] = $feature;
     350        }
     351    }
     352
     353    return $wporg_features;
     354}
     355
    253356?>
Note: See TracChangeset for help on using the changeset viewer.