PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.2-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.2-a.1
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-external-media / src / features / admin / external-media-import.php
jetpack / jetpack_vendor / automattic / jetpack-external-media / src / features / admin Last commit date
external-media-import.php 9 months ago
external-media-import.php
166 lines
1 <?php
2 /**
3 * The Jetpack external media import page.
4 *
5 * Adds Jetpack external media page to Media > Import.
6 *
7 * @package automattic/jetpack-external-media
8 */
9
10 namespace Automattic\Jetpack\External_Media;
11
12 use Automattic\Jetpack\Assets;
13 use Automattic\Jetpack\Connection\Manager as Connection_Manager;
14
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit( 0 );
17 }
18
19 /**
20 * Whether the current user is connected to WordPress.com.
21 */
22 function is_current_user_connected() {
23 if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
24 return true;
25 }
26
27 return ( new Connection_Manager( 'jetpack' ) )->is_user_connected();
28 }
29
30 /**
31 * Register the Jetpack external media page to Media > Import.
32 */
33 function add_jetpack_external_media_import_page() {
34 /**
35 * The feature is enabled only when the current user is connected to WordPress.com.
36 */
37 if ( ! is_current_user_connected() ) {
38 return;
39 }
40
41 $external_media_import_page_hook = add_submenu_page(
42 'upload.php',
43 __( 'Import Media', 'jetpack-external-media' ),
44 __( 'Import Media', 'jetpack-external-media' ),
45 'upload_files',
46 'jetpack_external_media_import_page',
47 __NAMESPACE__ . '\render_jetpack_external_media_import_page'
48 );
49
50 add_action( 'load-upload.php', __NAMESPACE__ . '\enqueue_jetpack_external_media_import_button' );
51 add_action( "load-$external_media_import_page_hook", __NAMESPACE__ . '\enqueue_jetpack_external_media_import_page' );
52 }
53 add_action( 'admin_menu', __NAMESPACE__ . '\add_jetpack_external_media_import_page' );
54
55 /**
56 * Enqueue the assets of the Jetpack external media import button.
57 */
58 function enqueue_jetpack_external_media_import_button() {
59 $assets_base_path = 'build/';
60 $asset_name = 'jetpack-external-media-import-button';
61
62 Assets::register_script(
63 $asset_name,
64 $assets_base_path . "$asset_name/$asset_name.js",
65 External_Media::BASE_FILE,
66 array(
67 'in_footer' => true,
68 'textdomain' => 'jetpack-external-media',
69 'css_path' => $assets_base_path . "$asset_name/$asset_name.css",
70 )
71 );
72
73 Assets::enqueue_script( $asset_name );
74 wp_localize_script(
75 $asset_name,
76 'JETPACK_EXTERNAL_MEDIA_IMPORT_BUTTON',
77 array(
78 'href' => admin_url( 'upload.php?page=jetpack_external_media_import_page' ),
79 )
80 );
81 }
82
83 /**
84 * Enqueue the assets of the Jetpack external media page.
85 */
86 function enqueue_jetpack_external_media_import_page() {
87 $assets_base_path = 'build/';
88 $asset_name = 'jetpack-external-media-import-page';
89
90 Assets::register_script(
91 $asset_name,
92 $assets_base_path . "$asset_name/$asset_name.js",
93 External_Media::BASE_FILE,
94 array(
95 'in_footer' => true,
96 'textdomain' => 'jetpack-external-media',
97 )
98 );
99
100 Assets::enqueue_script( $asset_name );
101 }
102
103 /**
104 * Render the container of the Jetpack external media page.
105 */
106 function render_jetpack_external_media_import_page() {
107 $title = __( 'Import Media', 'jetpack-external-media' );
108 $description = __( 'WordPress allows you to import media from various platforms directly into the Media Library. To begin, select a platform from the options below:', 'jetpack-external-media' );
109 $external_media_sources = array(
110 array(
111 'slug' => 'google_photos',
112 'name' => __( 'Google Photos', 'jetpack-external-media' ),
113 'description' => __( 'Import media from your Google Photos account.', 'jetpack-external-media' ),
114 ),
115 array(
116 'slug' => 'pexels',
117 'name' => __( 'Pexels free photos', 'jetpack-external-media' ),
118 'description' => __( 'Free stock photos, royalty free images shared by creators.', 'jetpack-external-media' ),
119 ),
120 array(
121 'slug' => 'openverse',
122 'name' => __( 'Openverse', 'jetpack-external-media' ),
123 'description' => __( 'Explore more than 800 million creative works.', 'jetpack-external-media' ),
124 ),
125 );
126
127 ?>
128 <div id="jetpack-external-media-import" class="wrap">
129 <h1><?php echo esc_html( $title ); ?></h1>
130 <div id="jetpack-external-media-import-notice"></div>
131 <p><?php echo esc_html( $description ); ?></p>
132 <table class="widefat importers striped">
133 <?php
134 foreach ( $external_media_sources as $external_media_source ) {
135 $slug = $external_media_source['slug'];
136 $name = $external_media_source['name'];
137 $description = $external_media_source['description'];
138 $action = sprintf(
139 '<a aria-label="%1$s" style="cursor:pointer;" data-slug="%2$s">%3$s</a>',
140 /* translators: %s: The name of the external media source. */
141 esc_attr( sprintf( __( 'Import %s', 'jetpack-external-media' ), $name ) ),
142 esc_attr( $slug ),
143 __( 'Import now', 'jetpack-external-media' )
144 );
145
146 ?>
147 <tr class='importer-item'>
148 <td class='import-system'>
149 <span class='importer-title'><?php echo esc_html( $name ); ?></span>
150 <span class='importer-action'>
151 <?php echo $action; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- we escape things above. ?>
152 </span>
153 </td>
154 <td class='desc'>
155 <span class='importer-desc'><?php echo esc_html( $description ); ?></span>
156 </td>
157 </tr>
158 <?php
159 }
160 ?>
161 </table>
162 <div id="jetpack-external-media-import-modal"></div>
163 </div>
164 <?php
165 }
166