2007-05-25 03:16:21 -04:00
< ? php
2008-09-16 20:40:10 -04:00
/**
2008-10-10 14:21:16 -04:00
* WordPress Comment Administration API .
2008-09-16 20:40:10 -04:00
*
* @ package WordPress
* @ subpackage Administration
*/
2007-05-25 03:16:21 -04:00
2008-08-14 02:30:38 -04:00
/**
* { @ internal Missing Short Description }}
*
* @ since unknown
* @ uses $wpdb
*
* @ param string $comment_author
* @ param string $comment_date
* @ return mixed Comment ID on success .
*/
2007-05-25 03:16:21 -04:00
function comment_exists ( $comment_author , $comment_date ) {
global $wpdb ;
2009-03-05 17:16:29 -05:00
$comment_author = stripslashes ( $comment_author );
$comment_date = stripslashes ( $comment_date );
2008-04-14 12:13:25 -04:00
return $wpdb -> get_var ( $wpdb -> prepare ( " SELECT comment_post_ID FROM $wpdb->comments
WHERE comment_author = % s AND comment_date = % s " , $comment_author , $comment_date ) );
2007-05-25 03:16:21 -04:00
}
2008-08-14 02:30:38 -04:00
/**
2008-09-16 20:40:10 -04:00
* { @ internal Missing Short Description }}
2008-08-14 02:30:38 -04:00
*
2008-09-16 20:40:10 -04:00
* @ since unknown
2008-08-14 02:30:38 -04:00
*/
2007-05-25 03:16:21 -04:00
function edit_comment () {
$comment_post_ID = ( int ) $_POST [ 'comment_post_ID' ];
if ( ! current_user_can ( 'edit_post' , $comment_post_ID ))
wp_die ( __ ( 'You are not allowed to edit comments on this post, so you cannot edit this comment.' ));
$_POST [ 'comment_author' ] = $_POST [ 'newcomment_author' ];
$_POST [ 'comment_author_email' ] = $_POST [ 'newcomment_author_email' ];
$_POST [ 'comment_author_url' ] = $_POST [ 'newcomment_author_url' ];
$_POST [ 'comment_approved' ] = $_POST [ 'comment_status' ];
$_POST [ 'comment_content' ] = $_POST [ 'content' ];
$_POST [ 'comment_ID' ] = ( int ) $_POST [ 'comment_ID' ];
2008-04-07 13:06:56 -04:00
foreach ( array ( 'aa' , 'mm' , 'jj' , 'hh' , 'mn' ) as $timeunit ) {
2008-03-16 19:05:16 -04:00
if ( ! empty ( $_POST [ 'hidden_' . $timeunit ] ) && $_POST [ 'hidden_' . $timeunit ] != $_POST [ $timeunit ] ) {
$_POST [ 'edit_date' ] = '1' ;
break ;
}
}
2007-05-25 03:16:21 -04:00
if ( ! empty ( $_POST [ 'edit_date' ] ) ) {
$aa = $_POST [ 'aa' ];
$mm = $_POST [ 'mm' ];
$jj = $_POST [ 'jj' ];
$hh = $_POST [ 'hh' ];
$mn = $_POST [ 'mn' ];
$ss = $_POST [ 'ss' ];
$jj = ( $jj > 31 ) ? 31 : $jj ;
$hh = ( $hh > 23 ) ? $hh - 24 : $hh ;
$mn = ( $mn > 59 ) ? $mn - 60 : $mn ;
$ss = ( $ss > 59 ) ? $ss - 60 : $ss ;
$_POST [ 'comment_date' ] = " $aa - $mm - $jj $hh : $mn : $ss " ;
}
wp_update_comment ( $_POST );
}
2008-09-16 20:40:10 -04:00
/**
* { @ internal Missing Short Description }}
*
* @ since unknown
*
* @ param unknown_type $id
* @ return unknown
*/
2007-05-25 03:16:21 -04:00
function get_comment_to_edit ( $id ) {
2007-06-25 17:30:18 -04:00
if ( ! $comment = get_comment ( $id ) )
return false ;
2007-05-25 03:16:21 -04:00
2007-05-25 05:41:04 -04:00
$comment -> comment_ID = ( int ) $comment -> comment_ID ;
$comment -> comment_post_ID = ( int ) $comment -> comment_post_ID ;
2007-06-04 13:43:22 -04:00
$comment -> comment_content = format_to_edit ( $comment -> comment_content );
$comment -> comment_content = apply_filters ( 'comment_edit_pre' , $comment -> comment_content );
2007-05-25 03:16:21 -04:00
$comment -> comment_author = format_to_edit ( $comment -> comment_author );
$comment -> comment_author_email = format_to_edit ( $comment -> comment_author_email );
$comment -> comment_author_url = format_to_edit ( $comment -> comment_author_url );
2009-07-18 19:21:50 -04:00
$comment -> comment_author_url = esc_url ( $comment -> comment_author_url );
2007-05-25 03:16:21 -04:00
return $comment ;
}
2008-09-16 20:40:10 -04:00
/**
* { @ internal Missing Short Description }}
*
* @ since unknown
* @ uses $wpdb
*
* @ param int $post_id Post ID
* @ return unknown
*/
2007-07-29 15:56:55 -04:00
function get_pending_comments_num ( $post_id ) {
global $wpdb ;
2008-04-22 17:26:01 -04:00
$single = false ;
if ( ! is_array ( $post_id ) ) {
$post_id = ( array ) $post_id ;
$single = true ;
}
$post_id = array_map ( 'intval' , $post_id );
$post_id = " ' " . implode ( " ', ' " , $post_id ) . " ' " ;
$pending = $wpdb -> get_results ( " SELECT comment_post_ID, COUNT(comment_ID) as num_comments FROM $wpdb->comments WHERE comment_post_ID IN ( $post_id ) AND comment_approved = '0' GROUP BY comment_post_ID " , ARRAY_N );
if ( empty ( $pending ) )
return 0 ;
if ( $single )
return $pending [ 0 ][ 1 ];
$pending_keyed = array ();
foreach ( $pending as $pend )
$pending_keyed [ $pend [ 0 ]] = $pend [ 1 ];
return $pending_keyed ;
2007-07-29 15:56:55 -04:00
}
2008-09-16 20:40:10 -04:00
/**
* Add avatars to relevant places in admin , or try to .
*
* @ since unknown
* @ uses $comment
*
* @ param string $name User name .
* @ return string Avatar with Admin name .
*/
2008-02-15 21:39:13 -05:00
function floated_admin_avatar ( $name ) {
global $comment ;
$id = $avatar = false ;
if ( $comment -> comment_author_email )
$id = $comment -> comment_author_email ;
if ( $comment -> user_id )
$id = $comment -> user_id ;
if ( $id )
$avatar = get_avatar ( $id , 32 );
return " $avatar $name " ;
}
2008-10-16 18:23:32 -04:00
function enqueue_comment_hotkeys_js () {
if ( 'true' == get_user_option ( 'comment_shortcuts' ) )
wp_enqueue_script ( 'jquery-table-hotkeys' );
}
2009-03-19 17:52:50 -04:00
if ( is_admin () && isset ( $pagenow ) && ( 'edit-comments.php' == $pagenow || 'edit.php' == $pagenow ) ) {
2008-09-13 14:18:44 -04:00
if ( get_option ( 'show_avatars' ) )
add_filter ( 'comment_author' , 'floated_admin_avatar' );
}
2008-04-07 13:06:56 -04:00
?>