Make WordPress Core


Ignore:
Timestamp:
05/28/2007 06:34:06 PM (17 years ago)
Author:
ryan
Message:

Better draft, private, and future post/page management from mdawaffe. fixes #3945

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/edit.php

    r5331 r5575  
    77require_once('admin-header.php');
    88
    9 $_GET['m'] = (int) $_GET['m'];
    10 
    11 $drafts = get_users_drafts( $user_ID );
    12 $other_drafts = get_others_drafts( $user_ID);
    13 
    14 if ($drafts || $other_drafts) {
    15 ?>
     9$_GET['m']   = (int) $_GET['m'];
     10$_GET['cat'] = (int) $_GET['cat'];
     11$post_stati  = array(   //  array( adj, noun )
     12            'draft' => array(__('Draft'), _c('Drafts|manage posts header')),
     13            'future' => array(__('Future dated'), __('Future dated posts')),
     14            'private' => array(__('Private'), __('Private posts')),
     15            'publish' => array(__('Published'), __('Published posts'))
     16        );
     17
     18$post_status_q = '';
     19$author_q = '';
     20$post_status_label = _c('Posts|manage posts header');
     21$post_listing_pageable = true;
     22if ( isset($_GET['post_status']) && in_array( $_GET['post_status'], array_keys($post_stati) ) ) {
     23    $post_status_label = $post_stati[$_GET['post_status']][1];
     24    $post_listing_pageable = false;
     25    $post_status_q = '&post_status=' . $_GET['post_status'];
     26    if ( in_array( $_GET['post_status'], array('draft', 'private') ) )
     27        $author_q = "&author=$user_ID";
     28    elseif ( 'publish' == $_GET['post_status'] );
     29        $post_listing_pageable = true;
     30}
     31?>
     32
    1633<div class="wrap">
    17 <?php if ($drafts) { ?>
    18     <p><strong><?php _e('Your Drafts:') ?></strong>
    19     <?php
    20     $i = 0;
    21     foreach ($drafts as $draft) {
    22         if (0 != $i)
    23             echo ', ';
    24         $draft->post_title = apply_filters('the_title', stripslashes($draft->post_title));
    25         if ($draft->post_title == '')
    26             $draft->post_title = sprintf(__('Post #%s'), $draft->ID);
    27         echo "<a href='post.php?action=edit&amp;post=$draft->ID' title='" . __('Edit this draft') . "'>$draft->post_title</a>";
    28         ++$i;
    29         }
    30     ?>
    31 .</p>
    32 <?php } ?>
    33 
    34 <?php if ($other_drafts) { ?>
    35     <p><strong><?php _e('Other&#8217;s Drafts:') ?></strong>
    36     <?php
    37     $i = 0;
    38     foreach ($other_drafts as $draft) {
    39         if (0 != $i)
    40             echo ', ';
    41         $draft->post_title = apply_filters('the_title', stripslashes($draft->post_title));
    42         if ($draft->post_title == '')
    43             $draft->post_title = sprintf(__('Post #%s'), $draft->ID);
    44         echo "<a href='post.php?action=edit&amp;post=$draft->ID' title='" . __('Edit this draft') . "'>$draft->post_title</a>";
    45         ++$i;
    46         }
    47     ?>
    48     .</p>
    49 
    50 <?php } ?>
    51 
    52 </div>
    53 <?php } ?>
    54 
    55 <div class="wrap">
    56 <h2>
    57 <?php
    58 
    59 wp('what_to_show=posts&posts_per_page=15&posts_per_archive_page=-1');
    60 
    61 if ( is_month() ) {
    62     single_month_title(' ');
    63 } elseif ( is_search() ) {
    64     printf(__('Search for &#8220;%s&#8221;'), wp_specialchars($_GET['s']) );
    65 } else {
    66     if ( is_single() )
    67         printf(__('Comments on %s'), apply_filters( "the_title", $post->post_title));
    68     elseif ( ! is_paged() || get_query_var('paged') == 1 )
    69         _e('Last 15 Posts');
    70     else
    71         _e('Previous Posts');
    72 }
    73 ?>
    74 </h2>
    75 
    76 <form name="searchform" id="searchform" action="" method="get">
    77   <fieldset>
    78   <legend><?php _e('Search Posts&hellip;') ?></legend>
    79   <input type="text" name="s" id="s" value="<?php if (isset($s)) echo attribute_escape($s); ?>" size="17" />
    80   <input type="submit" name="submit" value="<?php _e('Search') ?>" class="button" />
    81   </fieldset>
    82 </form>
    83 
    84 <?php $arc_result = $wpdb->get_results("SELECT DISTINCT YEAR(post_date) AS yyear, MONTH(post_date) AS mmonth FROM $wpdb->posts WHERE post_type = 'post' ORDER BY post_date DESC");
    85 
    86 if ( count($arc_result) ) { ?>
    87 
    88 <form name="viewarc" id="viewarc" action="" method="get">
    89     <fieldset>
    90     <legend><?php _e('Browse Month&hellip;') ?></legend>
    91     <select name='m'>
    92     <?php
    93         foreach ($arc_result as $arc_row) {
    94             if ( $arc_row->yyear == 0 )
    95                 continue;
    96             $arc_row->mmonth = zeroise($arc_row->mmonth, 2);
    97 
    98             if( isset($_GET['m']) && $arc_row->yyear . $arc_row->mmonth == (int) $_GET['m'] )
    99                 $default = 'selected="selected"';
    100             else
    101                 $default = null;
    102 
    103             echo "<option $default value='$arc_row->yyear$arc_row->mmonth'>";
    104             echo $wp_locale->get_month($arc_row->mmonth) . " $arc_row->yyear";
    105             echo "</option>\n";
    106         }
    107     ?>
    108     </select>
    109         <input type="submit" name="submit" value="<?php _e('Show Month') ?>" class="button" />
    110     </fieldset>
    111 </form>
    112 
    113 <?php } ?>
    114 
    115 <form name="viewcat" id="viewcat" action="" method="get">
    116     <fieldset>
    117     <legend><?php _e('Browse Category&hellip;') ?></legend>
    118     <?php wp_dropdown_categories('show_option_all='.__('All').'&hide_empty=1&hierarchical=1&show_count=1&selected='.$cat);?>
    119     <input type="submit" name="submit" value="<?php _e('Show Category') ?>" class="button" />
    120     </fieldset>
    121 </form>
    122 
    123 <?php do_action('restrict_manage_posts'); ?>
    124 
    125 <br style="clear:both;" />
    126 
    127 <?php
     34
     35<?php
     36
     37wp("what_to_show=posts$author_q$post_status_q&posts_per_page=15&posts_per_archive_page=-1");
     38
     39do_action('restrict_manage_posts');
     40
    12841// define the columns to display, the syntax is 'internal name' => 'display name'
    12942$posts_columns = array(
     
    14457?>
    14558
    146 <table class="widefat">
    147     <thead>
    148     <tr>
    149 
    150 <?php foreach($posts_columns as $column_display_name) { ?>
    151     <th scope="col"><?php echo $column_display_name; ?></th>
     59<h2><?php
     60if ( is_single() ) {
     61    printf(__('Comments on %s'), apply_filters( "the_title", $post->post_title));
     62} else {
     63    if ( $post_listing_pageable && !is_archive() && !is_search() )
     64        $h2_noun = is_paged() ? sprintf(__( 'Previous %s' ), $post_status_label) : sprintf(__('Latest %s'), $post_status_label);
     65    else
     66        $h2_noun = $post_status_label;
     67    // Use $_GET instead of is_ since they can override each other
     68    $h2_search = isset($_GET['s'])   && $_GET['s']   ? ' ' . sprintf(__('matching &#8220;%s&#8221;'), wp_specialchars( get_search_query() ) ) : '';
     69    $h2_cat    = isset($_GET['cat']) && $_GET['cat'] ? ' ' . sprintf( __('in &#8220;%s&#8221;'), single_cat_title('', false) ) : '';
     70    $h2_month  = isset($_GET['m'])   && $_GET['m']   ? ' ' . sprintf( __('during %s'), single_month_title(' ', false) ) : '';
     71    printf( _c( '%1$s%2$s%3$s%4$s|manage posts header' ), $h2_noun, $h2_search, $h2_cat, $h2_month );
     72}
     73?></h2>
     74
     75<form name="searchform" id="searchform" action="" method="get">
     76    <fieldset><legend><?php _e('Search terms&hellip;'); ?></legend>
     77        <input type="text" name="s" id="s" value="<?php the_search_query(); ?>" size="17" />
     78    </fieldset>
     79
     80    <fieldset><legend><?php _e('Post Type&hellip;'); ?></legend>
     81        <select name='post_status'>
     82            <option<?php selected( @$_GET['post_status'], 0 ); ?> value='0'><?php _e('Any'); ?></option>
     83<?php   foreach ( $post_stati as $status => $label ) : ?>
     84            <option<?php selected( @$_GET['post_status'], $status ); ?> value='<?php echo $status; ?>'><?php echo $label[0]; ?></option>
     85<?php   endforeach; ?>
     86        </select>
     87    </fieldset>
     88
     89<?php
     90
     91
     92$arc_query = "SELECT DISTINCT YEAR(post_date) AS yyear, MONTH(post_date) AS mmonth FROM $wpdb->posts WHERE post_type = 'post' ORDER BY post_date DESC";
     93
     94$arc_result = $wpdb->get_results( $arc_query );
     95
     96$month_count = count($arc_result);
     97
     98if ( $month_count && !( 1 == $month_count && 0 == $arc_result[0]->mmonth ) ) { ?>
     99
     100    <fieldset><legend><?php _e('Month&hellip;') ?></legend>
     101        <select name='m'>
     102            <option<?php selected( @$_GET['m'], 0 ); ?> value='0'><?php _e('Any'); ?></option>
     103        <?php
     104        foreach ($arc_result as $arc_row) {
     105            if ( $arc_row->yyear == 0 )
     106                continue;
     107            $arc_row->mmonth = zeroise($arc_row->mmonth, 2);
     108
     109            if ( $arc_row->yyear . $arc_row->mmonth == $_GET['m'] )
     110                $default = ' selected="selected"';
     111            else
     112                $default = '';
     113
     114            echo "<option$default value='$arc_row->yyear$arc_row->mmonth'>";
     115            echo $wp_locale->get_month($arc_row->mmonth) . " $arc_row->yyear";
     116            echo "</option>\n";
     117        }
     118        ?>
     119        </select>
     120    </fieldset>
     121
    152122<?php } ?>
    153123
    154     </tr>
    155     </thead>
    156     <tbody id="the-list">
    157 <?php
    158 if ($posts) {
    159 $bgcolor = '';
    160 while (have_posts()) : the_post();
    161 add_filter('the_title','wp_specialchars');
    162 $class = ('alternate' == $class) ? '' : 'alternate';
    163 ?>
    164     <tr id='post-<?php echo $id; ?>' class='<?php echo $class; ?>'>
    165 
    166 <?php
    167 
    168 foreach($posts_columns as $column_name=>$column_display_name) {
    169 
    170     switch($column_name) {
    171 
    172     case 'id':
    173         ?>
    174         <th scope="row" style="text-align: center"><?php echo $id ?></th>
    175         <?php
    176         break;
    177 
    178     case 'date':
    179         ?>
    180         <td><?php if ( '0000-00-00 00:00:00' ==$post->post_modified ) _e('Unpublished'); else the_time(__('Y-m-d \<\b\r \/\> g:i:s a')); ?></td>
    181         <?php
    182         break;
    183     case 'title':
    184         ?>
    185         <td><?php the_title() ?>
    186         <?php if ('private' == $post->post_status) _e(' - <strong>Private</strong>'); ?></td>
    187         <?php
    188         break;
    189 
    190     case 'categories':
    191         ?>
    192         <td><?php the_category(','); ?></td>
    193         <?php
    194         break;
    195 
    196     case 'comments':
    197         ?>
    198         <td style="text-align: center">
    199             <?php comments_number("<a href='edit.php?p=$id&amp;c=1'>" . __('0') . '</a>', "<a href='edit.php?p=$id&amp;c=1'>" . __('1') . '</a>', "<a href='edit.php?p=$id&amp;c=1'>" . __('%') . '</a>') ?>
    200             </td>
    201         <?php
    202         break;
    203 
    204     case 'author':
    205         ?>
    206         <td><?php the_author() ?></td>
    207         <?php
    208         break;
    209 
    210     case 'control_view':
    211         ?>
    212         <td><a href="<?php the_permalink(); ?>" rel="permalink" class="edit"><?php _e('View'); ?></a></td>
    213         <?php
    214         break;
    215 
    216     case 'control_edit':
    217         ?>
    218         <td><?php if ( current_user_can('edit_post',$post->ID) ) { echo "<a href='post.php?action=edit&amp;post=$id' class='edit'>" . __('Edit') . "</a>"; } ?></td>
    219         <?php
    220         break;
    221 
    222     case 'control_delete':
    223         ?>
    224         <td><?php if ( current_user_can('delete_post',$post->ID) ) { echo "<a href='" . wp_nonce_url("post.php?action=delete&amp;post=$id", 'delete-post_' . $post->ID) . "' class='delete' onclick=\"return deleteSomething( 'post', " . $id . ", '" . js_escape(sprintf(__("You are about to delete this post '%s'.\n'OK' to delete, 'Cancel' to stop."), get_the_title())) . "' );\">" . __('Delete') . "</a>"; } ?></td>
    225         <?php
    226         break;
    227 
    228     default:
    229         ?>
    230         <td><?php do_action('manage_posts_custom_column', $column_name, $id); ?></td>
    231         <?php
    232         break;
     124    <fieldset><legend><?php _e('Category&hellip;') ?></legend>
     125        <?php wp_dropdown_categories('show_option_all='.__('All').'&hide_empty=1&hierarchical=1&show_count=1&selected='.$cat);?>
     126    </fieldset>
     127    <input type="submit" id="post-query-submit" value="<?php _e('Go &#187;'); ?>" class="button" />
     128</form>
     129
     130<br style="clear:both;" />
     131
     132<?php
     133if ( $post_status_q && ( false !== strpos($post_status_q, 'draft') || false !== strpos($post_status_q, 'private') ) ) {
     134    echo '<h3>' . __('Your Posts') . "</h3>\n";
     135    include( 'edit-post-rows.php' );
     136
     137    $editable_ids = get_editable_user_ids( $user_ID );
     138
     139    if ( $editable_ids && count($editable_ids) > 1 ) {
     140        $_editable_ids = join(',', array_diff($editable_ids, array($user_ID)));
     141
     142        $post_status_q = "&post_status=" . $_GET['post_status'];
     143
     144        unset($GLOBALS['day']); // setup_postdata does this
     145        wp("what_to_show=posts&author=$_editable_ids$post_status_q&posts_per_page=-1&posts_per_archive_page=-1");
     146
     147        if ( have_posts() ) {
     148            echo '<h3>' . __("Others' Posts") . "</h3>\n";
     149            include( 'edit-post-rows.php' );
     150        }
    233151    }
    234 }
    235 ?>
    236     </tr>
    237 <?php
    238 endwhile;
     152
    239153} else {
    240 ?>
    241   <tr style='background-color: <?php echo $bgcolor; ?>'>
    242     <td colspan="8"><?php _e('No posts found.') ?></td>
    243   </tr>
    244 <?php
    245 } // end if ($posts)
    246 ?>
    247     </tbody>
    248 </table>
     154    include( 'edit-post-rows.php' );
     155}
     156?>
    249157
    250158<div id="ajax-response"></div>
     
    256164
    257165<?php
     166
    258167if ( 1 == count($posts) ) {
    259168
     
    280189<?php comment_text() ?>
    281190
    282 <p><?php comment_date(__('M j, g:i A'));  ?> &#8212; [
     191<p><?php comment_date(__('M j, g:i A')); ?> &#8212; [
    283192<?php
    284193if ( current_user_can('edit_post', $comment->comment_post_ID) ) {
    285     echo " <a href='comment.php?action=editcomment&amp;c=".$comment->comment_ID."'>" .  __('Edit') . '</a>';
     194    echo " <a href='comment.php?action=editcomment&amp;c=".$comment->comment_ID."'>" . __('Edit') . '</a>';
    286195    echo ' | <a href="' . wp_nonce_url('comment.php?action=deletecomment&amp;p=' . $comment->comment_post_ID . '&amp;c=' . $comment->comment_ID, 'delete-comment_' . $comment->comment_ID) . '" onclick="return deleteSomething( \'comment\', ' . $comment->comment_ID . ', \'' . js_escape(sprintf(__("You are about to delete this comment by '%s'.\n'Cancel' to stop, 'OK' to delete."), $comment->comment_author)) . "', theCommentList );\">" . __('Delete') . '</a> ';
    287196    if ( ('none' != $comment_status) && ( current_user_can('moderate_comments') ) ) {
     
    289198        echo '<span class="approve"> | <a href="' . wp_nonce_url('comment.php?action=approvecomment&amp;p=' . $comment->comment_post_ID . '&amp;c=' . $comment->comment_ID, 'approve-comment_' . $comment->comment_ID) . '" onclick="return dimSomething( \'comment\', ' . $comment->comment_ID . ', \'unapproved\', theCommentList );">' . __('Approve') . '</a> </span>';
    290199    }
    291     echo " | <a href=\"" . wp_nonce_url("comment.php?action=deletecomment&amp;dt=spam&amp;p=" . $comment->comment_post_ID . "&amp;c=" . $comment->comment_ID, 'delete-comment_' . $comment->comment_ID) . "\" onclick=\"return deleteSomething( 'comment-as-spam', $comment->comment_ID, '" . js_escape(sprintf(__("You are about to mark as spam this comment by '%s'.\n'Cancel' to stop, 'OK' to mark as spam."), $comment->comment_author))  . "', theCommentList );\">" . __('Spam') . "</a> ";
     200    echo " | <a href=\"" . wp_nonce_url("comment.php?action=deletecomment&amp;dt=spam&amp;p=" . $comment->comment_post_ID . "&amp;c=" . $comment->comment_ID, 'delete-comment_' . $comment->comment_ID) . "\" onclick=\"return deleteSomething( 'comment-as-spam', $comment->comment_ID, '" . js_escape(sprintf(__("You are about to mark as spam this comment by '%s'.\n'Cancel' to stop, 'OK' to mark as spam."), $comment->comment_author)) . "', theCommentList );\">" . __('Spam') . "</a> ";
    292201}
    293202?>
     
    302211<?php } ?>
    303212</div>
    304 <?php
    305  include('admin-footer.php');
    306 ?>
     213
     214<?php include('admin-footer.php'); ?>
Note: See TracChangeset for help on using the changeset viewer.