PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.0-beta
Jetpack – WP Security, Backup, Speed, & Growth v16.0-beta
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-book.php
jetpack / modules / shortcodes Last commit date
css 1 month ago images 1 year ago img 2 months ago js 7 months ago archiveorg-book.php 7 months ago archiveorg.php 1 month ago archives.php 1 week 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 7 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 1 month 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 2 weeks ago scribd.php 7 months ago shortcode-utils.php 7 months ago sitemap.php 7 months ago slideshare.php 7 months ago slideshow.php 2 weeks ago smartframe.php 7 months ago soundcloud.php 1 month ago spotify.php 7 months ago ted.php 7 months ago tweet.php 7 months ago twitchtv.php 2 weeks 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
archiveorg-book.php
140 lines
1 <?php
2 /**
3 * Archive.org Shortcode
4 *
5 * Usage:
6 * [archiveorg-book goodytwoshoes00newyiala]
7 * [archiveorg-book https://www.archive.org/stream/goodytwoshoes00newyiala]
8 * [archiveorg id=goodytwoshoes00newyiala width=480 height=430]
9
10 * <iframe src="https://www.archive.org/stream/goodytwoshoes00newyiala?ui=embed#mode/1up" width="480px" height="430px" frameborder="0" ></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 book 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_book_id( $atts ) {
29 if ( isset( $atts[0] ) ) {
30 $atts[0] = trim( $atts[0], '=' );
31 if ( preg_match( '#archive.org/stream/(.+)/?$#i', $atts[0], $match ) ) {
32 $id = $match[1];
33 } else {
34 $id = $atts[0];
35 }
36 return $id;
37 }
38 return 0;
39 }
40
41 /**
42 * Convert an archive.org book 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 book
48 */
49 function jetpack_archiveorg_book_shortcode( $atts ) {
50 global $content_width;
51
52 if ( isset( $atts[0] ) && empty( $atts['id'] ) ) {
53 $atts['id'] = jetpack_shortcode_get_archiveorg_book_id( $atts );
54 }
55
56 $atts = shortcode_atts(
57 array(
58 'id' => '',
59 'width' => 480,
60 'height' => 430,
61 ),
62 $atts
63 );
64
65 if ( ! $atts['id'] ) {
66 return '<!-- error: missing archive.org book ID -->';
67 }
68
69 $id = $atts['id'];
70
71 if ( ! $atts['width'] ) {
72 $width = absint( $content_width );
73 } else {
74 $width = (int) $atts['width'];
75 }
76
77 if ( ! $atts['height'] ) {
78 $height = round( ( $width / 640 ) * 360 );
79 } else {
80 $height = (int) $atts['height'];
81 }
82
83 return sprintf(
84 '<div class="embed-archiveorg-book" style="text-align:center;"><iframe title="%s" src="%s" width="%s" height="%s" style="border:0;" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen></iframe></div>',
85 esc_attr__( 'Archive.org Book', 'jetpack' ),
86 esc_url( "https://archive.org/stream/{$id}?ui=embed#mode/1up" ),
87 esc_attr( $width ),
88 esc_attr( $height )
89 );
90 }
91
92 add_shortcode( 'archiveorg-book', 'jetpack_archiveorg_book_shortcode' );
93
94 /**
95 * Compose shortcode from archive.org book iframe.
96 *
97 * @since 4.5.0
98 *
99 * @param string $content Post content.
100 *
101 * @return mixed
102 */
103 function jetpack_archiveorg_book_embed_to_shortcode( $content ) {
104 if ( ! is_string( $content ) || false === stripos( $content, 'archive.org/stream/' ) ) {
105 return $content;
106 }
107
108 $regexp = '!<iframe\s+src=[\'"](http|https)://(www.archive|archive)\.org/stream/([^\'"]+)[\'"]((?:\s+\w+(=[\'"][^\'"]*[\'"])?)*)\s></iframe>!i';
109
110 if ( ! preg_match_all( $regexp, $content, $matches, PREG_SET_ORDER ) ) {
111 return $content;
112 }
113
114 foreach ( $matches as $match ) {
115 $url = explode( '?', $match[3] );
116 $id = $url[0];
117
118 $params = $match[4];
119
120 $params = wp_kses_hair( $params, array( 'http' ) );
121
122 $width = isset( $params['width'] ) ? absint( $params['width']['value'] ) : 0;
123 $height = isset( $params['height'] ) ? absint( $params['height']['value'] ) : 0;
124
125 $wh = '';
126 if ( $width && $height ) {
127 $wh = ' width=' . $width . ' height=' . $height;
128 }
129
130 $shortcode = '[archiveorg-book ' . $id . $wh . ']';
131 $content = str_replace( $match[0], $shortcode, $content );
132 }
133
134 return $content;
135 }
136
137 if ( jetpack_shortcodes_should_hook_pre_kses() ) {
138 add_filter( 'pre_kses', 'jetpack_archiveorg_book_embed_to_shortcode' );
139 }
140