PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 15.9.1
Jetpack – WP Security, Backup, Speed, & Growth v15.9.1
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 / modules / shortcodes / vr.php
jetpack / modules / shortcodes Last commit date
css 1 month ago images 1 year ago img 1 month ago js 7 months ago archiveorg-book.php 7 months ago archiveorg.php 3 weeks ago archives.php 1 month ago bandcamp.php 7 months ago brightcove.php 6 months ago cartodb.php 7 months ago class.filter-embedded-html-objects.php 7 months ago codepen.php 7 months ago crowdsignal.php 6 months ago dailymotion.php 7 months ago descript.php 7 months ago facebook.php 7 months ago flatio.php 7 months ago flickr.php 6 months ago getty.php 7 months ago gist.php 7 months ago googleapps.php 7 months ago googlemaps.php 1 month ago googleplus.php 7 months ago gravatar.php 7 months ago houzz.php 7 months ago inline-pdfs.php 7 months ago instagram.php 7 months ago kickstarter.php 7 months ago mailchimp.php 3 weeks ago medium.php 7 months ago mixcloud.php 7 months ago others.php 7 months ago pinterest.php 7 months ago presentations.php 7 months ago quiz.php 7 months ago recipe.php 1 week ago scribd.php 7 months ago shortcode-utils.php 7 months ago sitemap.php 7 months ago slideshare.php 7 months ago slideshow.php 1 month ago smartframe.php 7 months ago soundcloud.php 3 weeks ago spotify.php 7 months ago ted.php 7 months ago tweet.php 7 months ago twitchtv.php 1 week ago twitter-timeline.php 7 months ago twitter.php 7 months ago unavailable.php 7 months ago untappd-menu.php 7 months ago upcoming-events.php 7 months ago ustream.php 7 months ago videopress.php 7 months ago vimeo.php 1 month ago vine.php 7 months ago vr.php 1 month ago wufoo.php 7 months ago youtube.php 4 months ago
vr.php
165 lines
1 <?php
2 /**
3 * VR Viewer Shortcode
4 * converts [vr] shortcode to an iframe viewer hosted on vr.me.sh
5 *
6 * @package automattic/jetpack
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit( 0 );
11 }
12
13 /**
14 * Scrub URL paramaters for VR viewer
15 *
16 * @param array $params {
17 * parameter array which is passed to the jetpack_vr_viewer.
18 *
19 * @type string $url url of 360 media
20 * @type string $guid guid for videopress
21 * @type string $view cinema, 360 - controls if panaroma view, or 360
22 * @type string $rotation number for rotating media
23 * @type string $preview show preview image or not
24 * }
25 *
26 * @return array|false $url_params Array of URL parameters.
27 */
28 function jetpack_vr_viewer_get_viewer_url_params( $params ) {
29 $url_params = array();
30
31 if ( isset( $params['rotation'] ) ) {
32 $url_params['rotation'] = (int) $params['rotation'];
33 }
34
35 if ( isset( $params['view'] ) && in_array( $params['view'], array( 'cinema', '360' ), true ) ) {
36 $url_params['view'] = $params['view'];
37 }
38
39 if ( isset( $params['preview'] ) && $params['preview'] ) {
40 $url_params['preview'] = 1;
41 }
42
43 if ( isset( $params['url'] ) ) {
44 return array_merge( $url_params, array( 'url' => $params['url'] ) );
45 } elseif ( isset( $params['guid'] ) ) {
46 return array_merge( $url_params, array( 'guid' => $params['guid'] ) );
47 }
48
49 return false;
50 }
51
52 /**
53 * Get padding for IFRAME depending on view type
54 *
55 * @param string $view string cinema, 360 - default cinema.
56 *
57 * @return string $css padding
58 */
59 function jetpack_vr_viewer_iframe_padding( $view ) {
60 if ( '360' === $view ) {
61 return '100%'; // 1:1 square aspect for 360
62 }
63
64 return '50%'; // 2:1 panorama aspect
65 }
66
67 /**
68 * Create HTML for VR Viewer IFRAME and wrapper
69 * The viewer code is hosted on vr.me.sh site which is then displayed
70 * within posts via an IFRAME. This function returns the IFRAME html.
71 *
72 * @param array $url_params {
73 * parameter array which is passed to the jetpack_vr_viewer.
74 *
75 * @type string $url url of 360 media
76 * @type string $guid guid for videopress
77 * @type string $view cinema, 360 - controls if panaroma view, or 360
78 * @type string $rotation number for rotating media
79 * @type string $preview show preview image or not
80 * }
81 *
82 * @return string $rtn an iframe for viewer.
83 */
84 function jetpack_vr_viewer_get_html( $url_params ) {
85 global $content_width;
86
87 $iframe = add_query_arg( $url_params, 'https://vr.me.sh/view/' );
88
89 // set some defaults.
90 $maxwidth = ( is_numeric( $content_width ) && $content_width > 0 ) ? $content_width : 720;
91 $view = $url_params['view'] ?? 'cinema';
92
93 // If the shortcode is displayed in a WPCOM notification, display a simple link only.
94 if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
95 require_once WP_CONTENT_DIR . '/lib/display-context.php';
96 $context = A8C\Display_Context\get_current_context();
97 if ( A8C\Display_Context\NOTIFICATIONS === $context ) {
98 return sprintf(
99 '<a href="%1$s" target="_blank" rel="noopener noreferrer">%1$s</a>',
100 esc_url( $iframe )
101 );
102 }
103 }
104
105 $rtn = '<div style="position: relative; max-width: ' . $maxwidth . 'px; margin-left: auto; margin-right: auto; overflow: hidden; margin-bottom: 1em;">';
106 $rtn .= '<div style="padding-top: ' . jetpack_vr_viewer_iframe_padding( $view ) . ';"></div>';
107 $rtn .= '<iframe style="position: absolute; top: 0; right: 0; bottom: 0; left: 0; height: 100%" allowfullscreen="true" frameborder="0" width="100%" height="300" src="' . esc_url( $iframe ) . '">';
108 $rtn .= '</iframe>';
109 $rtn .= '</div>';
110
111 return $rtn;
112 }
113
114 /**
115 * Convert [vr] shortcode to viewer
116 *
117 * Shortcode example:
118 * [vr url="https://en-blog.files.wordpress.com/2016/12/regents_park.jpg" view="360"]
119 *
120 * VR Viewer embed code:
121 * <div style="position: relative; max-width: 720px; margin-left: auto; margin-right: auto; overflow: hidden;">
122 * <div style="padding-top: 100%;"></div>
123 * <iframe style="position: absolute; top: 0; right: 0; bottom: 0; left: 0; height: 100%" allowfullscreen="true" frameborder="0" width="100%" height="400" src="https://vr.me.sh/view/?view=360&amp;url=https://en-blog.files.wordpress.com/2016/12/regents_park.jpg">
124 * </iframe>
125 * </div>
126 *
127 * @param array $atts Shortcode attributes.
128 *
129 * @return string complete vr viewer html
130 */
131 function jetpack_vr_viewer_shortcode( $atts ) {
132 $params = shortcode_atts(
133 array(
134 0 => null,
135 'url' => null,
136 'src' => null,
137 'guid' => null,
138 'rotation' => null,
139 'view' => null,
140 'preview' => false,
141 ),
142 $atts
143 );
144
145 // We offer a few ways to specify the URL.
146 if ( $params[0] ) {
147 $params['url'] = $params[0];
148 } elseif ( $params['src'] ) {
149 $params['url'] = $params['src'];
150 }
151
152 $url_params = jetpack_vr_viewer_get_viewer_url_params( $params );
153 if ( $url_params ) {
154 return jetpack_vr_viewer_get_html( $url_params );
155 }
156
157 // add check for user.
158 if ( current_user_can( 'edit_posts' ) ) {
159 return '[vr] shortcode requires a data source to be given';
160 } else {
161 return '';
162 }
163 }
164 add_shortcode( 'vr', 'jetpack_vr_viewer_shortcode' );
165