Make WordPress Core


Ignore:
File:
1 edited

Legend:

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

    r17264 r14411  
    1010 * {@internal Missing Short Description}}
    1111 *
    12  * @since 2.0.0
     12 * @since unknown
    1313 *
    1414 * @return unknown
     
    4444 *
    4545 * @param string $template Template directory of the theme to delete
    46  * @param string $redirect Redirect to page when complete.
    4746 * @return mixed
    4847 */
    49 function delete_theme($template, $redirect = '') {
     48function delete_theme($template) {
    5049    global $wp_filesystem;
    5150
     
    5453
    5554    ob_start();
    56     if ( empty( $redirect ) )
    57         $redirect = wp_nonce_url('themes.php?action=delete&template=' . $template, 'delete-theme_' . $template);
    58     if ( false === ($credentials = request_filesystem_credentials($redirect)) ) {
     55    $url = wp_nonce_url('themes.php?action=delete&template=' . $template, 'delete-theme_' . $template);
     56    if ( false === ($credentials = request_filesystem_credentials($url)) ) {
    5957        $data = ob_get_contents();
    6058        ob_end_clean();
     
    109107 * {@internal Missing Short Description}}
    110108 *
    111  * @since 1.5.0
     109 * @since unknown
    112110 *
    113111 * @return unknown
     
    162160 * Get the Page Templates available in this theme
    163161 *
    164  * @since 1.5.0
     162 * @since unknown
    165163 *
    166164 * @return array Key is template name, Value is template name
     
    242240        $details_url = add_query_arg(array('TB_iframe' => 'true', 'width' => 1024, 'height' => 800), $update['url']); //Theme browser inside WP? replace this, Also, theme preview JS will override this on the available list.
    243241        $update_url = wp_nonce_url('update.php?action=upgrade-theme&theme=' . urlencode($stylesheet), 'upgrade-theme_' . $stylesheet);
    244         $update_onclick = 'onclick="if ( confirm(\'' . esc_js( __("Updating this theme will lose any customizations you have made.  'Cancel' to stop, 'OK' to update.") ) . '\') ) {return true;}return false;"';
    245 
    246         if ( !is_multisite() ) {
    247             if ( ! current_user_can('update_themes') )
    248                 printf( '<p><strong>' . __('There is a new version of %1$s available. <a href="%2$s" class="thickbox" title="%1$s">View version %3$s details</a>.') . '</strong></p>', $theme_name, $details_url, $update['new_version']);
    249             else if ( empty($update['package']) )
    250                 printf( '<p><strong>' . __('There is a new version of %1$s available. <a href="%2$s" class="thickbox" title="%1$s">View version %3$s details</a>. <em>Automatic update is unavailable for this theme.</em>') . '</strong></p>', $theme_name, $details_url, $update['new_version']);
    251             else
    252                 printf( '<p><strong>' . __('There is a new version of %1$s available. <a href="%2$s" class="thickbox" title="%1$s">View version %3$s details</a> or <a href="%4$s" %5$s>update automatically</a>.') . '</strong></p>', $theme_name, $details_url, $update['new_version'], $update_url, $update_onclick );
    253         }
    254     }
    255 }
    256 
    257 /**
    258  * Retrieve list of WordPress theme features (aka theme tags)
    259  *
    260  * @since 3.1.0
    261  *
    262  * @return array  Array of features keyed by category with translations keyed by slug.
    263  */
    264 function get_theme_feature_list() {
    265     // Hard-coded list is used if api not accessible.
    266     $features = array(
    267             __('Colors') => array(
    268                 'black'   => __( 'Black' ),
    269                 'blue'    => __( 'Blue' ),
    270                 'brown'   => __( 'Brown' ),
    271                 'green'   => __( 'Green' ),
    272                 'orange'  => __( 'Orange' ),
    273                 'pink'    => __( 'Pink' ),
    274                 'purple'  => __( 'Purple' ),
    275                 'red'     => __( 'Red' ),
    276                 'silver'  => __( 'Silver' ),
    277                 'tan'     => __( 'Tan' ),
    278                 'white'   => __( 'White' ),
    279                 'yellow'  => __( 'Yellow' ),
    280                 'dark'    => __( 'Dark' ),
    281                 'light'   => __( 'Light ')
    282             ),
    283 
    284         __('Columns') => array(
    285             'one-column'    => __( 'One Column' ),
    286             'two-columns'   => __( 'Two Columns' ),
    287             'three-columns' => __( 'Three Columns' ),
    288             'four-columns'  => __( 'Four Columns' ),
    289             'left-sidebar'  => __( 'Left Sidebar' ),
    290             'right-sidebar' => __( 'Right Sidebar' )
    291         ),
    292 
    293         __('Width') => array(
    294             'fixed-width'    => __( 'Fixed Width' ),
    295             'flexible-width' => __( 'Flexible Width' )
    296         ),
    297 
    298         __( 'Features' ) => array(
    299             'blavatar'             => __( 'Blavatar' ),
    300             'buddypress'           => __( 'BuddyPress' ),
    301             'custom-background'    => __( 'Custom Background' ),
    302             'custom-colors'        => __( 'Custom Colors' ),
    303             'custom-header'        => __( 'Custom Header' ),
    304             'custom-menu'          => __( 'Custom Menu' ),
    305             'editor-style'         => __( 'Editor Style' ),
    306             'front-page-post-form' => __( 'Front Page Posting' ),
    307             'microformats'         => __( 'Microformats' ),
    308             'sticky-post'          => __( 'Sticky Post' ),
    309             'theme-options'        => __( 'Theme Options' ),
    310             'threaded-comments'    => __( 'Threaded Comments' ),
    311             'translation-ready'    => __( 'Translation Ready' ),
    312             'rtl-language-support' => __( 'RTL Language Support' )
    313         ),
    314 
    315         __( 'Subject' )  => array(
    316             'holiday' => __( 'Holiday' ),
    317             'photoblogging' => __( 'Photoblogging' ),
    318             'seasonal' => __( 'Seasonal' )
    319         )
    320     );
    321 
    322     if ( !current_user_can('install_themes') )
    323         return $features;
    324 
    325     if ( !$feature_list = get_site_transient( 'wporg_theme_feature_list' ) )
    326         set_site_transient( 'wporg_theme_feature_list', array( ),  10800);
    327 
    328     if ( !$feature_list ) {
    329         $feature_list = themes_api( 'feature_list', array( ) );
    330         if ( is_wp_error( $feature_list ) )
    331             return $features;
    332     }
    333 
    334     if ( !$feature_list )
    335         return $features;
    336 
    337     set_site_transient( 'wporg_theme_feature_list', $feature_list, 10800 );
    338 
    339     $category_translations = array( 'Colors' => __('Colors'), 'Columns' => __('Columns'), 'Width' => __('Width'),
    340                                    'Features' => __('Features'), 'Subject' => __('Subject') );
    341 
    342     // Loop over the wporg canonical list and apply translations
    343     $wporg_features = array();
    344     foreach ( (array) $feature_list as $feature_category => $feature_items ) {
    345         if ( isset($category_translations[$feature_category]) )
    346             $feature_category = $category_translations[$feature_category];
    347         $wporg_features[$feature_category] = array();
    348 
    349         foreach ( $feature_items as $feature ) {
    350             if ( isset($features[$feature_category][$feature]) )
    351                 $wporg_features[$feature_category][$feature] = $features[$feature_category][$feature];
    352             else
    353                 $wporg_features[$feature_category][$feature] = $feature;
    354         }
    355     }
    356 
    357     return $wporg_features;
    358 }
    359 
    360 /**
    361  * Retrieve theme installer pages from WordPress Themes API.
    362  *
    363  * It is possible for a theme to override the Themes API result with three
    364  * filters. Assume this is for themes, which can extend on the Theme Info to
    365  * offer more choices. This is very powerful and must be used with care, when
    366  * overridding the filters.
    367  *
    368  * The first filter, 'themes_api_args', is for the args and gives the action as
    369  * the second parameter. The hook for 'themes_api_args' must ensure that an
    370  * object is returned.
    371  *
    372  * The second filter, 'themes_api', is the result that would be returned.
    373  *
    374  * @since 2.8.0
    375  *
    376  * @param string $action
    377  * @param array|object $args Optional. Arguments to serialize for the Theme Info API.
    378  * @return mixed
    379  */
    380 function themes_api($action, $args = null) {
    381 
    382     if ( is_array($args) )
    383         $args = (object)$args;
    384 
    385     if ( !isset($args->per_page) )
    386         $args->per_page = 24;
    387 
    388     $args = apply_filters('themes_api_args', $args, $action); //NOTE: Ensure that an object is returned via this filter.
    389     $res = apply_filters('themes_api', false, $action, $args); //NOTE: Allows a theme to completely override the builtin WordPress.org API.
    390 
    391     if ( ! $res ) {
    392         $request = wp_remote_post('http://api.wordpress.org/themes/info/1.0/', array( 'body' => array('action' => $action, 'request' => serialize($args))) );
    393         if ( is_wp_error($request) ) {
    394             $res = new WP_Error('themes_api_failed', __('An Unexpected HTTP Error occurred during the API request.'), $request->get_error_message() );
    395         } else {
    396             $res = unserialize($request['body']);
    397             if ( ! $res )
    398             $res = new WP_Error('themes_api_failed', __('An unknown error occurred.'), $request['body']);
    399         }
    400     }
    401     //var_dump(array($args, $res));
    402     return apply_filters('themes_api_result', $res, $action, $args);
     242        $update_onclick = 'onclick="if ( confirm(\'' . esc_js( __("Upgrading this theme will lose any customizations you have made.  'Cancel' to stop, 'OK' to upgrade.") ) . '\') ) {return true;}return false;"';
     243
     244        if ( ! current_user_can('update_themes') )
     245            printf( '<p><strong>' . __('There is a new version of %1$s available. <a href="%2$s" class="thickbox" title="%1$s">View version %3$s Details</a>.') . '</strong></p>', $theme_name, $details_url, $update['new_version']);
     246        else if ( empty($update['package']) )
     247            printf( '<p><strong>' . __('There is a new version of %1$s available. <a href="%2$s" class="thickbox" title="%1$s">View version %3$s Details</a> <em>automatic upgrade unavailable for this theme</em>.') . '</strong></p>', $theme_name, $details_url, $update['new_version']);
     248        else
     249            printf( '<p><strong>' . __('There is a new version of %1$s available. <a href="%2$s" class="thickbox" title="%1$s">View version %3$s Details</a> or <a href="%4$s" %5$s>upgrade automatically</a>.') . '</strong></p>', $theme_name, $details_url, $update['new_version'], $update_url, $update_onclick );
     250    }
    403251}
    404252
Note: See TracChangeset for help on using the changeset viewer.