X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/76aea3697c6043c1613370f172395b4f65ee71f0..refs/tags/wordpress-2.9.1:/wp-admin/themes.php diff --git a/wp-admin/themes.php b/wp-admin/themes.php index 22c52cea..c5fd70c6 100644 --- a/wp-admin/themes.php +++ b/wp-admin/themes.php @@ -1,19 +1,44 @@ ' . __('Themes give your WordPress style. Once a theme is installed, you may preview it, activate it or deactivate it here.') . '

'; +if ( current_user_can('install_themes') ) { + $help .= '

' . sprintf(__('You can find additional themes for your site by using the new Theme Browser/Installer functionality or by browsing the WordPress Theme Directory directly and installing manually. To install a theme manually, upload its ZIP archive with the new uploader or copy its folder via FTP into your wp-content/themes directory.'), 'theme-install.php', 'theme-install.php?tab=upload' ) . '

'; + $help .= '

' . __('Once a theme is uploaded, you should see it on this page.') . '

' ; +} + +add_contextual_help('themes', $help); + add_thickbox(); wp_enqueue_script( 'theme-preview' ); @@ -22,15 +47,22 @@ require_once('admin-header.php');

- -

Visit site'), get_bloginfo('url') . '/'); ?>

+ +

widgets settings page to configure them.'), admin_url('widgets.php') ); ?>

+

Visit site'), get_bloginfo('url') . '/'); ?>

+

name]); -ksort( $themes ); +uksort( $themes, "strnatcasecmp" ); $theme_total = count( $themes ); $per_page = 15; @@ -45,44 +77,96 @@ $start = $offset = ( $page - 1 ) * $per_page; $page_links = paginate_links( array( 'base' => add_query_arg( 'pagenum', '%#%' ) . '#themenav', 'format' => '', + 'prev_text' => __('«'), + 'next_text' => __('»'), 'total' => ceil($theme_total / $per_page), 'current' => $page )); $themes = array_slice( $themes, $start, $per_page ); +/** + * Check if there is an update for a theme available. + * + * Will display link, if there is an update available. + * + * @since 2.7.0 + * + * @param object $theme Theme data object. + * @return bool False if no valid info was passed. + */ +function theme_update_available( $theme ) { + static $themes_update; + if ( !isset($themes_update) ) + $themes_update = get_transient('update_themes'); + + if ( is_object($theme) && isset($theme->stylesheet) ) + $stylesheet = $theme->stylesheet; + elseif ( is_array($theme) && isset($theme['Stylesheet']) ) + $stylesheet = $theme['Stylesheet']; + else + return false; //No valid info passed. + + if ( isset($themes_update->response[ $stylesheet ]) ) { + $update = $themes_update->response[ $stylesheet ]; + $theme_name = is_object($theme) ? $theme->name : (is_array($theme) ? $theme['Name'] : ''); + $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. + $update_url = wp_nonce_url('update.php?action=upgrade-theme&theme=' . urlencode($stylesheet), 'upgrade-theme_' . $stylesheet); + $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;"'; + + if ( ! current_user_can('update_themes') ) + printf( '

' . __('There is a new version of %1$s available. View version %3$s Details.') . '

', $theme_name, $details_url, $update['new_version']); + else if ( empty($update->package) ) + printf( '

' . __('There is a new version of %1$s available. View version %3$s Details automatic upgrade unavailable for this theme.') . '

', $theme_name, $details_url, $update['new_version']); + else + printf( '

' . __('There is a new version of %1$s available. View version %3$s Details or upgrade automatically.') . '

', $theme_name, $details_url, $update['new_version'], $update_url, $update_onclick ); + } +} + ?>
-

+ +

+ +

screenshot ) : ?> -<?php _e('Current theme preview'); ?> +<?php _e('Current theme preview'); ?> -

title, $ct->version, $ct->author) ; ?>

-

description; ?>

+

title, $ct->version, $ct->author) ; ?>

+

description; ?>

parent_theme) { ?> -

%2$s. The stylesheet files are located in %3$s. %4$s uses templates from %5$s. Changes made to the templates will affect both themes.'), $ct->title, $ct->template_dir, $ct->stylesheet_dir, $ct->title, $ct->parent_theme); ?>

+

%2$s. The stylesheet files are located in %3$s. %4$s uses templates from %5$s. Changes made to the templates will affect both themes.'), $ct->title, str_replace( WP_CONTENT_DIR, '', $ct->template_dir ), str_replace( WP_CONTENT_DIR, '', $ct->stylesheet_dir ), $ct->title, $ct->parent_theme); ?>

-

%2$s.'), $ct->title, $ct->template_dir, $ct->stylesheet_dir); ?>

+

%2$s.'), $ct->title, str_replace( WP_CONTENT_DIR, '', $ct->template_dir ), str_replace( WP_CONTENT_DIR, '', $ct->stylesheet_dir ) ); ?>

tags ) : ?>

tags); ?>

+ +
-

-
+
+

+
+ +
-$page_links
"; ?> -
+
' . __( 'Displaying %s–%s of %s' ) . '%s', + number_format_i18n( $start + 1 ), + number_format_i18n( min( $page * $per_page, $theme_total ) ), + number_format_i18n( $theme_total ), + $page_links +); echo $page_links_text; ?>
-
- $theme_name ) { $author = $themes[$theme_name]['Author']; $screenshot = $themes[$theme_name]['Screenshot']; $stylesheet_dir = $themes[$theme_name]['Stylesheet Dir']; - $preview_link = clean_url( get_option('home') . '/'); - $preview_link = add_query_arg( array('preview' => 1, 'template' => $template, 'stylesheet' => $stylesheet, 'TB_iframe' => 'true', 'width' => 600, 'height' => 400 ), $preview_link ); - $preview_text = attribute_escape( sprintf( __('Preview of "%s"'), $title ) ); + $template_dir = $themes[$theme_name]['Template Dir']; + $parent_theme = $themes[$theme_name]['Parent Theme']; + $theme_root = $themes[$theme_name]['Theme Root']; + $theme_root_uri = $themes[$theme_name]['Theme Root URI']; + $preview_link = esc_url(get_option('home') . '/'); + if ( is_ssl() ) + $preview_link = str_replace( 'http://', 'https://', $preview_link ); + $preview_link = htmlspecialchars( add_query_arg( array('preview' => 1, 'template' => $template, 'stylesheet' => $stylesheet, 'TB_iframe' => 'true' ), $preview_link ) ); + $preview_text = esc_attr( sprintf( __('Preview of “%s”'), $title ) ); $tags = $themes[$theme_name]['Tags']; - $thickbox_class = 'thickbox'; + $thickbox_class = 'thickbox thickbox-preview'; $activate_link = wp_nonce_url("themes.php?action=activate&template=".urlencode($template)."&stylesheet=".urlencode($stylesheet), 'switch-theme_' . $template); - $activate_text = attribute_escape( sprintf( __('Activate "%s"'), $title ) ); + $activate_text = esc_attr( sprintf( __('Activate “%s”'), $title ) ); + $actions = array(); + $actions[] = '' . __('Activate') . ''; + $actions[] = '' . __('Preview') . ''; + if ( current_user_can('update_themes') ) + $actions[] = '' . __('Delete') . ''; + $actions = apply_filters('theme_action_links', $actions, $themes[$theme_name]); + + $actions = implode ( ' | ', $actions ); ?> - + - + -

-

+

+

+ + +

%2$s. The stylesheet files are located in %3$s. %4$s uses templates from %5$s. Changes made to the templates will affect both themes.'), $title, str_replace( WP_CONTENT_DIR, '', $template_dir ), str_replace( WP_CONTENT_DIR, '', $stylesheet_dir ), $title, $parent_theme); ?>

+ +

%2$s.'), $title, str_replace( WP_CONTENT_DIR, '', $template_dir ), str_replace( WP_CONTENT_DIR, '', $stylesheet_dir ) ); ?>

+ -

- +

-
+
- - + +

+
-$page_links
"; ?> +$page_links_text"; ?>
@@ -164,7 +272,7 @@ if ( count($broken_themes) ) {

- +
@@ -191,10 +299,6 @@ if ( count($broken_themes) ) { - -

-

WordPress theme directory. To install a theme you generally just need to upload the theme folder into your wp-content/themes directory. Once a theme is uploaded, you should see it on this page.'); ?>

-