PluginProbe ʕ •ᴥ•ʔ
Presto Player / trunk
Presto Player vtrunk
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 11 months ago MediaHubBlock.php 11 months ago PopupBlock.php 11 months ago PopupMediaBlock.php 8 months ago PopupTriggerBlock.php 3 weeks ago ReusableEditBlock.php 11 months ago ReusableVideoBlock.php 2 months ago SelfHostedBlock.php 11 months ago VimeoBlock.php 11 months ago YouTubeBlock.php 1 week ago
SelfHostedBlock.php
94 lines
1 <?php
2 /**
3 * Self Hosted Block.
4 *
5 * @package PrestoPlayer\Blocks
6 */
7
8 namespace PrestoPlayer\Blocks;
9
10 use PrestoPlayer\Attachment;
11 use PrestoPlayer\Support\Block;
12 use PrestoPlayer\Models\CurrentUser;
13
14 /**
15 * Self Hosted Block.
16 */
17 class SelfHostedBlock extends Block {
18
19 /**
20 * Block name
21 *
22 * @var string
23 */
24 protected $name = 'self-hosted';
25
26 /**
27 * Register the block type.
28 *
29 * @return void
30 */
31 public function registerBlockType() {
32
33 register_block_type(
34 PRESTO_PLAYER_PLUGIN_DIR . 'src/admin/blocks/blocks/hosted',
35 array(
36 'render_callback' => array( $this, 'html' ),
37 )
38 );
39 }
40
41 /**
42 * Bail if user cannot access video.
43 *
44 * @param array $attributes Block attributes.
45 * @param string $content Block content.
46 * @return bool
47 */
48 public function middleware( $attributes, $content ) {
49 // If private and user cannot access video, don't load.
50 if ( ! empty( $attributes['visibility'] ) && 'private' === $attributes['visibility'] ) {
51 if ( ! CurrentUser::canAccessVideo( $attributes['id'] ) ) {
52 return false;
53 }
54 }
55
56 return parent::middleware( $attributes, $content );
57 }
58
59 /**
60 * Add src to video.
61 *
62 * @param array $attributes Block attributes.
63 * @param array $default_config Default config.
64 * @return array
65 */
66 public function sanitizeAttributes( $attributes, $default_config ) {
67 $src = ! empty( $attributes['src'] ) ? $attributes['src'] : '';
68
69 if ( ! empty( $this->isHls( $src ) ) ) {
70 wp_enqueue_script( 'hls.js' );
71 }
72
73 return array(
74 'src' => ! empty( $attributes['attachment_id'] ) ? Attachment::getSrc( $attributes['attachment_id'] ) : $src,
75 );
76 }
77
78 /**
79 * Override attributes.
80 *
81 * @param array $attributes Block attributes.
82 * @return array
83 */
84 public function overrideAttributes( $attributes ) {
85 $load = $this->middleware( $attributes, '' );
86
87 if ( ! $load ) {
88 return array();
89 }
90
91 return $attributes;
92 }
93 }
94