PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3
Jetpack – WP Security, Backup, Speed, & Growth v16.3
16.3 16.3-beta 16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 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 All 508 releases
← All changes | modules/shortcodes/ustream.php +139 -0 16.2-beta → 16.3 View file →
@@ -1,0 +1,139 @@
1 +<?php
2 +/**
3 + * Ustream.tv shortcode
4 + *
5 + * Example:
6 + * [ustream id=1524 live=1]
7 + * [ustreamsocial id=12980237 width="500"]
8 + *
9 + * Embed code example, from http://www.ustream.tv/leolaporte
10 + * <iframe src="http://www.ustream.tv/embed/recorded/1524?v=3&#038;wmode=direct" width="480" height="296" scrolling="no" frameborder="0" style="border: 0 none transparent;"></iframe>
11 + *
12 + * @package automattic/jetpack
13 + */
14 +
15 +if ( ! defined( 'ABSPATH' ) ) {
16 + exit( 0 );
17 +}
18 +
19 +add_shortcode( 'ustream', 'ustream_shortcode' );
20 +add_shortcode( 'ustreamsocial', 'ustreamsocial_shortcode' );
21 +
22 +/**
23 + * Parse shortcode arguments and render output for ustream single video.
24 + *
25 + * @since 4.5.0
26 + *
27 + * @param array $atts array of user-supplied arguments.
28 + *
29 + * @return string HTML output.
30 + */
31 +function ustream_shortcode( $atts ) {
32 + if ( isset( $atts[0] ) ) {
33 + return '<!-- ustream error: bad parameters -->';
34 + }
35 +
36 + $defaults = array(
37 + 'width' => 480,
38 + 'height' => 296,
39 + 'id' => 0,
40 + 'live' => 0,
41 + 'highlight' => 0,
42 + 'version' => 3,
43 + 'hwaccel' => 1,
44 + );
45 + $atts = array_map( 'intval', shortcode_atts( $defaults, $atts ) );
46 +
47 + if ( 0 >= $atts['id'] ) {
48 + return '<!-- ustream error: bad video ID -->';
49 + }
50 +
51 + if ( 0 >= $atts['height'] ) {
52 + return '<!-- ustream error: height invalid -->';
53 + }
54 +
55 + if ( 0 >= $atts['width'] ) {
56 + return '<!-- ustream error: width invalid -->';
57 + }
58 +
59 + if ( $atts['live'] ) {
60 + $recorded = '';
61 + } else {
62 + $recorded = 'recorded/';
63 + }
64 +
65 + if ( ! $atts['live'] && ( 0 < $atts['highlight'] ) ) {
66 + $highlight = sprintf( '/highlight/%d', esc_attr( $atts['highlight'] ) );
67 + } else {
68 + $highlight = '';
69 + }
70 +
71 + $url_base = sprintf(
72 + 'https://www.ustream.tv/embed/%s%d%s',
73 + $recorded,
74 + esc_attr( $atts['id'] ),
75 + $highlight
76 + );
77 +
78 + $video_options = array(
79 + 'html5ui' => 1,
80 + 'v' => absint( $atts['version'] ),
81 + );
82 +
83 + if ( 0 < $atts['hwaccel'] ) {
84 + $video_options['wmode'] = 'direct';
85 + }
86 +
87 + $url = add_query_arg(
88 + $video_options,
89 + $url_base
90 + );
91 +
92 + $output = sprintf(
93 + '<iframe src="%1$s" width="%2$d" height="%3$d" scrolling="no" style="border: 0 none transparent;"></iframe>',
94 + esc_url( $url ),
95 + absint( $atts['width'] ),
96 + absint( $atts['height'] )
97 + );
98 +
99 + return $output;
100 +}
101 +
102 +/**
103 + * Parse shortcode arguments and render output for ustream's Social Stream.
104 + *
105 + * @since 4.5.0
106 + *
107 + * @param array $atts array of user-supplied arguments.
108 + *
109 + * @return string HTML output.
110 + */
111 +function ustreamsocial_shortcode( $atts ) {
112 + $defaults = array(
113 + 'id' => 0,
114 + 'height' => 420,
115 + 'width' => 320,
116 + );
117 + $atts = array_map( 'intval', shortcode_atts( $defaults, $atts ) );
118 +
119 + if ( 0 >= $atts['id'] ) {
120 + return '<!-- ustreamsocial error: bad social stream ID -->';
121 + }
122 +
123 + if ( 0 >= $atts['height'] ) {
124 + return '<!-- ustreamsocial error: height invalid -->';
125 + }
126 +
127 + if ( 0 >= $atts['width'] ) {
128 + return '<!-- ustreamsocial error: width invalid -->';
129 + }
130 +
131 + $url = 'https://www.ustream.tv/socialstream/' . esc_attr( $atts['id'] );
132 +
133 + return sprintf(
134 + '<iframe id="SocialStream" src="%1$s" class="" name="SocialStream" width="%2$d" height="%3$d" scrolling="no" allowtransparency="true" style="visibility: visible; margin-top: 0; margin-bottom: 0; border: 0;"></iframe>',
135 + esc_url( $url ),
136 + absint( $atts['width'] ),
137 + absint( $atts['height'] )
138 + );
139 +}