X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/177fd6fefd2e3d5a0ea6591c71d660cabdb3c1a4..refs/tags/wordpress-2.9.1:/wp-admin/themes.php diff --git a/wp-admin/themes.php b/wp-admin/themes.php index cb8d082b..c5fd70c6 100644 --- a/wp-admin/themes.php +++ b/wp-admin/themes.php @@ -1,62 +1,198 @@ ' . __('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' ); + 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]); + +uksort( $themes, "strnatcasecmp" ); +$theme_total = count( $themes ); +$per_page = 15; + +if ( isset( $_GET['pagenum'] ) ) + $page = absint( $_GET['pagenum'] ); + +if ( empty($page) ) + $page = 1; + +$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); ?>

+ +
-

- +
+

+
+ + + + +
+
' . __( '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; ?>
+
+ +name ) - continue; +$table = array(); +$rows = ceil(count($theme_names) / 3); +for ( $row = 1; $row <= $rows; $row++ ) + for ( $col = 1; $col <= 3; $col++ ) + $table[$row][$col] = array_shift($theme_names); + +foreach ( $table as $row => $cols ) { +?> + + $theme_name ) { + $class = array('available-theme'); + if ( $row == 1 ) $class[] = 'top'; + if ( $col == 1 ) $class[] = 'left'; + if ( $row == $rows ) $class[] = 'bottom'; + if ( $col == 3 ) $class[] = 'right'; +?> + + + + +
+ 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-preview'; $activate_link = wp_nonce_url("themes.php?action=activate&template=".urlencode($template)."&stylesheet=".urlencode($stylesheet), 'switch-theme_' . $template); -?> -
-

+ $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_text
"; ?> +
- + - +

- +
@@ -122,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.'); ?>

-