]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-admin/index.php
Wordpress 2.6.2
[autoinstalls/wordpress.git] / wp-admin / index.php
index a951efd863d16109e6e064757521cabeadfcdac5..2401ef9f941dbdcf4d115967db25d134458d4c58 100644 (file)
@@ -1,8 +1,37 @@
 <?php
-require_once('admin.php'); 
-$title = __('Dashboard'); 
+
+require_once('admin.php');
+
+require_once(ABSPATH . 'wp-admin/includes/dashboard.php');
+
+wp_dashboard_setup();
+
+function index_js() {
+?>
+<script type="text/javascript">
+jQuery(function($) {
+       var ajaxWidgets = {
+               dashboard_incoming_links: 'incominglinks',
+               dashboard_primary: 'devnews',
+               dashboard_secondary: 'planetnews',
+               dashboard_plugins: 'plugins'
+       };
+       $.each( ajaxWidgets, function(i,a) {
+               var e = jQuery('#' + i + ' div.dashboard-widget-content').not('.dashboard-widget-control').find('.widget-loading');
+               if ( e.size() ) { e.parent().load('index-extra.php?jax=' + a); }
+       } );
+});
+</script>
+<?php
+}
+add_action( 'admin_head', 'index_js' );
+
+wp_enqueue_script( 'jquery' );
+wp_admin_css( 'dashboard' );
+
+$title = __('Dashboard');
+$parent_file = 'index.php';
 require_once('admin-header.php');
-require_once (ABSPATH . WPINC . '/rss-functions.php');
 
 $today = current_time('mysql', 1);
 ?>
@@ -11,162 +40,106 @@ $today = current_time('mysql', 1);
 
 <h2><?php _e('Dashboard'); ?></h2>
 
-<div id="zeitgeist">
-<h2><?php _e('Latest Activity'); ?></h2>
+<div id="rightnow">
+<h3 class="reallynow">
+       <span><?php _e('Right Now'); ?></span>
 
-<?php
-$rss = @fetch_rss('http://feeds.technorati.com/cosmos/rss/?url='. trailingslashit(get_option('home')) .'&partner=wordpress');
-if ( isset($rss->items) && 0 != count($rss->items) ) {
-?>
-<div id="incominglinks">
-<h3><?php _e('Incoming Links'); ?> <cite><a href="http://www.technorati.com/search/<?php echo trailingslashit(get_option('home')); ?>?partner=wordpress"><?php _e('More'); ?> &raquo;</a></cite></h3>
-<ul>
-<?php
-$rss->items = array_slice($rss->items, 0, 10);
-foreach ($rss->items as $item ) {
-?>
-       <li><a href="<?php echo wp_filter_kses($item['link']); ?>"><?php echo wp_specialchars($item['title']); ?></a></li>
-<?php } ?>
-</ul>
-</div>
-<?php } ?>
+<?php if ( $can_edit_posts = current_user_can( 'edit_posts' ) ) : ?>
+       <a href="post-new.php" class="rbutton"><strong><?php _e('Write a New Post'); ?></strong></a>
+<?php endif; if ( $can_edit_pages = current_user_can( 'edit_pages' ) ) : ?>
+       <a href="page-new.php" class="rbutton"><?php _e('Write a New Page'); ?></a>
+<?php endif; ?>
+       <br class="clear" />
+</h3>
 
 <?php
-$comments = $wpdb->get_results("SELECT comment_author, comment_author_url, comment_ID, comment_post_ID FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT 5");
-$numcomments = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '0'");
+$num_posts = wp_count_posts( 'post' );
+$num_pages = wp_count_posts( 'page' );
 
-if ( $comments || $numcomments ) :
-?>
-<div>
-<h3><?php _e('Comments'); ?> <a href="edit-comments.php" title="<?php _e('More comments...'); ?>">&raquo;</a></h3>
+$num_cats  = wp_count_terms('category');
 
-<?php if ( $numcomments ) : ?>
-<p><strong><a href="moderation.php"><?php echo sprintf(__('Comments in moderation (%s)'), number_format($numcomments) ); ?> &raquo;</a></strong></p>
-<?php endif; ?>
+$num_tags = wp_count_terms('post_tag');
 
-<ul>
-<?php 
-if ( $comments ) {
-foreach ($comments as $comment) {
-       echo '<li>' . sprintf(__('%1$s on %2$s'), get_comment_author_link(), '<a href="'. get_permalink($comment->comment_post_ID) . '#comment-' . $comment->comment_ID . '">' . get_the_title($comment->comment_post_ID) . '</a>');
-       edit_comment_link(__("Edit"), ' <small>(', ')</small>'); 
-       echo '</li>';
-}
-}
-?>
-</ul>
-</div>
-<?php endif; ?>
+$num_comm = get_comment_count( );
 
+$post_type_texts = array();
 
-<?php
-if ( $recentposts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_date_gmt < '$today' ORDER BY post_date DESC LIMIT 5") ) :
-?>
-<div>
-<h3><?php _e('Posts'); ?> <a href="edit.php" title="<?php _e('More posts...'); ?>">&raquo;</a></h3>
-<ul>
-<?php
-foreach ($recentposts as $post) {
-       if ($post->post_title == '')
-               $post->post_title = sprintf(__('Post #%s'), $post->ID);
-       echo "<li><a href='post.php?action=edit&amp;post=$post->ID'>";
-       the_title();
-       echo '</a></li>';
+if ( !empty($num_posts->publish) ) { // with feeds, anyone can tell how many posts there are.  Just unlink if !current_user_can
+       $post_text = sprintf( __ngettext( '%s post', '%s posts', $num_posts->publish ), number_format_i18n( $num_posts->publish ) );
+       $post_type_texts[] = $can_edit_posts ? "<a href='edit.php'>$post_text</a>" : $post_text;
 }
-?>
-</ul>
-</div>
-<?php endif; ?>
-
-<?php
-if ( $scheduled = $wpdb->get_results("SELECT ID, post_title, post_date_gmt FROM $wpdb->posts WHERE post_status = 'publish' AND post_date_gmt > '$today' ORDER BY post_date ASC") ) :
-?> 
-<div>
-<h3><?php _e('Scheduled Entries:') ?></h3>
-<ul>
-<?php
-foreach ($scheduled as $post) {
-       if ($post->post_title == '')
-               $post->post_title = sprintf(__('Post #%s'), $post->ID);
-       echo "<li>" . sprintf(__('%1$s in %2$s'), "<a href='post.php?action=edit&amp;post=$post->ID' title='" . __('Edit this post') . "'>$post->post_title</a>", human_time_diff( current_time('timestamp', 1), strtotime($post->post_date_gmt. ' GMT') ))  . "</li>";
+if ( $can_edit_pages && !empty($num_pages->publish) ) { // how many pages is not exposed in feeds.  Don't show if !current_user_can
+       $post_type_texts[] = '<a href="edit-pages.php">'.sprintf( __ngettext( '%s page', '%s pages', $num_pages->publish ), number_format_i18n( $num_pages->publish ) ).'</a>';
+}
+if ( $can_edit_posts && !empty($num_posts->draft) ) {
+       $post_type_texts[] = '<a href="edit.php?post_status=draft">'.sprintf( __ngettext( '%s draft', '%s drafts', $num_posts->draft ), number_format_i18n( $num_posts->draft ) ).'</a>';
+}
+if ( $can_edit_posts && !empty($num_posts->future) ) {
+       $post_type_texts[] = '<a href="edit.php?post_status=future">'.sprintf( __ngettext( '%s scheduled post', '%s scheduled posts', $num_posts->future ), number_format_i18n( $num_posts->future ) ).'</a>';
 }
-?> 
-</ul>
-</div>
-<?php endif; ?>
 
-<div>
-<h3><?php _e('Blog Stats'); ?></h3>
-<?php
-$numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'");
-if (0 < $numposts) $numposts = number_format($numposts); 
+if ( current_user_can('publish_posts') && !empty($num_posts->pending) ) {
+       $pending_text = sprintf( __ngettext( 'There is <a href="%1$s">%2$s post</a> pending your review.', 'There are <a href="%1$s">%2$s posts</a> pending your review.', $num_posts->pending ), 'edit.php?post_status=pending', number_format_i18n( $num_posts->pending ) );
+} else {
+       $pending_text = '';
+}
 
-$numcomms = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'");
-if (0 < $numcomms) $numcomms = number_format($numcomms);
+$cats_text = sprintf( __ngettext( '%s category', '%s categories', $num_cats ), number_format_i18n( $num_cats ) );
+$tags_text = sprintf( __ngettext( '%s tag', '%s tags', $num_tags ), number_format_i18n( $num_tags ) );
+if ( current_user_can( 'manage_categories' ) ) {
+       $cats_text = "<a href='categories.php'>$cats_text</a>";
+       $tags_text = "<a href='edit-tags.php'>$tags_text</a>";
+}
 
-$numcats = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->categories");
-if (0 < $numcats) $numcats = number_format($numcats);
-?>
-<p><?php printf(__('There are currently %1$s <a href="%2$s" title="Posts">posts</a> and %3$s <a href="%4$s" title="Comments">comments</a>, contained within %5$s <a href="%6$s" title="categories">categories</a>.'), $numposts, 'edit.php',  $numcomms, 'edit-comments.php', $numcats, 'categories.php'); ?></p>
-</div>
+$total_comments = sprintf( __ngettext( '%1$s total', '%1$s total', $num_comm['total_comments'] ), number_format_i18n($num_comm['total_comments']) );
+$approved_comments = sprintf( __ngettext( '%1$s approved', '%1$s approved', $num_comm['approved'] ), number_format_i18n($num_comm['approved']) );
+$spam_comments = sprintf( __ngettext( '%1$s spam', '%1$s spam', $num_comm['spam'] ), number_format_i18n($num_comm['spam']) );
+$moderated_comments = sprintf( __ngettext( '%1$s awaiting moderation', '%1$s awaiting moderation', $num_comm['awaiting_moderation'] ), number_format_i18n($num_comm['awaiting_moderation']) );
 
-<?php do_action('activity_box_end'); ?>
-</div>
+if( current_user_can( 'moderate_comments' ) ) {
+       $total_comments = "<a href='edit-comments.php'>{$total_comments}</a>";
+       $approved_comments = "<a href='edit-comments.php?comment_status=approved'>{$approved_comments}</a>";
+       $moderated_comments = "<a href='edit-comments.php?comment_status=moderated'>{$moderated_comments}</a>";
+}
 
-<h3><?php _e('Welcome to WordPress'); ?></h3>
+$comm_text = sprintf( __ngettext( 'You have %1$s comment, %2$s, %3$s and %4$s.', 'You have %1$s comments, %2$s, %3$s and %4$s.', $num_comm['total_comments'] ), $total_comments, $approved_comments, $spam_comments, $moderated_comments );
 
-<p><?php _e('Use these links to get started:'); ?></p>
+$post_type_text = implode(', ', $post_type_texts);
 
-<ul>
-<li><a href="post.php"><?php _e('Write a post'); ?></a></li>
-<li><a href="profile.php"><?php _e('Update your profile or change your password'); ?></a></li>
-<li><a href="link-add.php"><?php _e('Add a link to your blogroll'); ?></a></li>
-<li><a href="themes.php"><?php _e('Change your site&#8217;s look or theme'); ?></a></li>
-</ul>
+// There is always a category
+$sentence = sprintf( __( 'You have %1$s, contained within %2$s and %3$s. %4$s %5$s' ), $post_type_text, $cats_text, $tags_text, $pending_text, $comm_text );
+$sentence = apply_filters( 'dashboard_count_sentence', $sentence, $post_type_text, $cats_text, $tags_text, $pending_text, $comm_text );
 
-<p><?php _e("Below is the latest news from the official WordPress development blog, click on a title to read the full entry. If you need help with WordPress please see our <a href='http://codex.wordpress.org/'>great documentation</a> or if that doesn't help visit the <a href='http://wordpress.org/support/'>support forums</a>."); ?></p>
-<?php
-$rss = @fetch_rss('http://wordpress.org/development/feed/');
-if ( isset($rss->items) && 0 != count($rss->items) ) {
 ?>
-<h3><?php _e('WordPress Development Blog'); ?></h3>
+<p class="youhave"><?php echo $sentence; ?></p>
 <?php
-$rss->items = array_slice($rss->items, 0, 3);
-foreach ($rss->items as $item ) {
-?>
-<h4><a href='<?php echo wp_filter_kses($item['link']); ?>'><?php echo wp_specialchars($item['title']); ?></a> &#8212; <?php printf(__('%s ago'), human_time_diff(strtotime($item['pubdate'], time() ) ) ); ?></h4>
-<p><?php echo $item['description']; ?></p>
-<?php
-       }
-}
+$ct = current_theme_info();
+$sidebars_widgets = wp_get_sidebars_widgets();
+$num_widgets = array_reduce( $sidebars_widgets, create_function( '$prev, $curr', 'return $prev+count($curr);' ), 0 );
+$widgets_text = sprintf( __ngettext( '%d widget', '%d widgets', $num_widgets ), $num_widgets );
+if ( $can_switch_themes = current_user_can( 'switch_themes' ) )
+       $widgets_text = "<a href='widgets.php'>$widgets_text</a>";
 ?>
+<p class="youare">
+       <?php printf( __( 'You are using the %1$s theme with %2$s.' ), $ct->title, $widgets_text ); ?>
+       <?php if ( $can_switch_themes ) : ?>
+               <a href="themes.php" class="rbutton"><?php _e('Change Theme'); ?></a>
+       <?php endif; ?>
+       <?php update_right_now_message(); ?>
+</p>
+<?php do_action( 'rightnow_end' ); ?>
+<?php do_action( 'activity_box_end' ); ?>
+</div><!-- rightnow -->
 
+<br class="clear" />
 
-<?php
-$rss = @fetch_rss('http://planet.wordpress.org/feed/');
-if ( isset($rss->items) && 0 != count($rss->items) ) {
-?>
-<div id="planetnews">
-<h3><?php _e('Other WordPress News'); ?> <a href="http://planet.wordpress.org/"><?php _e('more'); ?> &raquo;</a></h3>
-<ul>
-<?php
-$rss->items = array_slice($rss->items, 0, 20);
-foreach ($rss->items as $item ) {
-?>
-<li><a href='<?php echo wp_filter_kses($item['link']); ?>'><?php echo wp_specialchars($item['title']); ?></a></li>
-<?php
-       }
-?>
-</ul>
-</div>
-<?php
-}
-?>
-<div style="clear: both">&nbsp;
-<br clear="all" />
-</div>
-</div>
+<div id="dashboard-widgets-wrap">
 
-<?php
-require('./admin-footer.php');
-?>
+<?php wp_dashboard(); ?>
+
+
+</div><!-- dashboard-widgets-wrap -->
+
+</div><!-- wrap -->
+
+<?php require('./admin-footer.php'); ?>