PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 15.7.2
Jetpack – WP Security, Backup, Speed, & Growth v15.7.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 / archiveorg.php
jetpack / modules / shortcodes Last commit date
css 6 months ago images 2 years ago img 2 years ago js 9 months ago archiveorg-book.php 9 months ago archiveorg.php 9 months ago archives.php 9 months ago bandcamp.php 9 months ago brightcove.php 8 months ago cartodb.php 9 months ago class.filter-embedded-html-objects.php 9 months ago codepen.php 9 months ago crowdsignal.php 8 months ago dailymotion.php 9 months ago descript.php 9 months ago facebook.php 9 months ago flatio.php 9 months ago flickr.php 8 months ago getty.php 9 months ago gist.php 9 months ago googleapps.php 9 months ago googlemaps.php 9 months ago googleplus.php 9 months ago gravatar.php 9 months ago houzz.php 9 months ago inline-pdfs.php 9 months ago instagram.php 9 months ago kickstarter.php 9 months ago mailchimp.php 8 months ago medium.php 9 months ago mixcloud.php 9 months ago others.php 9 months ago pinterest.php 9 months ago presentations.php 9 months ago quiz.php 9 months ago recipe.php 9 months ago scribd.php 9 months ago shortcode-utils.php 9 months ago sitemap.php 9 months ago slideshare.php 9 months ago slideshow.php 9 months ago smartframe.php 9 months ago soundcloud.php 9 months ago spotify.php 9 months ago ted.php 9 months ago tweet.php 9 months ago twitchtv.php 9 months ago twitter-timeline.php 9 months ago twitter.php 9 months ago unavailable.php 9 months ago untappd-menu.php 9 months ago upcoming-events.php 9 months ago ustream.php 9 months ago videopress.php 9 months ago vimeo.php 9 months ago vine.php 9 months ago vr.php 9 months ago wufoo.php 9 months ago youtube.php 6 months ago
archiveorg.php
169 lines
1 <?php
2 /**
3 * Archive.org book shortcode.
4 *
5 * Usage:
6 * [archiveorg Experime1940]
7 * [archiveorg http://archive.org/details/Experime1940 poster=http://archive.org/images/map.png]
8 * [archiveorg id=Experime1940 width=640 height=480 autoplay=1]
9
10 * <iframe src="http://archive.org/embed/Experime1940&autoplay=1&poster=http://archive.org/images/map.png" width="640" height="480" frameborder="0" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen></iframe>
11 *
12 * @package automattic/jetpack
13 */
14
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit( 0 );
17 }
18
19 /**
20 * Get ID of requested archive.org embed.
21 *
22 * @since 4.5.0
23 *
24 * @param array $atts Shortcode attributes.
25 *
26 * @return int|string
27 */
28 function jetpack_shortcode_get_archiveorg_id( $atts ) {
29 if ( isset( $atts[0] ) ) {
30 $atts[0] = trim( $atts[0], '=' );
31 if ( preg_match( '#archive.org/(details|embed)/(.+)/?$#i', $atts[0], $match ) ) {
32 $id = $match[2];
33 } else {
34 $id = $atts[0];
35 }
36 return $id;
37 }
38 return 0;
39 }
40
41 /**
42 * Convert an archive.org shortcode into an embed code.
43 *
44 * @since 4.5.0
45 *
46 * @param array $atts An array of shortcode attributes.
47 * @return string The embed code for the archive.org video.
48 */
49 function jetpack_archiveorg_shortcode( $atts ) {
50 global $content_width;
51
52 if ( isset( $atts[0] ) && empty( $atts['id'] ) ) {
53 $atts['id'] = jetpack_shortcode_get_archiveorg_id( $atts );
54 }
55
56 $atts = shortcode_atts(
57 array(
58 'id' => '',
59 'width' => 640,
60 'height' => 480,
61 'autoplay' => 0,
62 'poster' => '',
63 ),
64 $atts
65 );
66
67 if ( ! $atts['id'] ) {
68 return '<!-- error: missing archive.org ID -->';
69 }
70
71 $id = $atts['id'];
72
73 if ( ! $atts['width'] ) {
74 $width = absint( $content_width );
75 } else {
76 $width = (int) $atts['width'];
77 }
78
79 if ( ! $atts['height'] ) {
80 $height = round( ( $width / 640 ) * 360 );
81 } else {
82 $height = (int) $atts['height'];
83 }
84
85 if ( $atts['autoplay'] ) {
86 $autoplay = '&autoplay=1';
87 } else {
88 $autoplay = '';
89 }
90
91 if ( $atts['poster'] ) {
92 $poster = '&poster=' . $atts['poster'];
93 } else {
94 $poster = '';
95 }
96
97 return sprintf(
98 '<div class="embed-archiveorg" style="text-align:center;"><iframe title="%s" src="%s" width="%s" height="%s" style="border:0;" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen></iframe></div>',
99 esc_attr__( 'Archive.org', 'jetpack' ),
100 esc_url( "https://archive.org/embed/{$id}{$autoplay}{$poster}" ),
101 esc_attr( $width ),
102 esc_attr( $height )
103 );
104 }
105
106 add_shortcode( 'archiveorg', 'jetpack_archiveorg_shortcode' );
107
108 /**
109 * Compose shortcode from archive.org iframe.
110 *
111 * @since 4.5.0
112 *
113 * @param string $content Post content.
114 *
115 * @return mixed
116 */
117 function jetpack_archiveorg_embed_to_shortcode( $content ) {
118 if ( ! is_string( $content ) || false === stripos( $content, 'archive.org/embed/' ) ) {
119 return $content;
120 }
121
122 $regexp = '!<iframe\s+src=[\'"]https?://archive\.org/embed/([^\'"]+)[\'"]((?:\s+\w+(=[\'"][^\'"]*[\'"])?)*)></iframe>!i';
123
124 if ( ! preg_match_all( $regexp, $content, $matches, PREG_SET_ORDER ) ) {
125 return $content;
126 }
127
128 foreach ( $matches as $match ) {
129 $url = explode( '&amp;', $match[1] );
130 $id = 'id=' . $url[0];
131
132 $autoplay = '';
133 $poster = '';
134 $url_count = count( $url );
135
136 for ( $ii = 1; $ii < $url_count; $ii++ ) {
137 if ( 'autoplay=1' === $url[ $ii ] ) {
138 $autoplay = ' autoplay="1"';
139 }
140
141 $map_matches = array();
142 if ( preg_match( '/^poster=(.+)$/', $url[ $ii ], $map_matches ) ) {
143 $poster = " poster=\"{$map_matches[1]}\"";
144 }
145 }
146
147 $params = $match[2];
148
149 $params = wp_kses_hair( $params, array( 'http' ) );
150
151 $width = isset( $params['width'] ) ? (int) $params['width']['value'] : 0;
152 $height = isset( $params['height'] ) ? (int) $params['height']['value'] : 0;
153
154 $wh = '';
155 if ( $width && $height ) {
156 $wh = ' width=' . $width . ' height=' . $height;
157 }
158
159 $shortcode = '[archiveorg ' . $id . $wh . $autoplay . $poster . ']';
160 $content = str_replace( $match[0], $shortcode, $content );
161 }
162
163 return $content;
164 }
165
166 if ( jetpack_shortcodes_should_hook_pre_kses() ) {
167 add_filter( 'pre_kses', 'jetpack_archiveorg_embed_to_shortcode' );
168 }
169