PluginProbe ʕ •ᴥ•ʔ
Presto Player / 3.0.0-beta1
Presto Player v3.0.0-beta1
4.5.0 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / inc / Blocks / SelfHostedBlock.php
presto-player / inc / Blocks Last commit date
AudioBlock.php 2 years ago MediaHubBlock.php 2 years ago ReusableEditBlock.php 3 years ago ReusableVideoBlock.php 5 years ago SelfHostedBlock.php 2 years ago VimeoBlock.php 2 years ago YouTubeBlock.php 2 years ago
SelfHostedBlock.php
97 lines
1 <?php
2
3 namespace PrestoPlayer\Blocks;
4
5 use PrestoPlayer\Attachment;
6 use PrestoPlayer\Support\Block;
7 use PrestoPlayer\Models\CurrentUser;
8
9 class SelfHostedBlock extends Block
10 {
11 /**
12 * Block name
13 *
14 * @var string
15 */
16 protected $name = 'self-hosted';
17
18 /**
19 * Translated block title
20 */
21 protected $title;
22
23 public function __construct(bool $isPremium = false, $version = 1)
24 {
25 parent::__construct($isPremium, $version);
26 $this->title = __('Self-hosted', 'presto-player');
27 }
28
29 /**
30 * Register the block type.
31 *
32 * @return void
33 */
34 public function registerBlockType()
35 {
36 register_block_type(
37 PRESTO_PLAYER_PLUGIN_DIR . 'src/admin/blocks/blocks/hosted',
38 array(
39 'render_callback' => [$this, 'html'],
40 )
41 );
42 }
43
44 /**
45 * Bail if user cannot access video
46 *
47 * @return void
48 */
49 public function middleware($attributes, $content)
50 {
51 // if private and user cannot access video, don't load
52 if (!empty($attributes['visibility']) && 'private' === $attributes['visibility']) {
53 if (!CurrentUser::canAccessVideo($attributes['id'])) {
54 return false;
55 }
56 }
57
58 return parent::middleware($attributes, $content);
59 }
60
61 /**
62 * Add src to video
63 *
64 * @param array $attributes
65 * @return void
66 */
67 public function sanitizeAttributes($attributes, $default_config)
68 {
69 $src = !empty($attributes['src']) ? $attributes['src'] : '';
70
71 if (!empty($this->isHls($src))) {
72 wp_enqueue_script('hls.js');
73 }
74
75 return [
76 'src' => !empty($attributes['attachment_id']) ? Attachment::getSrc($attributes['attachment_id']) : $src,
77 ];
78 }
79
80 /**
81 * Override attributes
82 *
83 * @param array $attributes
84 * @return array
85 */
86 public function overrideAttributes($attributes)
87 {
88 $load = $this->middleware($attributes, '');
89
90 if (!$load) {
91 return array();
92 }
93
94 return $attributes;
95 }
96 }
97