PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 12.5.2
Jetpack – WP Security, Backup, Speed, & Growth v12.5.2
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 / slideshare.php
jetpack / modules / shortcodes Last commit date
css 3 years ago images 12 years ago img 13 years ago js 4 years 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 3 years ago codepen.php 5 years ago crowdsignal.php 3 years ago dailymotion.php 3 years ago descript.php 4 years ago facebook.php 3 years ago flatio.php 5 years ago flickr.php 3 years ago getty.php 3 years ago gist.php 3 years ago googleapps.php 3 years ago googlemaps.php 5 years ago googleplus.php 5 years ago gravatar.php 3 years ago houzz.php 5 years ago inline-pdfs.php 4 years ago instagram.php 3 years ago kickstarter.php 3 years ago mailchimp.php 3 years ago medium.php 3 years ago mixcloud.php 3 years ago others.php 3 years ago pinterest.php 5 years ago presentations.php 3 years ago quiz.php 4 years ago recipe.php 3 years ago scribd.php 5 years ago sitemap.php 5 years ago slideshare.php 5 years ago slideshow.php 3 years ago smartframe.php 3 years ago soundcloud.php 3 years ago spotify.php 4 years ago ted.php 5 years ago tweet.php 3 years ago twitchtv.php 5 years ago twitter-timeline.php 5 years ago unavailable.php 3 years ago untappd-menu.php 3 years ago upcoming-events.php 3 years ago ustream.php 5 years ago videopress.php 4 years ago vimeo.php 3 years ago vine.php 5 years ago vr.php 3 years ago wordads.php 5 years ago wufoo.php 3 years ago youtube.php 3 years ago
slideshare.php
136 lines
1 <?php
2 /**
3 * Slideshare shortcode
4 *
5 * Formats:
6 * Old style (still compatible): [slideshare id=5342235&doc=camprock-101002163655-phpapp01&w=300&h=200]
7 * New style: [slideshare id=5342235&w=300&h=200&fb=0&mw=0&mh=0&sc=no]
8 *
9 * Legend:
10 * id = Document ID provided by Slideshare
11 * w = Width of iFrame (int)
12 * h = Height of iFrame (int)
13 * fb = iFrame frameborder (int)
14 * mw = iFrame marginwidth (int)
15 * mh = iFrame marginheight (int)
16 * sc = iFrame Scrollbar (yes/no)
17 * pro = Slideshare Pro (yes/no)
18 * style = Inline CSS (string)
19 *
20 * @package automattic/jetpack
21 */
22
23 /**
24 * Register and display shortcode.
25 *
26 * @param array $atts Shortcode attributes.
27 */
28 function slideshare_shortcode( $atts ) {
29 global $content_width;
30
31 $params = shortcode_new_to_old_params( $atts );
32 parse_str( $params, $arguments );
33
34 if ( empty( $arguments ) ) {
35 return '<!-- SlideShare error: no arguments -->';
36 }
37
38 $attr = shortcode_atts(
39 array(
40 'id' => '',
41 'w' => '',
42 'h' => '',
43 'fb' => '',
44 'mw' => '',
45 'mh' => '',
46 'sc' => '',
47 'pro' => '',
48 'style' => '',
49 ),
50 $arguments
51 );
52
53 // check that the Slideshare ID contains letters, numbers and query strings.
54 $pattern = '/[^-_a-zA-Z0-9?=&]/';
55 if ( empty( $attr['id'] ) || preg_match( $pattern, $attr['id'] ) ) {
56 return '<!-- SlideShare error: id is missing or has illegal characters -->';
57 }
58
59 // check the width/height.
60 $w = (int) $attr['w'];
61
62 // If no width was specified (or uses the wrong format), and if we have a $content_width, use that.
63 if ( empty( $w ) && ! empty( $content_width ) ) {
64 $w = (int) $content_width;
65 } elseif ( $w < 300 || $w > 1600 ) { // If width was specified, but is too small/large, set default value.
66 $w = 425;
67 } else {
68 $w = (int) $w;
69 }
70
71 $h = ceil( $w * 348 / 425 ); // Note: user-supplied height is ignored.
72
73 if ( ! empty( $attr['pro'] ) ) {
74 $source = 'https://www.slideshare.net/slidesharepro/' . $attr['id'];
75 } else {
76 $source = 'https://www.slideshare.net/slideshow/embed_code/' . $attr['id'];
77 }
78
79 if ( isset( $attr['rel'] ) ) {
80 $source = add_query_arg( 'rel', (int) $attr['rel'], $source );
81 }
82
83 if ( ! empty( $attr['startSlide'] ) ) {
84 $source = add_query_arg( 'startSlide', (int) $attr['startSlide'], $source );
85 }
86
87 $player = sprintf( "<iframe src='%s' width='%d' height='%d'", esc_url( $source ), $w, $h );
88
89 // check the frameborder.
90 if ( ! empty( $attr['fb'] ) || '0' === $attr['fb'] ) {
91 $player .= " frameborder='" . (int) $attr['fb'] . "'";
92 }
93
94 $is_amp = ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() );
95
96 if ( ! $is_amp ) {
97 // check the margin width; if not empty, cast as int.
98 if ( ( ! empty( $attr['mw'] ) || '0' === $attr['mw'] ) ) {
99 $player .= " marginwidth='" . (int) $attr['mw'] . "'";
100 }
101
102 // check the margin height, if not empty, cast as int.
103 if ( ( ! empty( $attr['mh'] ) || '0' === $attr['mh'] ) ) {
104 $player .= " marginheight='" . (int) $attr['mh'] . "'";
105 }
106 }
107
108 if ( ! empty( $attr['style'] ) ) {
109 $player .= " style='" . esc_attr( $attr['style'] ) . "'";
110 }
111
112 // check the scrollbar; cast as a lowercase string for comparison.
113 if ( ! empty( $attr['sc'] ) ) {
114 $sc = strtolower( $attr['sc'] );
115
116 if ( in_array( $sc, array( 'yes', 'no' ), true ) ) {
117 $player .= " scrolling='" . $sc . "'";
118 }
119 }
120
121 $player .= ' sandbox="allow-popups allow-scripts allow-same-origin allow-presentation" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>';
122
123 /**
124 * Filter the returned SlideShare shortcode.
125 *
126 * @module shortcodes
127 *
128 * @since 4.7.0
129 *
130 * @param string $player The iframe to return.
131 * @param array $atts The attributes specified in the shortcode.
132 */
133 return apply_filters( 'jetpack_slideshare_shortcode', $player, $atts );
134 }
135 add_shortcode( 'slideshare', 'slideshare_shortcode' );
136