PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.0.13
Admin Columns v7.0.13
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 / ColumnFactory / User / PostCountFactory.php
codepress-admin-columns / classes / ColumnFactory / User Last commit date
AuthorSlugFactory.php 3 months ago CommentCountFactory.php 3 months ago DescriptionFactory.php 3 months ago DisplayNameFactory.php 3 months ago FirstNameFactory.php 3 months ago FirstPostFactory.php 3 months ago FullNameFactory.php 3 months ago LastNameFactory.php 3 months ago LastPostFactory.php 3 months ago NicknameFactory.php 3 months ago PostCountFactory.php 3 months ago RegisteredDateFactory.php 3 months ago ShowToolbarFactory.php 3 months ago UserIdFactory.php 3 months ago UserNameFactory.php 3 months ago UserUrlFactory.php 3 months ago VisualEditingFactory.php 3 months ago
PostCountFactory.php
73 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\ColumnFactory\User;
6
7 use AC;
8 use AC\Column\BaseColumnFactory;
9 use AC\FormatterCollection;
10 use AC\Setting\ComponentCollection;
11 use AC\Setting\ComponentFactory;
12 use AC\Setting\Config;
13 use AC\Setting\DefaultSettingsBuilder;
14
15 class PostCountFactory extends BaseColumnFactory
16 {
17
18 private ComponentFactory\PostTypeFactory $post_type_factory;
19
20 private ComponentFactory\PostStatus $post_status;
21
22 public function __construct(
23 DefaultSettingsBuilder $default_settings_builder,
24 ComponentFactory\PostStatus $post_status,
25 ComponentFactory\PostTypeFactory $post_type_factory
26 ) {
27 parent::__construct($default_settings_builder);
28
29 $this->post_status = $post_status;
30 $this->post_type_factory = $post_type_factory;
31 }
32
33 public function get_label(): string
34 {
35 return __('Post Count', 'codepress-admin-columns');
36 }
37
38 public function get_column_type(): string
39 {
40 return 'column-user_postcount';
41 }
42
43 protected function get_formatters(Config $config): FormatterCollection
44 {
45 return parent::get_formatters($config)
46 ->add(
47 new AC\Formatter\User\PostCount(
48 $this->get_post_types($config) ?: [],
49 $config->get('post_status') ?: []
50 )
51 );
52 }
53
54 protected function get_settings(Config $config): ComponentCollection
55 {
56 return new ComponentCollection([
57 $this->post_type_factory->create(true)->create($config),
58 $this->post_status->create($config),
59 ]);
60 }
61
62 private function get_post_types(Config $config): ?array
63 {
64 $post_type = $config->get('post_type');
65
66 if (in_array($post_type, ['any', ''], true)) {
67 return null;
68 }
69
70 return [$post_type];
71 }
72
73 }