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 / Formatter / Media / PreviewViewLink.php
codepress-admin-columns / classes / Formatter / Media Last commit date
Audio 2 days ago Video 2 days ago AttachmentMetaData.php 2 days ago AttachmentUrl.php 2 days ago AudioPlayer.php 2 days ago AvailableSizes.php 2 days ago Dimensions.php 2 days ago Download.php 2 days ago ExifData.php 2 days ago FileLinkToUrl.php 2 days ago FileName.php 2 days ago FileSize.php 2 days ago Link.php 2 days ago NestedAttachmentMetaData.php 2 days ago NumberFormat.php 2 days ago PostMimeType.php 2 days ago PreviewViewLink.php 2 days ago VideoEmbed.php 2 days 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 private ExtendedValue $extended_view;
17
18 public function __construct(ExtendedValue $extended_view)
19 {
20 $this->extended_view = $extended_view;
21 }
22
23 private function get_media_type($id): ?string
24 {
25 $mime_type = get_post_field('post_mime_type', $id);
26
27 switch (true) {
28 case in_array($mime_type, (new ValidVideoMimetypes())->apply_filters(), true):
29 return 'video';
30
31 case in_array($mime_type, (new ValidAudioMimetypes())->apply_filters(), true):
32 return 'audio';
33
34 case wp_get_attachment_image_src($id):
35 return 'image';
36
37 default:
38 return null;
39 }
40 }
41
42 public function format(Value $value): Value
43 {
44 if (! $this->get_media_type($value->get_id())) {
45 throw ValueNotFoundException::from_id($value->get_id());
46 }
47
48 $link = $this->extended_view
49 ->get_link($value->get_id(), __('View', 'codepress-admin-columns'))
50 ->with_class("-nopadding -preview")
51 ->with_title(get_the_title($value->get_id()))
52 ->with_edit_link(get_edit_post_link($value->get_id()) ?? '')
53 ->with_download_link(wp_get_attachment_url($value->get_id()) ?: '');
54
55 return $value->with_value($link->render());
56 }
57
58 }
59