PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.0.13
Admin Columns v7.0.13
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 / Formatter / Media / PreviewViewLink.php
codepress-admin-columns / classes / Formatter / Media Last commit date
Audio 5 months ago Video 5 months ago AttachmentMetaData.php 5 months ago AttachmentUrl.php 5 months ago AudioPlayer.php 5 months ago AvailableSizes.php 5 months ago Dimensions.php 5 months ago Download.php 5 months ago ExifData.php 5 months ago FileLinkToUrl.php 5 months ago FileName.php 5 months ago FileSize.php 5 months ago Link.php 5 months ago NestedAttachmentMetaData.php 5 months ago NumberFormat.php 5 months ago PostMimeType.php 5 months ago PreviewViewLink.php 5 months ago VideoEmbed.php 5 months ago
PreviewViewLink.php
59 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Formatter\Media;
6
7 use AC\ApplyFilter\ValidAudioMimetypes;
8 use AC\ApplyFilter\ValidVideoMimetypes;
9 use AC\Exception\ValueNotFoundException;
10 use AC\Formatter;
11 use AC\Type\Value;
12 use AC\Value\Extended\ExtendedValue;
13
14 class PreviewViewLink implements Formatter
15 {
16
17 private ExtendedValue $extended_view;
18
19 public function __construct(ExtendedValue $extended_view)
20 {
21 $this->extended_view = $extended_view;
22 }
23
24 private function get_media_type($id): ?string
25 {
26 $mime_type = get_post_field('post_mime_type', $id);
27
28 switch (true) {
29 case in_array($mime_type, (new ValidVideoMimetypes())->apply_filters(), true):
30 return 'video';
31
32 case in_array($mime_type, (new ValidAudioMimetypes())->apply_filters(), true):
33 return 'audio';
34
35 case wp_get_attachment_image_src($id):
36 return 'image';
37
38 default:
39 return null;
40 }
41 }
42
43 public function format(Value $value): Value
44 {
45 if ( ! $this->get_media_type($value->get_id())) {
46 throw ValueNotFoundException::from_id($value->get_id());
47 }
48
49 $link = $this->extended_view
50 ->get_link($value->get_id(), __('View', 'codepress-admin-columns'))
51 ->with_class("-nopadding -preview")
52 ->with_title(get_the_title($value->get_id()))
53 ->with_edit_link(get_edit_post_link($value->get_id()))
54 ->with_download_link(wp_get_attachment_url($value->get_id()));
55
56 return $value->with_value($link->render());
57 }
58
59 }