First pass at dashboard. Hat tip: Jesuit.

git-svn-id: http://svn.automattic.com/wordpress/trunk@1976 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
saxmatt 2004-12-19 00:10:10 +00:00
parent 736b9d8bcb
commit 3f39fe4b61
4 changed files with 173 additions and 15 deletions

View File

@ -1,14 +1,121 @@
<?php
require_once('admin.php');
$title = __('Dashboard');
require_once('admin-header.php');
require('../wp-config.php');
auth_redirect();
$today = current_time('mysql');
?>
get_currentuserinfo();
if (0 == $user_level) {
$redirect_to = get_settings('siteurl') . '/wp-admin/profile.php';
} else {
$redirect_to = get_settings('siteurl') . '/wp-admin/post.php';
<div class="wrap">
<div id="zeitgeist">
<h2><?php _e('Latest Activity'); ?></h2>
<?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'); ?></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>';
}
header ("Location: $redirect_to");
?>
</ul>
</div>
<?php endif; ?>
<?php
if ( $scheduled = $wpdb->get_results("SELECT ID, post_title, post_date FROM $wpdb->posts WHERE post_status = 'publish' AND post_date_gmt > '$today'") ) :
?>
<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><a href='post.php?action=edit&amp;post=$post->ID' title='" . __('Edit this post') . "'>$post->post_title</a> in " . human_time_diff( time(), strtotime($post->post_date) ) . "</li>";
}
?>
</ul>
</div>
<?php endif; ?>
<?php
if ( $comments = $wpdb->get_results("SELECT comment_author, comment_author_url, comment_ID, comment_post_ID FROM $wpdb->comments ORDER BY comment_date_gmt DESC LIMIT 5") ) :
?>
<div>
<h3><?php _e('Comments'); ?></h3>
<ul>
<?php
foreach ($comments as $comment) {
echo '<li>' . sprintf('%s on %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>
<?php
if ( $numcomments = $wpdb->get_var("SELECT COUNT(*) FROM $tablecomments WHERE comment_approved = '0'") ) :
?>
<p><a href="moderation.php"><?php echo sprintf(__('There are comments in moderation (%s)'), number_format($numcomments) ); ?> &raquo;</a></p>
<?php endif; ?>
</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);
$numcomms = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'");
if (0 < $numcomms) $numcomms = number_format($numcomms);
$numcats = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->categories");
if (0 < $numcats) $numcats = number_format($numcats);
?>
<p>There are currently <?php echo $numposts ?> <a href="edit.php" title="posts">posts</a> and <?php echo $numcomms ?> <a href="edit-comments.php" title="Comments">comments</a>, contained within <?php echo $numcats ?> <a href="categories.php" title="categories">categories</a>.</p>
</div>
</div>
<h2><?php _e('Dashboard'); ?></h2>
<br clear="all" />
</div>
<div class="wrap">
<p>
<strong>
<?php _e('Your Drafts:') ?>
</strong>
<br />
<?php
get_currentuserinfo();
$drafts = $wpdb->get_results("SELECT ID, post_title FROM $tableposts WHERE post_status = 'draft' AND post_author = $user_ID");
if ($drafts) {
?>
<?php
$i = 0;
foreach ($drafts as $draft) {
if (0 != $i)
echo ', ';
$draft->post_title = stripslashes($draft->post_title);
if ($draft->post_title == '')
$draft->post_title = sprintf(__('Post #%s'), $draft->ID);
echo "<a href='post.php?action=edit&post=$draft->ID' title='" . __('Edit this draft') . "'>$draft->post_title</a>";
++$i;
}
}else{
echo ('No Entries found.');
}
?>
</p>
</div>
<?php
require('./admin-footer.php');
?>

View File

@ -1,3 +1,28 @@
#zeitgeist {
width: 27%;
float: right;
font-size: 90%;
background-color: #eee;
padding: 1em;
border: 1px solid #ccc;
}
#zeitgeist h2 {
border-bottom: none;
}
#zeitgeist ul {
margin: 0 0 .3em .6em;
padding: 0 0 0 .6em;
}
#zeitgeist li, #zeitgeist p {
margin: .2em 0;
}
#zeitgeist h3 {
border-top: 1px solid #ccc;
font-size: 16px;
margin: .5em 0;
}
* html #poststuff {
height: 100%; /* kill peekaboo bug in IE */
}

View File

@ -550,4 +550,27 @@ function sanitize_email($email) {
return preg_replace('/[^a-z0-9+_.@-]/i', '', $email);
}
function human_time_diff( $from, $to = '' ) {
if ( empty($to) )
$to = time();
$diff = (int) ($to - $from);
if ($diff <= 3600) {
$mins = round($diff / 60);
$since = sprintf( __('%s mins', $mins) );
} else if (($diff <= 86400) && ($diff > 3600)) {
$hours = round($diff / 3600);
if ($hours <= 1)
$since = __('1 hour');
else
$since = sprintf( __('%s hours'), $hours );
} elseif ($diff >= 86400) {
$days = round($diff / 86400);
if ($days <= 1)
$since = __('1 day');
else
$since = sprintf( __('%s days'), $days );
}
return $since;
}
?>

View File

@ -46,13 +46,16 @@ function the_title_rss() {
echo $title;
}
function get_the_title() {
global $post;
$output = $post->post_title;
if (!empty($post->post_password)) { // if there's a password
$output = 'Protected: ' . $output;
function get_the_title($id = 0) {
global $post, $wpdb;
$title = $post->post_title;
if ( 0 != $id )
$title = $wpdb->get_var("SELECT post_title FROM $wpdb->posts WHERE ID = $id");
if ( !empty($post->post_password) ) { // if there's a password
$title = 'Protected: ' . $title;
}
return $output;
return $title;
}
function the_content($more_link_text = '(more...)', $stripteaser = 0, $more_file = '') {