1 | <?php |
---|
2 | /** |
---|
3 | * WordPress Comment Administration API. |
---|
4 | * |
---|
5 | * @package WordPress |
---|
6 | * @subpackage Administration |
---|
7 | */ |
---|
8 | |
---|
9 | /** |
---|
10 | * {@internal Missing Short Description}} |
---|
11 | * |
---|
12 | * @since 2.0.0 |
---|
13 | * @uses $wpdb |
---|
14 | * |
---|
15 | * @param string $comment_author Author of the comment |
---|
16 | * @param string $comment_date Date of the comment |
---|
17 | * @return mixed Comment ID on success. |
---|
18 | */ |
---|
19 | function comment_exists($comment_author, $comment_date) { |
---|
20 | global $wpdb; |
---|
21 | |
---|
22 | $comment_author = stripslashes($comment_author); |
---|
23 | $comment_date = stripslashes($comment_date); |
---|
24 | |
---|
25 | return $wpdb->get_var( $wpdb->prepare("SELECT comment_post_ID FROM $wpdb->comments |
---|
26 | WHERE comment_author = %s AND comment_date = %s", $comment_author, $comment_date) ); |
---|
27 | } |
---|
28 | |
---|
29 | /** |
---|
30 | * Update a comment with values provided in $_POST. |
---|
31 | * |
---|
32 | * @since 2.0.0 |
---|
33 | */ |
---|
34 | function edit_comment() { |
---|
35 | $comment_post_ID = (int) $_POST['comment_post_ID']; |
---|
36 | |
---|
37 | if (!current_user_can( 'edit_comment', $comment_post_ID )) |
---|
38 | wp_die( __('You are not allowed to edit comments on this post, so you cannot edit this comment.' ) ); |
---|
39 | |
---|
40 | $_POST['comment_author'] = $_POST['newcomment_author']; |
---|
41 | $_POST['comment_author_email'] = $_POST['newcomment_author_email']; |
---|
42 | $_POST['comment_author_url'] = $_POST['newcomment_author_url']; |
---|
43 | $_POST['comment_approved'] = $_POST['comment_status']; |
---|
44 | $_POST['comment_content'] = $_POST['content']; |
---|
45 | $_POST['comment_ID'] = (int) $_POST['comment_ID']; |
---|
46 | |
---|
47 | foreach ( array ('aa', 'mm', 'jj', 'hh', 'mn') as $timeunit ) { |
---|
48 | if ( !empty( $_POST['hidden_' . $timeunit] ) && $_POST['hidden_' . $timeunit] != $_POST[$timeunit] ) { |
---|
49 | $_POST['edit_date'] = '1'; |
---|
50 | break; |
---|
51 | } |
---|
52 | } |
---|
53 | |
---|
54 | if ( !empty ( $_POST['edit_date'] ) ) { |
---|
55 | $aa = $_POST['aa']; |
---|
56 | $mm = $_POST['mm']; |
---|
57 | $jj = $_POST['jj']; |
---|
58 | $hh = $_POST['hh']; |
---|
59 | $mn = $_POST['mn']; |
---|
60 | $ss = $_POST['ss']; |
---|
61 | $jj = ($jj > 31 ) ? 31 : $jj; |
---|
62 | $hh = ($hh > 23 ) ? $hh -24 : $hh; |
---|
63 | $mn = ($mn > 59 ) ? $mn -60 : $mn; |
---|
64 | $ss = ($ss > 59 ) ? $ss -60 : $ss; |
---|
65 | $_POST['comment_date'] = "$aa-$mm-$jj $hh:$mn:$ss"; |
---|
66 | } |
---|
67 | |
---|
68 | wp_update_comment( $_POST ); |
---|
69 | } |
---|
70 | |
---|
71 | /** |
---|
72 | * {@internal Missing Short Description}} |
---|
73 | * |
---|
74 | * @since 2.0.0 |
---|
75 | * |
---|
76 | * @param int $id ID of comment to retrieve |
---|
77 | * @return bool|object Comment if found. False on failure. |
---|
78 | */ |
---|
79 | function get_comment_to_edit( $id ) { |
---|
80 | if ( !$comment = get_comment($id) ) |
---|
81 | return false; |
---|
82 | |
---|
83 | $comment->comment_ID = (int) $comment->comment_ID; |
---|
84 | $comment->comment_post_ID = (int) $comment->comment_post_ID; |
---|
85 | |
---|
86 | $comment->comment_content = format_to_edit( $comment->comment_content ); |
---|
87 | $comment->comment_content = apply_filters( 'comment_edit_pre', $comment->comment_content); |
---|
88 | |
---|
89 | $comment->comment_author = format_to_edit( $comment->comment_author ); |
---|
90 | $comment->comment_author_email = format_to_edit( $comment->comment_author_email ); |
---|
91 | $comment->comment_author_url = format_to_edit( $comment->comment_author_url ); |
---|
92 | $comment->comment_author_url = esc_url($comment->comment_author_url); |
---|
93 | |
---|
94 | return $comment; |
---|
95 | } |
---|
96 | |
---|
97 | /** |
---|
98 | * Get the number of pending comments on a post or posts |
---|
99 | * |
---|
100 | * @since 2.3.0 |
---|
101 | * @uses $wpdb |
---|
102 | * |
---|
103 | * @param int|array $post_id Either a single Post ID or an array of Post IDs |
---|
104 | * @return int|array Either a single Posts pending comments as an int or an array of ints keyed on the Post IDs |
---|
105 | */ |
---|
106 | function get_pending_comments_num( $post_id ) { |
---|
107 | global $wpdb; |
---|
108 | |
---|
109 | $single = false; |
---|
110 | if ( !is_array($post_id) ) { |
---|
111 | $post_id_array = (array) $post_id; |
---|
112 | $single = true; |
---|
113 | } else { |
---|
114 | $post_id_array = $post_id; |
---|
115 | } |
---|
116 | $post_id_array = array_map('intval', $post_id_array); |
---|
117 | $post_id_in = "'" . implode("', '", $post_id_array) . "'"; |
---|
118 | |
---|
119 | $pending = $wpdb->get_results( "SELECT comment_post_ID, COUNT(comment_ID) as num_comments FROM $wpdb->comments WHERE comment_post_ID IN ( $post_id_in ) AND comment_approved = '0' GROUP BY comment_post_ID", ARRAY_A ); |
---|
120 | |
---|
121 | if ( $single ) { |
---|
122 | if ( empty($pending) ) |
---|
123 | return 0; |
---|
124 | else |
---|
125 | return absint($pending[0]['num_comments']); |
---|
126 | } |
---|
127 | |
---|
128 | $pending_keyed = array(); |
---|
129 | |
---|
130 | // Default to zero pending for all posts in request |
---|
131 | foreach ( $post_id_array as $id ) |
---|
132 | $pending_keyed[$id] = 0; |
---|
133 | |
---|
134 | if ( !empty($pending) ) |
---|
135 | foreach ( $pending as $pend ) |
---|
136 | $pending_keyed[$pend['comment_post_ID']] = absint($pend['num_comments']); |
---|
137 | |
---|
138 | return $pending_keyed; |
---|
139 | } |
---|
140 | |
---|
141 | /** |
---|
142 | * Add avatars to relevant places in admin, or try to. |
---|
143 | * |
---|
144 | * @since 2.5.0 |
---|
145 | * @uses $comment |
---|
146 | * |
---|
147 | * @param string $name User name. |
---|
148 | * @return string Avatar with Admin name. |
---|
149 | */ |
---|
150 | function floated_admin_avatar( $name ) { |
---|
151 | global $comment; |
---|
152 | $avatar = get_avatar( $comment, 32 ); |
---|
153 | return "$avatar $name"; |
---|
154 | } |
---|
155 | |
---|
156 | function enqueue_comment_hotkeys_js() { |
---|
157 | if ( 'true' == get_user_option( 'comment_shortcuts' ) ) |
---|
158 | wp_enqueue_script( 'jquery-table-hotkeys' ); |
---|
159 | } |
---|
160 | ?> |
---|