golden hour
/home/doctorbruno/public_html/pgmed.org/wp-content/plugins/jetpack/modules/shortcodes
⬆️ Go Up
Upload
File/Folder
Size
Actions
archiveorg-book.php
3.41 KB
Del
OK
archiveorg.php
5.15 KB
Del
OK
archives.php
3.36 KB
Del
OK
bandcamp.php
7.79 KB
Del
OK
brightcove.php
8.81 KB
Del
OK
cartodb.php
850 B
Del
OK
class.filter-embedded-html-objects.php
13.17 KB
Del
OK
codepen.php
312 B
Del
OK
crowdsignal.php
22.03 KB
Del
OK
css
-
Del
OK
dailymotion.php
15.37 KB
Del
OK
descript.php
3.1 KB
Del
OK
facebook.php
7.13 KB
Del
OK
flatio.php
430 B
Del
OK
flickr.php
9.5 KB
Del
OK
getty.php
7.64 KB
Del
OK
gist.php
8.47 KB
Del
OK
googleapps.php
9.94 KB
Del
OK
googlemaps.php
9.22 KB
Del
OK
googleplus.php
1.08 KB
Del
OK
gravatar.php
6.18 KB
Del
OK
houzz.php
967 B
Del
OK
images
-
Del
OK
img
-
Del
OK
inline-pdfs.php
1.19 KB
Del
OK
instagram.php
14.61 KB
Del
OK
js
-
Del
OK
kickstarter.php
2.49 KB
Del
OK
mailchimp.php
7.04 KB
Del
OK
medium.php
3.27 KB
Del
OK
mixcloud.php
3.66 KB
Del
OK
others.php
2.11 KB
Del
OK
pinterest.php
1.84 KB
Del
OK
presentations.php
14.57 KB
Del
OK
quiz.php
9.2 KB
Del
OK
recipe.php
18.83 KB
Del
OK
scribd.php
2.49 KB
Del
OK
shortcode-utils.php
955 B
Del
OK
sitemap.php
609 B
Del
OK
slideshare.php
3.83 KB
Del
OK
slideshow.php
9.66 KB
Del
OK
smartframe.php
3.74 KB
Del
OK
soundcloud.php
8.79 KB
Del
OK
spotify.php
3.3 KB
Del
OK
ted.php
3.62 KB
Del
OK
tweet.php
5.07 KB
Del
OK
twitchtv.php
2.59 KB
Del
OK
twitter-timeline.php
1.98 KB
Del
OK
twitter.php
2.6 KB
Del
OK
unavailable.php
3.33 KB
Del
OK
untappd-menu.php
2.5 KB
Del
OK
upcoming-events.php
1.73 KB
Del
OK
ustream.php
3.18 KB
Del
OK
videopress.php
470 B
Del
OK
vimeo.php
11.59 KB
Del
OK
vine.php
2.66 KB
Del
OK
vr.php
4.93 KB
Del
OK
wufoo.php
3.43 KB
Del
OK
youtube.php
23.54 KB
Del
OK
Edit: brightcove.php
<?php //phpcs:ignore WordPress.Files.FileName.InvalidClassFileName use Automattic\Jetpack\Assets; if ( ! defined( 'ABSPATH' ) ) { exit( 0 ); } /** * Brightcove shortcode. * * Brighcove had renovated their video player embedding code since they introduced their "new studio". * See https://support.brightcove.com/en/video-cloud/docs. * The new code is not 100% backward compatible, as long as a customized player is used. * By the time I wrote this, there were about 150000+ posts embedded legacy players, so it would be a bad * idea either to introduce a new brightcove shortcode, or to break those posts completely. * * That's why we introduce a less aggressive way: leaving the old embedding code untouched, and * introduce a new set of shortcode parameters which are translated to the latest Brightcove embedding code. * * e.g. * [brightcove video_id="12345" account_id="99999"] will be translated to the latest embedding code. * [brightcove exp=627045696&vid=1415670151] or [brightcove exp=1463233149&vref=1601200825] will be translated * to the legacy code. */ class Jetpack_Brightcove_Shortcode { /** * Shortcode name. * * @var string */ public static $shortcode = 'brightcove'; /** * Parse shortcode arguments and render its output. * * @since 4.5.0 * * @param array $atts Shortcode parameters. * * @return string */ public static function convert( $atts ) { $normalized_atts = self::normalize_attributes( $atts ); if ( empty( $atts ) ) { return '<!-- Missing Brightcove parameters -->'; } return self::has_legacy_atts( $normalized_atts ) ? self::convert_to_legacy_studio( $normalized_atts ) : self::convert_to_new_studio( $normalized_atts ); } /** * We need to take care of two kinds of shortcode format here. * The latest: [shortcode a=1 b=2] and the legacy: [shortcode a=1&b=2] * For an old shortcode: [shortcode a=1&b=2&c=3], it would be parsed into array( 'a' => 1&b=2&c=3' ), which is useless. * However, since we want to determine whether to call convert_to_legacy_studio() or convert_to_new_studio() via passed parameters, we still need to parse the two properly. * See https://jetpack.wp-a2z.org/oik_api/shortcode_new_to_old_params/ * * @since 4.5.0 * * @param array $atts Shortcode parameters. * * @return array */ public static function normalize_attributes( $atts ) { if ( is_array( $atts ) && 1 === count( $atts ) ) { // this is the case we need to take care of. $parsed_atts = array(); $params = shortcode_new_to_old_params( $atts ); /** * Filter the Brightcove shortcode parameters. * * @module shortcodes * * @since 4.5.0 * * @param string $params String of shortcode parameters. */ $params = apply_filters( 'brightcove_dimensions', $params ); parse_str( $params, $parsed_atts ); return $parsed_atts; } else { return $atts; } } /** * Check that it has legacy attributes. * * @since 4.5.0 * * @param array $atts Shortcode parameters. * * @return bool */ public static function has_legacy_atts( $atts ) { return ( isset( $atts['vid'] ) || isset( $atts['vref'] ) ) && ( isset( $atts['exp'] ) || isset( $atts['exp3'] ) ); } /** * Convert to latest player format. * * @since 4.5.0 * * @param array $atts Shortcode parameters. * * @return string */ public static function convert_to_new_studio( $atts ) { $defaults = array( 'account_id' => '', 'video_id' => '', 'player_id' => 'default', 'width' => '100%', 'height' => '100%', ); $atts_applied = shortcode_atts( $defaults, $atts, self::$shortcode ); $player_url = sprintf( '//players.brightcove.net/%s/%s_default/index.html?videoId=%s', esc_attr( $atts_applied['account_id'] ), esc_attr( $atts_applied['player_id'] ), esc_attr( $atts_applied['video_id'] ) ); $output_html = sprintf( '<iframe src="' . esc_url( $player_url ) . '" allowfullscreen webkitallowfullscreen mozallowfullscreen style="width: %spx; height: %spx;"></iframe>', esc_attr( $atts_applied['width'] ), esc_attr( $atts_applied['height'] ) ); return $output_html; } /** * Convert to legacy player format. * * [brightcove exp=627045696&vid=1415670151] for the older player and backward compatibility * [brightcove exp=1463233149&vref=1601200825] for the new player * * @since 4.5.0 * * @param array $atts Shortcode parameters. * * @return string */ public static function convert_to_legacy_studio( $atts ) { $attr = shortcode_atts( array( 'bg' => '', 'exp' => '', 'exp3' => '', 'h' => '', 'lbu' => '', 'pk' => '', 'pubid' => '', 's' => '', 'surl' => '', 'vid' => '', 'vref' => '', 'w' => '', ), $atts ); if ( isset( $attr['pk'] ) ) { $attr['pk'] = rawurlencode( preg_replace( '/[^a-zA-Z0-9!*\'();:@&=+$,\/?#\[\]\-_.~ ]/', '', $attr['pk'] ) ); } if ( isset( $attr['bg'] ) ) { $attr['bg'] = preg_replace( '![^-a-zA-Z0-9#]!', '', $attr['bg'] ); } $fv = array( 'viewerSecureGatewayURL' => 'https://services.brightcove.com/services/amfgateway', 'servicesURL' => 'http://services.brightcove.com/services', 'cdnURL' => 'http://admin.brightcove.com', 'autoStart' => 'false', ); $js_tld = 'com'; $src = ''; $name = 'flashObj'; $html5 = false; if ( isset( $attr['exp3'] ) ) { if ( isset( $attr['surl'] ) && strpos( $attr['surl'], 'brightcove.co.jp' ) ) { $js_tld = 'co.jp'; } if ( ! isset( $attr['surl'] ) || ! preg_match( '#^https?://(?:[a-z\d-]+\.)*brightcove\.(?:com|co\.jp)/#', $attr['surl'] ) ) { $attr['surl'] = 'http://c.brightcove.com/services'; } $attr['exp3'] = (int) $attr['exp3']; $attr['pubid'] = (int) $attr['pubid']; $attr['vid'] = (int) $attr['vid']; $fv['servicesURL'] = $attr['surl']; $fv['playerID'] = $attr['exp3']; $fv['domain'] = 'embed'; $fv['videoID'] = (int) $attr['vid']; $src = sprintf( '%s/viewer/federated_f9/%s?isVid=1&isUI=1&publisherID=%s', $attr['surl'], $attr['exp3'], $attr['pubid'] ); $html5 = true; } elseif ( isset( $attr['exp'] ) ) { $attr['exp'] = (int) $attr['exp']; $src = 'http://services.brightcove.com/services/viewer/federated_f8/' . $attr['exp']; if ( $attr['vid'] ) { $fv['videoId'] = $attr['vid']; } elseif ( $attr['vref'] ) { $fv['videoRef'] = $attr['vref']; } $fv['playerId'] = $attr['exp']; $fv['domain'] = 'embed'; } else { return '<small>brightcove error: missing required parameter exp or exp3</small>'; } if ( ! empty( $attr['lbu'] ) ) { $fv['linkBaseURL'] = $attr['lbu']; } $flashvars = trim( add_query_arg( array_map( 'urlencode', $fv ), '' ), '?' ); $width = null; $height = null; if ( ! empty( $attr['w'] ) && ! empty( $attr['h'] ) ) { $w = abs( (int) $attr['w'] ); $h = abs( (int) $attr['h'] ); if ( $w && $h ) { $width = $w; $height = $h; } } elseif ( empty( $attr['s'] ) || 'l' === $attr['s'] ) { $width = '480'; $height = '360'; } if ( empty( $width ) || empty( $height ) ) { $width = '280'; $height = '210'; } if ( $html5 ) { wp_enqueue_script( 'brightcove-loader', Assets::get_file_url_for_environment( '_inc/build/shortcodes/js/brightcove.min.js', 'modules/shortcodes/js/brightcove.js' ), array( 'jquery' ), 20121127, false ); wp_localize_script( 'brightcove-loader', 'brightcoveData', array( 'tld' => $js_tld, ) ); return ' <object id="myExperience" class="BrightcoveExperience"> <param name="bgcolor" value="' . esc_attr( $attr['bg'] ) . '" /> <param name="width" value="' . esc_attr( $width ) . '" /> <param name="height" value="' . esc_attr( $height ) . '" /> <param name="playerID" value="' . esc_attr( $attr['exp3'] ) . '" /> <param name="@videoPlayer" value="' . esc_attr( $attr['vid'] ) . '" /> <param name="playerKey" value="' . esc_attr( $attr['pk'] ) . '" /> <param name="isVid" value="1" /> <param name="isUI" value="1" /> <param name="dynamicStreaming" value="true" /> <param name="autoStart" value="false" /> <param name="secureConnections" value="true" /> <param name="secureHTMLConnections" value="true" /> </object>'; } return sprintf( '<embed src="%s" bgcolor="#FFFFFF" flashvars="%s" base="http://admin.brightcove.com" name="%s" width="%s" height="%s" allowFullScreen="true" seamlesstabbing="false" type="application/x-shockwave-flash" swLiveConnect="true" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" />', esc_url( $src ), $flashvars, esc_attr( $name ), esc_attr( $width ), esc_attr( $height ) ); } } add_shortcode( Jetpack_Brightcove_Shortcode::$shortcode, array( 'Jetpack_Brightcove_Shortcode', 'convert' ) );
Save