PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 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 / Setting / ComponentFactory / Post / FeaturedImageDisplay.php
codepress-admin-columns / classes / Setting / ComponentFactory / Post Last commit date
FeaturedImageDisplay.php 4 days ago
FeaturedImageDisplay.php
75 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Setting\ComponentFactory\Post;
6
7 use AC\Expression\StringComparisonSpecification;
8 use AC\Formatter\FileSizeReadable;
9 use AC\Formatter\Media\Dimensions;
10 use AC\Formatter\Media\FileSize;
11 use AC\FormatterCollection;
12 use AC\Setting\Children;
13 use AC\Setting\ComponentCollection;
14 use AC\Setting\ComponentFactory\BaseComponentFactory;
15 use AC\Setting\ComponentFactory\ImageSize;
16 use AC\Setting\Config;
17 use AC\Setting\Control\Input;
18 use AC\Setting\Control\Input\OptionFactory;
19 use AC\Setting\Control\OptionCollection;
20
21 class FeaturedImageDisplay extends BaseComponentFactory
22 {
23 public const NAME = 'featured_image_display';
24
25 private ImageSize $image_size;
26
27 public function __construct(ImageSize $image_size)
28 {
29 $this->image_size = $image_size;
30 }
31
32 protected function get_label(Config $config): string
33 {
34 return __('Display', 'codepress-admin-columns');
35 }
36
37 protected function get_input(Config $config): Input
38 {
39 return OptionFactory::create_select(
40 self::NAME,
41 OptionCollection::from_array([
42 'image' => __('Image', 'codepress-admin-columns'),
43 'filesize' => __('Filesize', 'codepress-admin-columns'),
44 'dimensions' => __('Dimensions', 'codepress-admin-columns'),
45 ]),
46 $config->get(self::NAME, 'image')
47 );
48 }
49
50 protected function get_children(Config $config): ?Children
51 {
52 return new Children(
53 new ComponentCollection([
54 $this->image_size->create(
55 $config,
56 StringComparisonSpecification::equal('image')
57 ),
58 ])
59 );
60 }
61
62 protected function add_formatters(Config $config, FormatterCollection $formatters): void
63 {
64 if ('filesize' === $this->get_input($config)->get_value()) {
65 $formatters->add(new FileSize());
66 $formatters->add(new FileSizeReadable());
67 }
68
69 if ('dimensions' === $this->get_input($config)->get_value()) {
70 $formatters->add(new Dimensions());
71 }
72 }
73
74 }
75