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