PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.1-beta.3
Jetpack – WP Security, Backup, Speed, & Growth v16.1-beta.3
16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / jetpack_vendor / automattic / jetpack-videopress / src / class-block-editor-extensions.php
jetpack / jetpack_vendor / automattic / jetpack-videopress / src Last commit date
js 2 months ago tus 1 month ago videopress-divi 2 months ago videopress-divi-5 2 months ago class-access-control.php 3 months ago class-admin-ui.php 3 weeks ago class-ajax.php 1 month ago class-attachment-handler.php 1 month ago class-block-editor-content.php 1 month ago class-block-editor-extensions.php 1 month ago class-block-replacement.php 9 months ago class-caption-tracks.php 1 month ago class-data.php 1 month ago class-divi.php 2 months ago class-initial-state.php 1 month ago class-initializer.php 4 weeks ago class-jwt-token-bridge.php 2 years ago class-module-control.php 3 years ago class-options.php 2 years ago class-package-version.php 3 weeks ago class-plan.php 2 years ago class-rest-controller.php 1 month ago class-site.php 3 years ago class-stats.php 1 year ago class-status.php 9 months ago class-upload-exception.php 3 years ago class-uploader-rest-endpoints.php 9 months ago class-uploader.php 1 month ago class-utils.php 3 months ago class-video-block-email-renderer.php 2 months ago class-videopress-rest-api-v1-features.php 6 months ago class-videopress-rest-api-v1-settings.php 1 month ago class-videopress-rest-api-v1-site.php 2 years ago class-videopress-rest-api-v1-stats.php 3 years ago class-videopresstoken.php 1 month ago class-wpcom-rest-api-v2-attachment-field-videopress.php 9 months ago class-wpcom-rest-api-v2-attachment-videopress-data.php 1 month ago class-wpcom-rest-api-v2-endpoint-videopress-caption-tracks.php 1 month ago class-wpcom-rest-api-v2-endpoint-videopress.php 4 weeks ago class-xmlrpc.php 1 month ago utility-functions.php 4 weeks ago
class-block-editor-extensions.php
174 lines
1 <?php
2 /**
3 * VideoPress Extensions
4 *
5 * @package automattic/jetpack-videopress
6 */
7
8 namespace Automattic\Jetpack\VideoPress;
9
10 use Automattic\Jetpack\Connection\Initial_State as Connection_Initial_State;
11 use Automattic\Jetpack\Constants;
12 use Automattic\Jetpack\Status\Host;
13
14 /**
15 * VideoPress Extensions class.
16 */
17 class Block_Editor_Extensions {
18 /**
19 * What version of the blocks we are loading.
20 *
21 * @var string
22 */
23 public static $blocks_variation = 'production';
24
25 /**
26 * Script handle
27 *
28 * @var string
29 */
30 public static $script_handle = '';
31
32 /**
33 * Initializer
34 *
35 * This method should be called only once by the Block registrar.
36 * Do not call this method again.
37 *
38 * @param string $script_handle - The script handle.
39 */
40 public static function init( $script_handle ) {
41 if ( ! Status::is_registrant_plugin_active() ) {
42 return;
43 }
44
45 /*
46 * Use the videopress/video editor script handle to localize enqueue scripts.
47 * @see https://developer.wordpress.org/reference/functions/generate_block_asset_handle
48 */
49 self::$script_handle = $script_handle;
50
51 /**
52 * Alternative to `JETPACK_BETA_BLOCKS`, set to `true` to load Beta Blocks.
53 *
54 * @since 6.9.0
55 * @deprecated Jetpack 11.8.0 Use jetpack_blocks_variation filter instead.
56 *
57 * @param boolean
58 */
59 if (
60 apply_filters_deprecated(
61 'jetpack_load_beta_blocks',
62 array( false ),
63 'jetpack-11.8.0',
64 'jetpack_blocks_variation'
65 )
66 ) {
67 self::$blocks_variation = 'beta';
68 }
69
70 /*
71 * Get block variation, from the new constant or the old one.
72 */
73 if ( Constants::is_true( 'JETPACK_BETA_BLOCKS' ) ) {
74 self::$blocks_variation = 'beta';
75 }
76
77 $blocks_variation = Constants::get_constant( 'JETPACK_BLOCKS_VARIATION' );
78 if ( ! empty( $blocks_variation ) ) {
79 /**
80 * Allow customizing the variation of blocks in use on a site.
81 * Overwrites any previously set values, whether by constant or filter.
82 *
83 * @since Jetpack 8.1.0
84 *
85 * @param string $block_variation Can be beta, experimental, and production. Defaults to production.
86 */
87 self::$blocks_variation = apply_filters( 'jetpack_blocks_variation', $blocks_variation );
88 }
89
90 // Register the script.
91 add_action( 'enqueue_block_editor_assets', array( __CLASS__, 'enqueue_extensions' ), 1 );
92 }
93
94 /**
95 * Return the extensions list
96 *
97 * @return array The extensions list.
98 */
99 public static function get_list() {
100 $videopress_extensions_file = __DIR__ . '/../build/block-editor/extensions/index.json';
101 $videopress_extensions_file_exists = file_exists( $videopress_extensions_file );
102 if ( ! $videopress_extensions_file_exists ) {
103 return;
104 }
105
106 $videopress_extensions_data = (array) json_decode(
107 // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
108 file_get_contents( $videopress_extensions_file )
109 );
110
111 $extensions_list = array_map(
112 function ( $extension ) {
113 return array(
114 'name' => $extension,
115 'isBeta' => true,
116 'isEnabled' => 'beta' === self::$blocks_variation,
117 );
118 },
119 $videopress_extensions_data['beta']
120 );
121
122 return $extensions_list;
123 }
124
125 /**
126 * Check if the extension is available
127 *
128 * @param string $slug The extension slug.
129 * @return boolean True if the extension is available, false otherwise.
130 */
131 public static function is_extension_available( $slug ) {
132 $extensions_list = self::get_list();
133 foreach ( $extensions_list as $extension ) {
134 if ( $extension['name'] === $slug ) {
135 return $extension['isEnabled'];
136 }
137 }
138
139 return false;
140 }
141
142 /**
143 * Enqueues the extensions script.
144 */
145 public static function enqueue_extensions() {
146 $extensions_list = self::get_list();
147
148 $site_type = 'jetpack';
149 if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
150 $site_type = 'simple';
151 } elseif ( ( new Host() )->is_woa_site() ) {
152 $site_type = 'atomic';
153 }
154
155 $videopress_editor_state = array(
156 'extensions' => $extensions_list,
157 'siteType' => $site_type,
158 'myJetpackConnectUrl' => admin_url( 'admin.php?page=my-jetpack#/connection' ),
159 'jetpackVideoPressSettingUrl' => admin_url( 'admin.php?page=jetpack#/settings?term=videopress' ),
160 'isVideoPressModuleActive' => Status::is_jetpack_plugin_and_videopress_module_active(),
161 'isStandaloneActive' => Status::is_standalone_plugin_active(),
162 'imagesURLBase' => plugin_dir_url( __DIR__ ) . 'build/images/',
163 'playerBridgeUrl' => plugins_url( '../build/lib/player-bridge.js', __FILE__ ),
164 'webpackPublicPath' => plugins_url( '../build/', __FILE__ ),
165 );
166
167 // Expose initial state of site connection
168 Connection_Initial_State::render_script( self::$script_handle );
169
170 // Expose initial state of videoPress editor
171 wp_localize_script( self::$script_handle, 'videoPressEditorState', $videopress_editor_state );
172 }
173 }
174