2004-09-11 12:12:40 -04:00
< ? php
2004-10-18 23:03:06 -04:00
require_once ( 'admin.php' );
2004-09-11 12:12:40 -04:00
if ( isset ( $_GET [ 'action' ]) ) {
check_admin_referer ();
2005-09-05 19:33:10 -04:00
2004-09-11 12:12:40 -04:00
if ( 'activate' == $_GET [ 'action' ]) {
2005-09-05 19:33:10 -04:00
if ( isset ( $_GET [ 'template' ]) )
update_option ( 'template' , $_GET [ 'template' ]);
if ( isset ( $_GET [ 'stylesheet' ]) )
update_option ( 'stylesheet' , $_GET [ 'stylesheet' ]);
2004-10-06 02:20:52 -04:00
do_action ( 'switch_theme' , get_current_theme ());
2005-09-05 19:33:10 -04:00
header ( 'Location: themes.php?activated=true' );
exit ;
2004-09-11 12:12:40 -04:00
}
2005-09-05 19:33:10 -04:00
}
2004-09-11 12:12:40 -04:00
$title = __ ( 'Manage Themes' );
$parent_file = 'themes.php' ;
require_once ( 'admin-header.php' );
?>
2005-09-05 19:33:10 -04:00
2004-09-16 14:09:32 -04:00
< ? php if ( ! validate_current_theme () ) : ?>
2005-08-07 21:13:22 -04:00
< div id = " message1 " class = " updated fade " >< p >< ? php _e ( 'The active theme is broken. Reverting to the default theme.' ); ?> </p></div>
2005-09-05 19:33:10 -04:00
< ? php elseif ( isset ( $_GET [ 'activated' ]) ) : ?>
2005-11-17 05:10:10 -05:00
< div id = " message2 " class = " updated fade " >< p >< ? php printf ( __ ( 'New theme activated. <a href="%s">View site »</a>' ), get_bloginfo ( 'home' ) . '/' ); ?> </p></div>
2004-09-14 08:01:31 -04:00
< ? php endif ; ?>
2004-09-11 12:12:40 -04:00
< ? php
$themes = get_themes ();
2005-09-05 19:33:10 -04:00
$ct = current_theme_info ();
2004-09-11 12:12:40 -04:00
?>
2004-09-14 08:01:31 -04:00
< div class = " wrap " >
< h2 >< ? php _e ( 'Current Theme' ); ?> </h2>
< div id = " currenttheme " >
2005-09-05 19:33:10 -04:00
< ? php if ( $ct -> screenshot ) : ?>
< img src = " <?php echo get_option('siteurl') . '/' . $ct->stylesheet_dir . '/' . $ct->screenshot ; ?> " alt = " <?php _e('Current theme preview'); ?> " />
2005-08-07 06:11:30 -04:00
< ? php endif ; ?>
2005-09-05 19:33:10 -04:00
< h3 >< ? php printf ( __ ( '%1$s %2$s by %3$s' ), $ct -> title , $ct -> version , $ct -> author ) ; ?> </h3>
< p >< ? php echo $ct -> description ; ?> </p>
< ? php if ( $ct -> parent_theme ) { ?>
< p >< ? php printf ( __ ( 'The template files are located in <code>%2$s</code>. The stylesheet files are located in <code>%3$s</code>. <strong>%4$s</strong> uses templates from <strong>%5$s</strong>. Changes made to the templates will affect both themes.' ), $ct -> title , $ct -> template_dir , $ct -> stylesheet_dir , $ct -> title , $ct -> parent_theme ); ?> </p>
2004-09-11 12:12:40 -04:00
< ? php } else { ?>
2005-09-05 19:33:10 -04:00
< p >< ? php printf ( __ ( 'All of this theme’s files are located in <code>%2$s</code>.' ), $ct -> title , $ct -> template_dir , $ct -> stylesheet_dir ); ?> </p>
2004-09-11 12:12:40 -04:00
< ? php } ?>
2004-09-14 08:01:31 -04:00
</ div >
2004-09-11 12:12:40 -04:00
2005-08-07 04:58:10 -04:00
< h2 >< ? php _e ( 'Available Themes' ); ?> </h2>
2004-09-14 08:01:31 -04:00
< ? php if ( 1 < count ( $themes ) ) { ?>
2004-09-11 12:12:40 -04:00
2005-08-07 06:11:30 -04:00
< ? php
$style = '' ;
$theme_names = array_keys ( $themes );
natcasesort ( $theme_names );
foreach ( $theme_names as $theme_name ) {
2006-01-24 02:38:29 -05:00
if ( $theme_name == $ct -> name )
2005-08-07 06:11:30 -04:00
continue ;
$template = $themes [ $theme_name ][ 'Template' ];
$stylesheet = $themes [ $theme_name ][ 'Stylesheet' ];
$title = $themes [ $theme_name ][ 'Title' ];
$version = $themes [ $theme_name ][ 'Version' ];
$description = $themes [ $theme_name ][ 'Description' ];
$author = $themes [ $theme_name ][ 'Author' ];
$screenshot = $themes [ $theme_name ][ 'Screenshot' ];
$stylesheet_dir = $themes [ $theme_name ][ 'Stylesheet Dir' ];
2005-09-05 19:33:10 -04:00
$activate_link = " themes.php?action=activate&template= $template &stylesheet= $stylesheet " ;
2005-08-07 06:11:30 -04:00
?>
< div class = " available-theme " >
2005-09-05 19:33:10 -04:00
< h3 >< a href = " <?php echo $activate_link ; ?> " >< ? php echo " $title $version " ; ?> </a></h3>
< a href = " <?php echo $activate_link ; ?> " class = " screenshot " >
2005-08-07 06:11:30 -04:00
< ? php if ( $screenshot ) : ?>
< img src = " <?php echo get_option('siteurl') . '/' . $stylesheet_dir . '/' . $screenshot ; ?> " alt = " " />
< ? php endif ; ?>
2005-09-05 19:33:10 -04:00
</ a >
2005-08-07 06:11:30 -04:00
< p >< ? php echo $description ; ?> </p>
</ div >
2005-09-05 19:33:10 -04:00
< ? php } // end foreach theme_names ?>
2005-03-11 11:53:16 -05:00
2005-09-05 19:33:10 -04:00
< ? php } ?>
2004-10-24 19:48:51 -04:00
< ? php
// List broken themes, if any.
$broken_themes = get_broken_themes ();
2005-09-05 19:33:10 -04:00
if ( count ( $broken_themes ) ) {
2004-10-24 19:48:51 -04:00
?>
< h2 >< ? php _e ( 'Broken Themes' ); ?> </h2>
< p >< ? php _e ( 'The following themes are installed but incomplete. Themes must have a stylesheet and a template.' ); ?> </p>
< table width = " 100% " cellpadding = " 3 " cellspacing = " 3 " >
< tr >
< th >< ? php _e ( 'Name' ); ?> </th>
< th >< ? php _e ( 'Description' ); ?> </th>
</ tr >
< ? php
$theme = '' ;
$theme_names = array_keys ( $broken_themes );
natcasesort ( $theme_names );
foreach ( $theme_names as $theme_name ) {
$title = $broken_themes [ $theme_name ][ 'Title' ];
$description = $broken_themes [ $theme_name ][ 'Description' ];
$theme = ( 'class="alternate"' == $theme ) ? '' : 'class="alternate"' ;
echo "
< tr $theme >
< td > $title </ td >
< td > $description </ td >
</ tr > " ;
}
?>
</ table >
< ? php
}
?>
2005-05-09 07:37:36 -04:00
< h2 >< ? php _e ( 'Get More Themes' ); ?> </h2>
2005-09-05 19:33:10 -04:00
< p >< ? php _e ( 'You can find additional themes for your site in the <a href="http://wordpress.org/extend/themes/">WordPress theme directory</a>. To install a theme you generally just need to upload the theme folder into your <code>wp-content/themes</code> directory. Once a theme is uploaded, you should see it on this page.' ); ?> </p>
2005-05-09 07:37:36 -04:00
2004-09-11 12:12:40 -04:00
</ div >
2005-11-17 05:10:10 -05:00
< ? php require ( 'admin-footer.php' ); ?>