WordPress.org

Make WordPress Core

Changeset 15630


Ignore:
Timestamp:
09/18/2010 05:46:29 PM (9 years ago)
Author:
scribu
Message:

WP_Comments_Table cleanup:

  • use column_*() methods
  • remove extra arguments from single_row()
  • introduce derived class WP_Post_Comments_Table for handling the post metabox comments
  • use $pending_count property instead of $_comment_pending_count global

See #14579

Location:
trunk/wp-admin
Files:
3 edited

Legend:

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

    r15606 r15630  
    625625
    626626    $wp_list_table = get_list_table('comments');
     627    $wp_list_table->from_ajax = true;
     628
    627629    $wp_list_table->prepare_items();
    628630
     
    632634    $x = new WP_Ajax_Response();
    633635    foreach ( $wp_list_table->items as $comment ) {
    634         get_comment( $comment );
    635636        ob_start();
    636             $wp_list_table->single_row( $comment->comment_ID, $mode, $comment_status, true, true );
     637            $wp_list_table->single_row( $comment );
    637638            $comment_list_item = ob_get_contents();
    638639        ob_end_clean();
     
    652653        die('-1');
    653654
    654     $wp_list_table = get_list_table('comments');
     655    $wp_list_table = get_list_table('post-comments');
     656
    655657    $wp_list_table->prepare_items();
    656658
     
    663665        get_comment( $comment );
    664666        ob_start();
    665             $wp_list_table->single_row( $comment->comment_ID, 'single', false, false );
     667            $wp_list_table->single_row( $comment );
    666668            $comment_list_item .= ob_get_contents();
    667669        ob_end_clean();
     
    677679
    678680    $wp_list_table = get_list_table('comments');
     681    $wp_list_table->checkbox = ( isset($_POST['checkbox']) && true == $_POST['checkbox'] ) ? 1 : 0;
    679682
    680683    $comment_post_ID = (int) $_POST['comment_post_ID'];
     
    716719
    717720    $position = ( isset($_POST['position']) && (int) $_POST['position']) ? (int) $_POST['position'] : '-1';
    718     $checkbox = ( isset($_POST['checkbox']) && true == $_POST['checkbox'] ) ? 1 : 0;
    719721
    720722    $x = new WP_Ajax_Response();
     
    723725        if ( 'dashboard' == $mode ) {
    724726            require_once( ABSPATH . 'wp-admin/includes/dashboard.php' );
    725             _wp_dashboard_recent_comments_row( $comment, false );
     727            _wp_dashboard_recent_comments_row( $comment );
    726728        } else {
    727             $wp_list_table->single_row( $comment->comment_ID, $mode, false, $checkbox );
     729            $wp_list_table->single_row( $comment );
    728730        }
    729731        $comment_list_item = ob_get_contents();
     
    754756
    755757    $position = ( isset($_POST['position']) && (int) $_POST['position']) ? (int) $_POST['position'] : '-1';
     758    $comments_status = isset($_POST['comments_listing']) ? $_POST['comments_listing'] : '';
     759
    756760    $checkbox = ( isset($_POST['checkbox']) && true == $_POST['checkbox'] ) ? 1 : 0;
    757     $comments_listing = isset($_POST['comments_listing']) ? $_POST['comments_listing'] : '';
    758 
    759     $wp_list_table = get_list_table('comments');
     761    $wp_list_table = get_list_table( $checkbox ? 'comments' : 'post-comments' );
    760762
    761763    ob_start();
    762         $wp_list_table->single_row( $comment_id, $mode, $comments_listing, $checkbox );
     764        $wp_list_table->single_row( get_comment( $comment_id ) );
    763765        $comment_list_item = ob_get_contents();
    764766    ob_end_clean();
  • trunk/wp-admin/includes/default-list-tables.php

    r15605 r15630  
    20162016class WP_Comments_Table extends WP_List_Table {
    20172017
     2018    var $checkbox = true;
     2019    var $from_ajax = false;
     2020
     2021    var $pending_count = array();
     2022
    20182023    function WP_Comments_Table() {
    20192024        global $mode;
     
    20922097        }
    20932098
    2094         $_comment_pending_count = get_pending_comments_num( $_comment_post_ids );
     2099        $this->pending_count = get_pending_comments_num( $_comment_post_ids );
    20952100
    20962101        $this->set_pagination_args( array(
     
    22062211
    22072212    function get_columns() {
    2208         return array(
    2209             'cb'       => '<input type="checkbox" />',
    2210             'author'   => __( 'Author' ),
    2211             /* translators: column name */
    2212             'comment'  => _x( 'Comment', 'column name' ),
    2213             'response' => __( 'In Response To' )
    2214         );
     2213        global $mode;
     2214
     2215        $columns = array();
     2216
     2217        if ( $this->checkbox )
     2218            $columns['cb'] = '<input type="checkbox" />';
     2219
     2220        $columns['author'] = __( 'Author' );
     2221        $columns['comment'] = _x( 'Comment', 'column name' );
     2222
     2223        if ( 'single' !== $mode )
     2224            $columns['response'] = _x( 'Comment', 'column name' );
     2225
     2226        return $columns;
    22152227    }
    22162228
     
    22432255
    22442256    <tbody id="the-comment-list" class="list:comment">
    2245         <?php $this->display_rows( $this->items ); ?>
     2257        <?php $this->display_rows(); ?>
    22462258    </tbody>
    22472259
    22482260    <tbody id="the-extra-comment-list" class="list:comment" style="display: none;">
    2249         <?php $this->display_rows( $this->extra_items ); ?>
     2261        <?php $this->items = $this->extra_items; $this->display_rows(); ?>
    22502262    </tbody>
    22512263</table>
     
    22552267    }
    22562268
    2257     function display_rows( $items = false ) {
    2258         global $mode, $comment_status;
    2259 
    2260         if ( false === $items )
    2261             $items = $this->items;
    2262 
    2263         foreach ( $items as $comment )
    2264             $this->single_row( $comment->comment_ID, $mode, $comment_status );
    2265     }
    2266 
    2267     function single_row( $comment_id, $mode, $comment_status, $checkbox = true, $from_ajax = false ) {
    2268         global $comment, $post, $_comment_pending_count;
    2269         $comment = get_comment( $comment_id );
     2269    function single_row( $a_comment ) {
     2270        global $post, $comment, $the_comment_status;
     2271
     2272        $comment = $a_comment;
     2273        $the_comment_status = wp_get_comment_status( $comment->comment_ID );
     2274
    22702275        $post = get_post( $comment->comment_post_ID );
    2271         $the_comment_status = wp_get_comment_status( $comment->comment_ID );
    2272         $user_can = current_user_can( 'edit_comment', $comment_id );
     2276
     2277        $this->user_can = current_user_can( 'edit_comment', $comment->comment_ID );
     2278
     2279        echo "<tr id='comment-$comment->comment_ID' class='$the_comment_status'>";
     2280        echo $this->single_row_columns( $comment );
     2281        echo "</tr>\n";
     2282    }
     2283
     2284    function column_cb( $comment ) {
     2285        if ( $this->user_can )
     2286            echo "<input type='checkbox' name='delete_comments[]' value='$comment->comment_ID' />";
     2287    }
     2288
     2289    function column_comment( $comment ) {
     2290        global $post, $comment_status, $the_comment_status;
     2291
     2292        $user_can = $this->user_can;
    22732293
    22742294        $comment_url = esc_url( get_comment_link( $comment->comment_ID ) );
    2275         $author_url = get_comment_author_url();
    2276         if ( 'http://' == $author_url )
    2277             $author_url = '';
    2278         $author_url_display = preg_replace( '|http://(www\.)?|i', '', $author_url );
    2279         if ( strlen( $author_url_display ) > 50 )
    2280             $author_url_display = substr( $author_url_display, 0, 49 ) . '...';
    22812295
    22822296        $ptime = date( 'G', strtotime( $comment->comment_date ) );
     
    23012315        }
    23022316
    2303         echo "<tr id='comment-$comment->comment_ID' class='$the_comment_status'>";
    2304 
    2305         list( $columns, $hidden ) = $this->get_column_headers();
    2306 
    2307         foreach ( $columns as $column_name => $column_display_name ) {
    2308             $class = "class=\"$column_name column-$column_name\"";
    2309 
    2310             $style = '';
    2311             if ( in_array( $column_name, $hidden ) )
    2312                 $style = ' style="display:none;"';
    2313 
    2314             $attributes = "$class$style";
    2315 
    2316             switch ( $column_name ) {
    2317                 case 'cb':
    2318                     if ( !$checkbox ) break;
    2319                     echo '<th scope="row" class="check-column">';
    2320                     if ( $user_can ) echo "<input type='checkbox' name='delete_comments[]' value='$comment->comment_ID' />";
    2321                     echo '</th>';
    2322                     break;
    2323                 case 'comment':
    2324                     echo "<td $attributes>";
    2325                     echo '<div id="submitted-on">';
    2326                     /* translators: 2: comment date, 3: comment time */
    2327                     printf( __( '<a href="%1$s">%2$s at %3$s</a>' ), $comment_url,
    2328                         /* translators: comment date format. See http://php.net/date */ get_comment_date( __( 'Y/m/d' ) ),
    2329                         /* translators: comment time format. See http://php.net/date */ get_comment_date( get_option( 'time_format' ) ) );
    2330 
    2331                     if ( $comment->comment_parent ) {
    2332                         $parent = get_comment( $comment->comment_parent );
    2333                         $parent_link = esc_url( get_comment_link( $comment->comment_parent ) );
    2334                         $name = get_comment_author( $parent->comment_ID );
    2335                         printf( ' | '.__( 'In reply to <a href="%1$s">%2$s</a>.' ), $parent_link, $name );
    2336                     }
    2337 
    2338                     echo '</div>';
    2339                     comment_text();
    2340                     if ( $user_can ) { ?>
    2341                     <div id="inline-<?php echo $comment->comment_ID; ?>" class="hidden">
    2342                     <textarea class="comment" rows="1" cols="1"><?php echo esc_html( apply_filters( 'comment_edit_pre', $comment->comment_content ) ); ?></textarea>
    2343                     <div class="author-email"><?php echo esc_attr( $comment->comment_author_email ); ?></div>
    2344                     <div class="author"><?php echo esc_attr( $comment->comment_author ); ?></div>
    2345                     <div class="author-url"><?php echo esc_attr( $comment->comment_author_url ); ?></div>
    2346                     <div class="comment_status"><?php echo $comment->comment_approved; ?></div>
    2347                     </div>
    2348                     <?php
    2349                     }
    2350 
    2351                     if ( $user_can ) {
    2352                         // preorder it: Approve | Reply | Quick Edit | Edit | Spam | Trash
    2353                         $actions = array(
    2354                             'approve' => '', 'unapprove' => '',
    2355                             'reply' => '',
    2356                             'quickedit' => '',
    2357                             'edit' => '',
    2358                             'spam' => '', 'unspam' => '',
    2359                             'trash' => '', 'untrash' => '', 'delete' => ''
    2360                         );
    2361 
    2362                         if ( $comment_status && 'all' != $comment_status ) { // not looking at all comments
    2363                             if ( 'approved' == $the_comment_status )
    2364                                 $actions['unapprove'] = "<a href='$unapprove_url' class='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&amp;new=unapproved vim-u vim-destructive' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
    2365                             else if ( 'unapproved' == $the_comment_status )
    2366                                 $actions['approve'] = "<a href='$approve_url' class='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&amp;new=approved vim-a vim-destructive' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>';
    2367                         } else {
    2368                             $actions['approve'] = "<a href='$approve_url' class='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=approved vim-a' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>';
    2369                             $actions['unapprove'] = "<a href='$unapprove_url' class='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved vim-u' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
    2370                         }
    2371 
    2372                         if ( 'spam' != $the_comment_status && 'trash' != $the_comment_status ) {
    2373                             $actions['spam'] = "<a href='$spam_url' class='delete:the-comment-list:comment-$comment->comment_ID::spam=1 vim-s vim-destructive' title='" . esc_attr__( 'Mark this comment as spam' ) . "'>" . /* translators: mark as spam link */ _x( 'Spam', 'verb' ) . '</a>';
    2374                         } elseif ( 'spam' == $the_comment_status ) {
    2375                             $actions['unspam'] = "<a href='$unspam_url' class='delete:the-comment-list:comment-$comment->comment_ID:66cc66:unspam=1 vim-z vim-destructive'>" . _x( 'Not Spam', 'comment' ) . '</a>';
    2376                         } elseif ( 'trash' == $the_comment_status ) {
    2377                             $actions['untrash'] = "<a href='$untrash_url' class='delete:the-comment-list:comment-$comment->comment_ID:66cc66:untrash=1 vim-z vim-destructive'>" . __( 'Restore' ) . '</a>';
    2378                         }
    2379 
    2380                         if ( 'spam' == $the_comment_status || 'trash' == $the_comment_status || !EMPTY_TRASH_DAYS ) {
    2381                             $actions['delete'] = "<a href='$delete_url' class='delete:the-comment-list:comment-$comment->comment_ID::delete=1 delete vim-d vim-destructive'>" . __( 'Delete Permanently' ) . '</a>';
    2382                         } else {
    2383                             $actions['trash'] = "<a href='$trash_url' class='delete:the-comment-list:comment-$comment->comment_ID::trash=1 delete vim-d vim-destructive' title='" . esc_attr__( 'Move this comment to the trash' ) . "'>" . _x( 'Trash', 'verb' ) . '</a>';
    2384                         }
    2385 
    2386                         if ( 'trash' != $the_comment_status ) {
    2387                             $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__( 'Edit comment' ) . "'>". __( 'Edit' ) . '</a>';
    2388                             $actions['quickedit'] = '<a onclick="commentReply.open( \''.$comment->comment_ID.'\',\''.$post->ID.'\',\'edit\' );return false;" class="vim-q" title="'.esc_attr__( 'Quick Edit' ).'" href="#">' . __( 'Quick&nbsp;Edit' ) . '</a>';
    2389                             if ( 'spam' != $the_comment_status )
    2390                                 $actions['reply'] = '<a onclick="commentReply.open( \''.$comment->comment_ID.'\',\''.$post->ID.'\' );return false;" class="vim-r" title="'.esc_attr__( 'Reply to this comment' ).'" href="#">' . __( 'Reply' ) . '</a>';
    2391                         }
    2392 
    2393                         $actions = apply_filters( 'comment_row_actions', array_filter( $actions ), $comment );
    2394 
    2395                         $i = 0;
    2396                         echo '<div class="row-actions">';
    2397                         foreach ( $actions as $action => $link ) {
    2398                             ++$i;
    2399                             ( ( ( 'approve' == $action || 'unapprove' == $action ) && 2 === $i ) || 1 === $i ) ? $sep = '' : $sep = ' | ';
    2400 
    2401                             // Reply and quickedit need a hide-if-no-js span when not added with ajax
    2402                             if ( ( 'reply' == $action || 'quickedit' == $action ) && ! $from_ajax )
    2403                                 $action .= ' hide-if-no-js';
    2404                             elseif ( ( $action == 'untrash' && $the_comment_status == 'trash' ) || ( $action == 'unspam' && $the_comment_status == 'spam' ) ) {
    2405                                 if ( '1' == get_comment_meta( $comment_id, '_wp_trash_meta_status', true ) )
    2406                                     $action .= ' approve';
    2407                                 else
    2408                                     $action .= ' unapprove';
    2409                             }
    2410 
    2411                             echo "<span class='$action'>$sep$link</span>";
    2412                         }
    2413                         echo '</div>';
    2414                     }
    2415 
    2416                     echo '</td>';
    2417                     break;
    2418                 case 'author':
    2419                     echo "<td $attributes><strong>"; comment_author(); echo '</strong><br />';
    2420                     if ( !empty( $author_url ) )
    2421                         echo "<a title='$author_url' href='$author_url'>$author_url_display</a><br />";
    2422                     if ( $user_can ) {
    2423                         if ( !empty( $comment->comment_author_email ) ) {
    2424                             comment_author_email_link();
    2425                             echo '<br />';
    2426                         }
    2427                         echo '<a href="edit-comments.php?s=';
    2428                         comment_author_IP();
    2429                         echo '&amp;mode=detail';
    2430                         if ( 'spam' == $comment_status )
    2431                             echo '&amp;comment_status=spam';
    2432                         echo '">';
    2433                         comment_author_IP();
    2434                         echo '</a>';
    2435                     } //current_user_can
    2436                     echo '</td>';
    2437                     break;
    2438                 case 'date':
    2439                     echo "<td $attributes>" . get_comment_date( __( 'Y/m/d \a\t g:ia' ) ) . '</td>';
    2440                     break;
    2441                 case 'response':
    2442                     if ( 'single' !== $mode ) {
    2443                         if ( isset( $_comment_pending_count[$post->ID] ) ) {
    2444                             $pending_comments = $_comment_pending_count[$post->ID];
    2445                         } else {
    2446                             $_comment_pending_count_temp = get_pending_comments_num( array( $post->ID ) );
    2447                             $pending_comments = $_comment_pending_count[$post->ID] = $_comment_pending_count_temp[$post->ID];
    2448                         }
    2449                         if ( $user_can ) {
    2450                             $post_link = "<a href='" . get_edit_post_link( $post->ID ) . "'>";
    2451                             $post_link .= get_the_title( $post->ID ) . '</a>';
    2452                         } else {
    2453                             $post_link = get_the_title( $post->ID );
    2454                         }
    2455                         echo "<td $attributes>\n";
    2456                         echo '<div class="response-links"><span class="post-com-count-wrapper">';
    2457                         echo $post_link . '<br />';
    2458                         $this->comments_bubble( $post->ID, $pending_comments );
    2459                         echo '</span> ';
    2460                         echo "<a href='" . get_permalink( $post->ID ) . "'>#</a>";
    2461                         echo '</div>';
    2462                         if ( 'attachment' == $post->post_type && ( $thumb = wp_get_attachment_image( $post->ID, array( 80, 60 ), true ) ) )
    2463                             echo $thumb;
    2464                         echo '</td>';
    2465                     }
    2466                     break;
    2467                 default:
    2468                     echo "<td $attributes>\n";
    2469                     do_action( 'manage_comments_custom_column', $column_name, $comment->comment_ID );
    2470                     echo "</td>\n";
    2471                     break;
     2317        echo '<div id="submitted-on">';
     2318        /* translators: 2: comment date, 3: comment time */
     2319        printf( __( '<a href="%1$s">%2$s at %3$s</a>' ), $comment_url,
     2320            /* translators: comment date format. See http://php.net/date */ get_comment_date( __( 'Y/m/d' ) ),
     2321            /* translators: comment time format. See http://php.net/date */ get_comment_date( get_option( 'time_format' ) ) );
     2322
     2323        if ( $comment->comment_parent ) {
     2324            $parent = get_comment( $comment->comment_parent );
     2325            $parent_link = esc_url( get_comment_link( $comment->comment_parent ) );
     2326            $name = get_comment_author( $parent->comment_ID );
     2327            printf( ' | '.__( 'In reply to <a href="%1$s">%2$s</a>.' ), $parent_link, $name );
     2328        }
     2329
     2330        echo '</div>';
     2331        comment_text();
     2332        if ( $user_can ) { ?>
     2333        <div id="inline-<?php echo $comment->comment_ID; ?>" class="hidden">
     2334        <textarea class="comment" rows="1" cols="1"><?php echo esc_html( apply_filters( 'comment_edit_pre', $comment->comment_content ) ); ?></textarea>
     2335        <div class="author-email"><?php echo esc_attr( $comment->comment_author_email ); ?></div>
     2336        <div class="author"><?php echo esc_attr( $comment->comment_author ); ?></div>
     2337        <div class="author-url"><?php echo esc_attr( $comment->comment_author_url ); ?></div>
     2338        <div class="comment_status"><?php echo $comment->comment_approved; ?></div>
     2339        </div>
     2340        <?php
     2341        }
     2342
     2343        if ( $user_can ) {
     2344            // preorder it: Approve | Reply | Quick Edit | Edit | Spam | Trash
     2345            $actions = array(
     2346                'approve' => '', 'unapprove' => '',
     2347                'reply' => '',
     2348                'quickedit' => '',
     2349                'edit' => '',
     2350                'spam' => '', 'unspam' => '',
     2351                'trash' => '', 'untrash' => '', 'delete' => ''
     2352            );
     2353
     2354            if ( $comment_status && 'all' != $comment_status ) { // not looking at all comments
     2355                if ( 'approved' == $the_comment_status )
     2356                    $actions['unapprove'] = "<a href='$unapprove_url' class='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&amp;new=unapproved vim-u vim-destructive' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
     2357                else if ( 'unapproved' == $the_comment_status )
     2358                    $actions['approve'] = "<a href='$approve_url' class='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&amp;new=approved vim-a vim-destructive' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>';
     2359            } else {
     2360                $actions['approve'] = "<a href='$approve_url' class='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=approved vim-a' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>';
     2361                $actions['unapprove'] = "<a href='$unapprove_url' class='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved vim-u' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
    24722362            }
    2473         }
    2474         echo "</tr>\n";
     2363
     2364            if ( 'spam' != $the_comment_status && 'trash' != $the_comment_status ) {
     2365                $actions['spam'] = "<a href='$spam_url' class='delete:the-comment-list:comment-$comment->comment_ID::spam=1 vim-s vim-destructive' title='" . esc_attr__( 'Mark this comment as spam' ) . "'>" . /* translators: mark as spam link */ _x( 'Spam', 'verb' ) . '</a>';
     2366            } elseif ( 'spam' == $the_comment_status ) {
     2367                $actions['unspam'] = "<a href='$unspam_url' class='delete:the-comment-list:comment-$comment->comment_ID:66cc66:unspam=1 vim-z vim-destructive'>" . _x( 'Not Spam', 'comment' ) . '</a>';
     2368            } elseif ( 'trash' == $the_comment_status ) {
     2369                $actions['untrash'] = "<a href='$untrash_url' class='delete:the-comment-list:comment-$comment->comment_ID:66cc66:untrash=1 vim-z vim-destructive'>" . __( 'Restore' ) . '</a>';
     2370            }
     2371
     2372            if ( 'spam' == $the_comment_status || 'trash' == $the_comment_status || !EMPTY_TRASH_DAYS ) {
     2373                $actions['delete'] = "<a href='$delete_url' class='delete:the-comment-list:comment-$comment->comment_ID::delete=1 delete vim-d vim-destructive'>" . __( 'Delete Permanently' ) . '</a>';
     2374            } else {
     2375                $actions['trash'] = "<a href='$trash_url' class='delete:the-comment-list:comment-$comment->comment_ID::trash=1 delete vim-d vim-destructive' title='" . esc_attr__( 'Move this comment to the trash' ) . "'>" . _x( 'Trash', 'verb' ) . '</a>';
     2376            }
     2377
     2378            if ( 'trash' != $the_comment_status ) {
     2379                $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__( 'Edit comment' ) . "'>". __( 'Edit' ) . '</a>';
     2380                $actions['quickedit'] = '<a onclick="commentReply.open( \''.$comment->comment_ID.'\',\''.$post->ID.'\',\'edit\' );return false;" class="vim-q" title="'.esc_attr__( 'Quick Edit' ).'" href="#">' . __( 'Quick&nbsp;Edit' ) . '</a>';
     2381                if ( 'spam' != $the_comment_status )
     2382                    $actions['reply'] = '<a onclick="commentReply.open( \''.$comment->comment_ID.'\',\''.$post->ID.'\' );return false;" class="vim-r" title="'.esc_attr__( 'Reply to this comment' ).'" href="#">' . __( 'Reply' ) . '</a>';
     2383            }
     2384
     2385            $actions = apply_filters( 'comment_row_actions', array_filter( $actions ), $comment );
     2386
     2387            $i = 0;
     2388            echo '<div class="row-actions">';
     2389            foreach ( $actions as $action => $link ) {
     2390                ++$i;
     2391                ( ( ( 'approve' == $action || 'unapprove' == $action ) && 2 === $i ) || 1 === $i ) ? $sep = '' : $sep = ' | ';
     2392
     2393                // Reply and quickedit need a hide-if-no-js span when not added with ajax
     2394                if ( ( 'reply' == $action || 'quickedit' == $action ) && ! $this->from_ajax )
     2395                    $action .= ' hide-if-no-js';
     2396                elseif ( ( $action == 'untrash' && $the_comment_status == 'trash' ) || ( $action == 'unspam' && $the_comment_status == 'spam' ) ) {
     2397                    if ( '1' == get_comment_meta( $comment_id, '_wp_trash_meta_status', true ) )
     2398                        $action .= ' approve';
     2399                    else
     2400                        $action .= ' unapprove';
     2401                }
     2402
     2403                echo "<span class='$action'>$sep$link</span>";
     2404            }
     2405            echo '</div>';
     2406        }
     2407    }
     2408
     2409    function column_author( $comment ) {
     2410        global $comment_status;
     2411
     2412        $author_url = get_comment_author_url();
     2413        if ( 'http://' == $author_url )
     2414            $author_url = '';
     2415        $author_url_display = preg_replace( '|http://(www\.)?|i', '', $author_url );
     2416        if ( strlen( $author_url_display ) > 50 )
     2417            $author_url_display = substr( $author_url_display, 0, 49 ) . '...';
     2418
     2419        echo "<strong>"; comment_author(); echo '</strong><br />';
     2420        if ( !empty( $author_url ) )
     2421            echo "<a title='$author_url' href='$author_url'>$author_url_display</a><br />";
     2422
     2423        if ( $this->user_can ) {
     2424            if ( !empty( $comment->comment_author_email ) ) {
     2425                comment_author_email_link();
     2426                echo '<br />';
     2427            }
     2428            echo '<a href="edit-comments.php?s=';
     2429            comment_author_IP();
     2430            echo '&amp;mode=detail';
     2431            if ( 'spam' == $comment_status )
     2432                echo '&amp;comment_status=spam';
     2433            echo '">';
     2434            comment_author_IP();
     2435            echo '</a>';
     2436        }
     2437    }
     2438
     2439    function column_date( $comment ) {
     2440        return get_comment_date( __( 'Y/m/d \a\t g:ia' ) );
     2441    }
     2442
     2443    function column_response( $comment ) {
     2444        global $post;
     2445
     2446        if ( isset( $this->pending_count[$post->ID] ) ) {
     2447            $pending_comments = $this->pending_count[$post->ID];
     2448        } else {
     2449            $_pending_count_temp = get_pending_comments_num( array( $post->ID ) );
     2450            $pending_comments = $this->pending_count[$post->ID] = $_pending_count_temp[$post->ID];
     2451        }
     2452
     2453        if ( current_user_can( 'edit_post', $post->ID ) ) {
     2454            $post_link = "<a href='" . get_edit_post_link( $post->ID ) . "'>";
     2455            $post_link .= get_the_title( $post->ID ) . '</a>';
     2456        } else {
     2457            $post_link = get_the_title( $post->ID );
     2458        }
     2459
     2460        echo '<div class="response-links"><span class="post-com-count-wrapper">';
     2461        echo $post_link . '<br />';
     2462        $this->comments_bubble( $post->ID, $pending_comments );
     2463        echo '</span> ';
     2464        echo "<a href='" . get_permalink( $post->ID ) . "'>#</a>";
     2465        echo '</div>';
     2466        if ( 'attachment' == $post->post_type && ( $thumb = wp_get_attachment_image( $post->ID, array( 80, 60 ), true ) ) )
     2467            echo $thumb;
     2468    }
     2469
     2470    function column_default( $comment, $column_name ) {
     2471        do_action( 'manage_comments_custom_column', $column_name, $comment->comment_ID );
     2472    }
     2473}
     2474
     2475class WP_Post_Comments_Table extends WP_Comments_Table {
     2476
     2477    function get_columns() {
     2478        return array(
     2479            'author'   => __( 'Author' ),
     2480            'comment'  => _x( 'Comment', 'column name' ),
     2481        );
     2482    }
     2483
     2484    function get_sortable_columns() {
     2485        return array();
    24752486    }
    24762487}
  • trunk/wp-admin/includes/meta-boxes.php

    r15590 r15630  
    460460
    461461    wp_nonce_field( 'get-comments', 'add_comment_nonce', false );
    462     add_filter('manage_edit-comments_columns', 'post_comment_meta_box_thead', 8, 1);
    463     add_filter('manage_edit-comments_sortable_columns', '__return_empty_array', 8);
    464 
    465     $wp_list_table = get_list_table('comments');
     462
     463    $wp_list_table = get_list_table('post-comments');
    466464?>
    467465
     
    479477<?php
    480478    }
    481     remove_filter('manage_edit-comments_columns', 'post_comment_meta_box_thead');
    482479    wp_comment_trashnotice();
    483480}
Note: See TracChangeset for help on using the changeset viewer.