PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 10.1
Jetpack – WP Security, Backup, Speed, & Growth v10.1
16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 All 501 releases
jetpack / functions.gallery.php

functions.gallery.php in Jetpack – WP Security, Backup, Speed, & Growth 10.1, at functions.gallery.php

104 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 use Automattic\Jetpack\Assets;
4
5 /**
6 * Renders extra controls in the Gallery Settings section of the new media UI.
7 */
8 class Jetpack_Gallery_Settings {
9 function __construct() {
10 add_action( 'admin_init', array( $this, 'admin_init' ) );
11 }
12
13 function admin_init() {
14 /**
15 * Filter the available gallery types.
16 *
17 * @module shortcodes, tiled-gallery
18 *
19 * @since 2.5.1
20 *
21 * @param array $value Array of the default thumbnail grid gallery type. Default array contains one key, ‘default’.
22 *
23 */
24 $this->gallery_types = apply_filters( 'jetpack_gallery_types', array( 'default' => __( 'Thumbnail Grid', 'jetpack' ) ) );
25
26 // Enqueue the media UI only if needed.
27 if ( count( $this->gallery_types ) > 1 ) {
28 add_action( 'wp_enqueue_media', array( $this, 'wp_enqueue_media' ) );
29 add_action( 'print_media_templates', array( $this, 'print_media_templates' ) );
30 }
31 // Add Slideshow and Galleries functionality to core's media gallery widget.
32 add_filter( 'widget_media_gallery_instance_schema', array( $this, 'core_media_widget_compat' ) );
33 }
34
35 /**
36 * Updates the schema of the core gallery widget so we can save the
37 * fields that we add to Gallery Widgets, like `type` and `conditions`
38 *
39 * @param $schema The current schema for the core gallery widget
40 *
41 * @return array the updated schema
42 */
43 public function core_media_widget_compat( $schema ) {
44 $schema['type'] = array(
45 'type' => 'string',
46 'enum' => array_keys( $this->gallery_types ),
47 'description' => __( 'Type of gallery.', 'jetpack' ),
48 'default' => 'default',
49 );
50 return $schema;
51 }
52
53 /**
54 * Registers/enqueues the gallery settings admin js.
55 */
56 function wp_enqueue_media() {
57 if ( ! wp_script_is( 'jetpack-gallery-settings', 'registered' ) ) {
58 /**
59 * This only happens if we're not in Jetpack, but on WPCOM instead.
60 * This is the correct path for WPCOM.
61 */
62 wp_register_script(
63 'jetpack-gallery-settings',
64 Assets::get_file_url_for_environment( '_inc/build/gallery-settings.min.js', '_inc/gallery-settings.js' ),
65 array( 'media-views' ),
66 '20121225'
67 );
68 }
69
70 wp_enqueue_script( 'jetpack-gallery-settings' );
71 }
72
73 /**
74 * Outputs a view template which can be used with wp.media.template
75 */
76 function print_media_templates() {
77 /**
78 * Filter the default gallery type.
79 *
80 * @module tiled-gallery
81 *
82 * @since 2.5.1
83 *
84 * @param string $value A string of the gallery type. Default is ‘default’.
85 *
86 */
87 $default_gallery_type = apply_filters( 'jetpack_default_gallery_type', 'default' );
88
89 ?>
90 <script type="text/html" id="tmpl-jetpack-gallery-settings">
91 <label class="setting">
92 <span><?php _e( 'Type', 'jetpack' ); ?></span>
93 <select class="type" name="type" data-setting="type">
94 <?php foreach ( $this->gallery_types as $value => $caption ) : ?>
95 <option value="<?php echo esc_attr( $value ); ?>" <?php selected( $value, $default_gallery_type ); ?>><?php echo esc_html( $caption ); ?></option>
96 <?php endforeach; ?>
97 </select>
98 </label>
99 </script>
100 <?php
101 }
102 }
103 new Jetpack_Gallery_Settings;
104