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:
parent
736b9d8bcb
commit
3f39fe4b61
|
@ -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&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&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) ); ?> »</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');
|
||||
?>
|
|
@ -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 */
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
?>
|
|
@ -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 = '') {
|
||||
|
|
Loading…
Reference in New Issue