PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.3.2
Admin Columns v4.3.2
7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Settings / Column / CommentCount.php
codepress-admin-columns / classes / Settings / Column Last commit date
BeforeAfter 5 years ago Pro 5 years ago ActionIcons.php 5 years ago AttachmentDisplay.php 5 years ago BeforeAfter.php 5 years ago CharacterLimit.php 5 years ago Comment.php 5 years ago CommentCount.php 5 years ago CommentLink.php 5 years ago CustomField.php 5 years ago CustomFieldType.php 5 years ago Date.php 5 years ago DateTimeFormat.php 5 years ago ExifData.php 5 years ago Image.php 5 years ago Images.php 5 years ago Label.php 5 years ago LinkLabel.php 5 years ago LinkToMenu.php 5 years ago MediaLink.php 5 years ago Message.php 5 years ago Meta.php 5 years ago MissingImageSize.php 5 years ago NumberFormat.php 5 years ago NumberOfItems.php 5 years ago Password.php 5 years ago PathScope.php 5 years ago Post.php 5 years ago PostFormatIcon.php 5 years ago PostLink.php 5 years ago PostStatus.php 5 years ago PostType.php 5 years ago Pro.php 5 years ago Separator.php 5 years ago StatusIcon.php 5 years ago StringLimit.php 5 years ago Taxonomy.php 5 years ago Term.php 5 years ago TermLink.php 5 years ago Time.php 5 years ago Toggle.php 5 years ago Type.php 5 years ago User.php 5 years ago UserLink.php 5 years ago Width.php 5 years ago WordLimit.php 5 years ago WordsPerMinute.php 5 years ago
CommentCount.php
127 lines
1 <?php
2
3 namespace AC\Settings\Column;
4
5 use AC\Settings;
6 use AC\View;
7
8 class CommentCount extends Settings\Column
9 implements Settings\FormatValue {
10
11 const NAME = 'comment_count';
12
13 const STATUS_ALL = 'all';
14 const STATUS_APPROVED = 'approved';
15 const STATUS_PENDING = 'moderated';
16 const STATUS_SPAM = 'spam';
17 const STATUS_TRASH = 'trash';
18 const STATUS_TOTAL_COMMENTS = 'total_comments';
19
20 /**
21 * @var string
22 */
23 private $comment_status;
24
25 protected function set_name() {
26 $this->name = self::NAME;
27 }
28
29 protected function define_options() {
30 return [
31 'comment_status' => self::STATUS_ALL,
32 ];
33 }
34
35 /**
36 * @return View
37 */
38 public function create_view() {
39 $setting = $this->create_element( 'select' )
40 ->set_options( $this->get_comment_statuses() );
41
42 $view = new View( [
43 'label' => __( 'Comment status', 'codepress-admin-columns' ),
44 'tooltip' => __( 'Select which comment status you like to display.', 'codepress-admin-columns' ),
45 'setting' => $setting,
46 ] );
47
48 return $view;
49 }
50
51 /**
52 * @return array
53 */
54 protected function get_comment_statuses() {
55 $options = [
56 self::STATUS_APPROVED => __( 'Approved', 'codepress-admin-columns' ),
57 self::STATUS_PENDING => __( 'Pending', 'codepress-admin-columns' ),
58 self::STATUS_SPAM => __( 'Spam', 'codepress-admin-columns' ),
59 self::STATUS_TRASH => __( 'Trash', 'codepress-admin-columns' ),
60 ];
61
62 natcasesort( $options );
63
64 // First
65 $options = [ self::STATUS_ALL => __( 'Total', 'codepress-admin-columns' ) ] + $options;
66
67 return $options;
68 }
69
70 /**
71 * @return int
72 */
73 public function get_comment_status() {
74 return $this->comment_status;
75 }
76
77 /**
78 * @param string $comment_status
79 *
80 * @return bool
81 */
82 public function set_comment_status( $comment_status ) {
83 if ( self::STATUS_TOTAL_COMMENTS === $comment_status ) {
84 $comment_status = self::STATUS_ALL;
85 }
86
87 $this->comment_status = $comment_status;
88
89 return true;
90 }
91
92 /**
93 * @param int $post_id
94 *
95 * @return int
96 */
97 public function get_comment_count( $post_id ) {
98 $status = $this->get_comment_status();
99 $count = wp_count_comments( $post_id );
100
101 if ( empty( $count->$status ) ) {
102 return false;
103 }
104
105 return $count->$status;
106 }
107
108 /**
109 * @param int $post_id
110 * @param int $original_value
111 *
112 * @return false|string
113 */
114 public function format( $post_id, $original_value ) {
115 $count = $this->get_comment_count( $post_id );
116
117 if ( ! $count ) {
118 return $this->column->get_empty_char();
119 }
120
121 return ac_helper()->html->link( add_query_arg( [
122 'p' => $post_id,
123 'comment_status' => $this->get_comment_status(),
124 ], admin_url( 'edit-comments.php' ) ), $count );
125 }
126
127 }