Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/embedpre.../EmbedPre...
File: Shortcode.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace EmbedPress;
[2] Fix | Delete
[3] Fix | Delete
use Embera\Embera;
[4] Fix | Delete
use Embera\ProviderCollection\DefaultProviderCollection;
[5] Fix | Delete
use EmbedPress\Includes\Classes\Helper;
[6] Fix | Delete
use WP_oEmbed;
[7] Fix | Delete
[8] Fix | Delete
(defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
[9] Fix | Delete
[10] Fix | Delete
/**
[11] Fix | Delete
* Entity responsible to handle the plugin's shortcode events and behaviors.
[12] Fix | Delete
*
[13] Fix | Delete
* @package EmbedPress
[14] Fix | Delete
* @author EmbedPress <help@embedpress.com>
[15] Fix | Delete
* @copyright Copyright (C) 2023 WPDeveloper. All rights reserved.
[16] Fix | Delete
* @license GPLv3 or later
[17] Fix | Delete
* @since 1.0.0
[18] Fix | Delete
*/
[19] Fix | Delete
[20] Fix | Delete
class Shortcode
[21] Fix | Delete
{
[22] Fix | Delete
/**
[23] Fix | Delete
* The WP_oEmbed class instance.
[24] Fix | Delete
*
[25] Fix | Delete
* @since 1.0.0
[26] Fix | Delete
* @access private
[27] Fix | Delete
* @static
[28] Fix | Delete
*
[29] Fix | Delete
* @var WP_oEmbed $oEmbedInstance
[30] Fix | Delete
*/
[31] Fix | Delete
[32] Fix | Delete
[33] Fix | Delete
public static $y = 0;
[34] Fix | Delete
[35] Fix | Delete
private static $oEmbedInstance = null;
[36] Fix | Delete
[37] Fix | Delete
/**
[38] Fix | Delete
* The Embera class instance.
[39] Fix | Delete
*
[40] Fix | Delete
* @since 2.7.4
[41] Fix | Delete
* @access private
[42] Fix | Delete
* @static
[43] Fix | Delete
*
[44] Fix | Delete
* @var Embera $embera_instance
[45] Fix | Delete
*/
[46] Fix | Delete
private static $embera_instance = null;
[47] Fix | Delete
/**
[48] Fix | Delete
* The DefaultProviderCollection class instance.
[49] Fix | Delete
*
[50] Fix | Delete
* @since 1.0.0
[51] Fix | Delete
* @access private
[52] Fix | Delete
* @static
[53] Fix | Delete
*
[54] Fix | Delete
* @var DefaultProviderCollection $collection
[55] Fix | Delete
*/
[56] Fix | Delete
private static $collection = null;
[57] Fix | Delete
[58] Fix | Delete
private static $emberaInstanceSettings = [];
[59] Fix | Delete
private static $ombed_attributes;
[60] Fix | Delete
public static $attributes_data;
[61] Fix | Delete
[62] Fix | Delete
[63] Fix | Delete
/**
[64] Fix | Delete
* Register the plugin's shortcode into WordPress.
[65] Fix | Delete
*
[66] Fix | Delete
* @return void
[67] Fix | Delete
* @since 1.0.0
[68] Fix | Delete
* @static
[69] Fix | Delete
*
[70] Fix | Delete
*/
[71] Fix | Delete
public static function register()
[72] Fix | Delete
{
[73] Fix | Delete
// Register the new shortcode for embeds.
[74] Fix | Delete
add_shortcode(EMBEDPRESS_SHORTCODE, ['\\EmbedPress\\Shortcode', 'do_shortcode']);
[75] Fix | Delete
add_shortcode('embed_oembed_html', ['\\EmbedPress\\Shortcode', 'do_shortcode']);
[76] Fix | Delete
add_shortcode('embedpress', ['\\EmbedPress\\Shortcode', 'do_shortcode']);
[77] Fix | Delete
add_shortcode('embedpress_pdf', ['\\EmbedPress\\Shortcode', 'do_shortcode_pdf']);
[78] Fix | Delete
[79] Fix | Delete
}
[80] Fix | Delete
[81] Fix | Delete
/**
[82] Fix | Delete
* Method that converts the plugin shortcoded-string into its complex content.
[83] Fix | Delete
*
[84] Fix | Delete
* @param array $attributes Array of attributes
[85] Fix | Delete
* @param string $subject The given string
[86] Fix | Delete
*
[87] Fix | Delete
* @return string
[88] Fix | Delete
* @since 1.0.0
[89] Fix | Delete
* @static
[90] Fix | Delete
*
[91] Fix | Delete
*/
[92] Fix | Delete
[93] Fix | Delete
[94] Fix | Delete
[95] Fix | Delete
[96] Fix | Delete
public static function do_shortcode($attributes = [], $subject = null)
[97] Fix | Delete
{
[98] Fix | Delete
$plgSettings = Core::getSettings();
[99] Fix | Delete
[100] Fix | Delete
[101] Fix | Delete
$default = [];
[102] Fix | Delete
if ($plgSettings->enableGlobalEmbedResize) {
[103] Fix | Delete
$default = [
[104] Fix | Delete
'width' => esc_attr($plgSettings->enableEmbedResizeWidth),
[105] Fix | Delete
'height' => esc_attr($plgSettings->enableEmbedResizeHeight),
[106] Fix | Delete
'powered_by' => !empty($plgSettings->embedpress_document_powered_by) ? esc_attr($plgSettings->embedpress_document_powered_by) : esc_attr('no'),
[107] Fix | Delete
];
[108] Fix | Delete
}
[109] Fix | Delete
[110] Fix | Delete
if(is_array($attributes)) {
[111] Fix | Delete
$attributes = array_map('esc_attr', $attributes);
[112] Fix | Delete
}
[113] Fix | Delete
[114] Fix | Delete
$attributes = wp_parse_args($attributes, $default);
[115] Fix | Delete
$embed = self::parseContent($subject, true, $attributes);
[116] Fix | Delete
[117] Fix | Delete
if(is_object($embed)) {
[118] Fix | Delete
$array = get_object_vars($embed);
[119] Fix | Delete
if(!empty($array[$embed->url]['provider_name']) && $array[$embed->url]['provider_name'] === 'Instagram Feed'){
[120] Fix | Delete
$embed->embed = '<div class="ep-embed-content-wraper insta-grid">' . $embed->embed . '</div>';
[121] Fix | Delete
};
[122] Fix | Delete
}
[123] Fix | Delete
[124] Fix | Delete
[125] Fix | Delete
return is_object($embed) ? $embed->embed : $embed;
[126] Fix | Delete
}
[127] Fix | Delete
[128] Fix | Delete
/**
[129] Fix | Delete
* Replace a given content with its embeded HTML code.
[130] Fix | Delete
*
[131] Fix | Delete
* @param string The raw content that will be replaced.
[132] Fix | Delete
* @param bool $stripNewLine
[133] Fix | Delete
* @param array $customAttributes
[134] Fix | Delete
* @return string|object
[135] Fix | Delete
* @since 1.0.0
[136] Fix | Delete
* @static
[137] Fix | Delete
*/
[138] Fix | Delete
public static function parseContent($subject, $stripNewLine = false, $customAttributes = [])
[139] Fix | Delete
{
[140] Fix | Delete
if (!empty($subject)) {
[141] Fix | Delete
if (empty($customAttributes)) {
[142] Fix | Delete
$customAttributes = self::parseContentAttributesFromString($subject);
[143] Fix | Delete
}
[144] Fix | Delete
self::set_default_size($customAttributes);
[145] Fix | Delete
$url = preg_replace(
[146] Fix | Delete
'/(\[' . EMBEDPRESS_SHORTCODE . '(?:\]|.+?\])|\[\/' . EMBEDPRESS_SHORTCODE . '\])/i',
[147] Fix | Delete
"",
[148] Fix | Delete
$subject
[149] Fix | Delete
);
[150] Fix | Delete
[151] Fix | Delete
[152] Fix | Delete
[153] Fix | Delete
[154] Fix | Delete
$uniqid = 'ose-uid-'.md5($url);
[155] Fix | Delete
$subject = esc_url($subject);
[156] Fix | Delete
[157] Fix | Delete
[158] Fix | Delete
// Converts any special HTML entities back to characters.
[159] Fix | Delete
$url = htmlspecialchars_decode($url);
[160] Fix | Delete
$url = esc_url($url);
[161] Fix | Delete
[162] Fix | Delete
[163] Fix | Delete
$content_uid = md5($url);
[164] Fix | Delete
[165] Fix | Delete
self::$ombed_attributes = self::parseContentAttributes($customAttributes, $content_uid);
[166] Fix | Delete
[167] Fix | Delete
self::set_embera_settings(self::$ombed_attributes);
[168] Fix | Delete
[169] Fix | Delete
// Identify what service provider the shortcode's link belongs to
[170] Fix | Delete
$is_embra_provider = apply_filters('embedpress:isEmbra', false, $url, self::get_embera_settings());
[171] Fix | Delete
[172] Fix | Delete
if ($is_embra_provider || (strpos($url, 'meetup.com') !== false) || (strpos($url, 'sway.office.com') !== false)) {
[173] Fix | Delete
$serviceProvider = '';
[174] Fix | Delete
} else {
[175] Fix | Delete
$serviceProvider = self::get_oembed()->get_provider($url);
[176] Fix | Delete
}
[177] Fix | Delete
[178] Fix | Delete
// FIX FOR MEETUP as MEETUP API is OFF, use OUR custom embed
[179] Fix | Delete
if ('https://api.meetup.com/oembed' === $serviceProvider) {
[180] Fix | Delete
$serviceProvider = '';
[181] Fix | Delete
}
[182] Fix | Delete
[183] Fix | Delete
[184] Fix | Delete
$urlData = self::get_url_data($url, self::$ombed_attributes, $serviceProvider);
[185] Fix | Delete
[186] Fix | Delete
[187] Fix | Delete
// Sanitize the data
[188] Fix | Delete
$urlData = self::sanitizeUrlData($urlData, $url);
[189] Fix | Delete
[190] Fix | Delete
[191] Fix | Delete
[192] Fix | Delete
// Stores the original content
[193] Fix | Delete
if (is_object($urlData)) {
[194] Fix | Delete
$urlData->originalContent = $url;
[195] Fix | Delete
}
[196] Fix | Delete
[197] Fix | Delete
$embedResults = apply_filters('embedpress:onBeforeEmbed', $urlData, $subject);
[198] Fix | Delete
[199] Fix | Delete
if (empty($embedResults)) {
[200] Fix | Delete
return $subject;
[201] Fix | Delete
}
[202] Fix | Delete
[203] Fix | Delete
// Transform all shortcode attributes into html form. I.e.: {foo: "joe"} -> foo="joe"
[204] Fix | Delete
$attributesHtml = ['class="ose-{provider_alias} ' . $uniqid .' ose-embedpress-responsive"'];
[205] Fix | Delete
//$attributesHtml = [];
[206] Fix | Delete
//foreach ( self::$ombed_attributes as $attrName => $attrValue ) {
[207] Fix | Delete
// $attributesHtml[] = $attrName . '="' . $attrValue . '"';
[208] Fix | Delete
//}
[209] Fix | Delete
if (isset($customAttributes['height'])) {
[210] Fix | Delete
$height = esc_attr($customAttributes['height']);
[211] Fix | Delete
}
[212] Fix | Delete
[213] Fix | Delete
if (isset($customAttributes['width'])) {
[214] Fix | Delete
$width = esc_attr($customAttributes['width']);
[215] Fix | Delete
$attributesHtml[] = "style=\"width:{$width}px; height:{$height}px; max-height:{$height}px; max-width:100%; display:inline-block;\"";
[216] Fix | Delete
}
[217] Fix | Delete
[218] Fix | Delete
// Check if $url is a google shortened url and tries to extract from it which Google service it refers to.
[219] Fix | Delete
self::check_for_google_url($url);
[220] Fix | Delete
$provider_name = self::get_provider_name($urlData, $url);
[221] Fix | Delete
[222] Fix | Delete
// $html = '{html}';
[223] Fix | Delete
// if (strpos($url, 'youtube') !== false) {
[224] Fix | Delete
// $html = '<div class="youtube-video">{html}</div>';
[225] Fix | Delete
// }
[226] Fix | Delete
[227] Fix | Delete
$embedTemplate = '<div ' . implode(' ', $attributesHtml) . '>{html}</div>';
[228] Fix | Delete
[229] Fix | Delete
$parsedContent = self::get_content_from_template($url, $embedTemplate, $serviceProvider);
[230] Fix | Delete
// Replace all single quotes to double quotes. I.e: foo='joe' -> foo="joe"
[231] Fix | Delete
$parsedContent = str_replace("'", '"', $parsedContent);
[232] Fix | Delete
$parsedContent = str_replace("{provider_alias}", $provider_name, $parsedContent);
[233] Fix | Delete
$parsedContent = str_replace('sandbox="allow-scripts"', 'sandbox="allow-modals allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox"', $parsedContent);
[234] Fix | Delete
$parsedContent = str_replace('<iframe ', '<iframe allowFullScreen="true" ', $parsedContent);
[235] Fix | Delete
[236] Fix | Delete
self::purify_html_content($parsedContent);
[237] Fix | Delete
self::modify_content_for_fb_and_canada($provider_name, $parsedContent);
[238] Fix | Delete
unset($embedTemplate, $serviceProvider);
[239] Fix | Delete
[240] Fix | Delete
// This assure that the iframe has the same dimensions the user wants to
[241] Fix | Delete
if (isset(self::$emberaInstanceSettings['maxwidth']) || isset(self::$emberaInstanceSettings['maxheight'])) {
[242] Fix | Delete
if (isset(self::$emberaInstanceSettings['maxwidth']) && isset(self::$emberaInstanceSettings['maxheight'])) {
[243] Fix | Delete
$customWidth = (int) self::$emberaInstanceSettings['maxwidth'];
[244] Fix | Delete
$customHeight = (int) self::$emberaInstanceSettings['maxheight'];
[245] Fix | Delete
} else {
[246] Fix | Delete
if (preg_match('~width="(\d+)"|width\s+:\s+(\d+)~i', $parsedContent, $matches)) {
[247] Fix | Delete
$iframeWidth = (int) $matches[1];
[248] Fix | Delete
}
[249] Fix | Delete
[250] Fix | Delete
if (preg_match('~height="(\d+)"|height\s+:\s+(\d+)~i', $parsedContent, $matches)) {
[251] Fix | Delete
$iframeHeight = (int) $matches[1];
[252] Fix | Delete
}
[253] Fix | Delete
[254] Fix | Delete
if (isset($iframeWidth) && isset($iframeHeight) && $iframeWidth > 0 && $iframeHeight > 0) {
[255] Fix | Delete
$iframeRatio = ceil($iframeWidth / $iframeHeight);
[256] Fix | Delete
[257] Fix | Delete
if (isset(self::$emberaInstanceSettings['maxwidth'])) {
[258] Fix | Delete
$customWidth = (int) self::$emberaInstanceSettings['maxwidth'];
[259] Fix | Delete
$customHeight = ceil($customWidth / $iframeRatio);
[260] Fix | Delete
} else {
[261] Fix | Delete
$customHeight = (int) self::$emberaInstanceSettings['maxheight'];
[262] Fix | Delete
$customWidth = $iframeRatio * $customHeight;
[263] Fix | Delete
}
[264] Fix | Delete
}
[265] Fix | Delete
}
[266] Fix | Delete
[267] Fix | Delete
if (isset($customWidth) && isset($customHeight)) {
[268] Fix | Delete
if (preg_match('~width="(\d+)"~i', $parsedContent)) {
[269] Fix | Delete
$parsedContent = preg_replace(
[270] Fix | Delete
'~width="(\d+)"~i',
[271] Fix | Delete
'width="' . esc_attr($customWidth) . '"',
[272] Fix | Delete
$parsedContent
[273] Fix | Delete
);
[274] Fix | Delete
} elseif (preg_match('~width="({.+})"~i', $parsedContent)) {
[275] Fix | Delete
// this block was needed for twitch that has width="{width}" in iframe
[276] Fix | Delete
$parsedContent = preg_replace(
[277] Fix | Delete
'~width="({.+})"~i',
[278] Fix | Delete
'width="' . esc_attr($customWidth) . '"',
[279] Fix | Delete
$parsedContent
[280] Fix | Delete
);
[281] Fix | Delete
}
[282] Fix | Delete
[283] Fix | Delete
if (preg_match('~height="(\d+)"~i', $parsedContent)) {
[284] Fix | Delete
$parsedContent = preg_replace(
[285] Fix | Delete
'~height="(\d+)"~i',
[286] Fix | Delete
'height="' . esc_attr($customHeight) . '"',
[287] Fix | Delete
$parsedContent
[288] Fix | Delete
);
[289] Fix | Delete
} elseif (preg_match('~height="({.+})"~i', $parsedContent)) {
[290] Fix | Delete
$parsedContent = preg_replace(
[291] Fix | Delete
'~height="({.+})"~i',
[292] Fix | Delete
'height="' . esc_attr($customHeight) . '"',
[293] Fix | Delete
$parsedContent
[294] Fix | Delete
);
[295] Fix | Delete
}
[296] Fix | Delete
[297] Fix | Delete
if (preg_match('~width\s+:\s+(\d+)~i', $parsedContent)) {
[298] Fix | Delete
$parsedContent = preg_replace(
[299] Fix | Delete
'~width\s+:\s+(\d+)~i',
[300] Fix | Delete
'width: ' . esc_attr($customWidth),
[301] Fix | Delete
$parsedContent
[302] Fix | Delete
);
[303] Fix | Delete
}
[304] Fix | Delete
[305] Fix | Delete
if (preg_match('~height\s+:\s+(\d+)~i', $parsedContent)) {
[306] Fix | Delete
$parsedContent = preg_replace(
[307] Fix | Delete
'~height\s+:\s+(\d+)~i',
[308] Fix | Delete
'height: ' . esc_attr($customHeight),
[309] Fix | Delete
$parsedContent
[310] Fix | Delete
);
[311] Fix | Delete
}
[312] Fix | Delete
if ('gfycat' === $provider_name && preg_match('~height\s*:\s*auto\s*;~i', $parsedContent)) {
[313] Fix | Delete
$parsedContent = preg_replace(
[314] Fix | Delete
'~height\s*:\s*auto\s*~i',
[315] Fix | Delete
'height: ' . esc_attr($customHeight) . 'px',
[316] Fix | Delete
$parsedContent
[317] Fix | Delete
);
[318] Fix | Delete
$parsedContent = preg_replace(
[319] Fix | Delete
'~style="position:relative;padding-bottom(.+?)"~i',
[320] Fix | Delete
'',
[321] Fix | Delete
$parsedContent
[322] Fix | Delete
);
[323] Fix | Delete
$styles = "<style>
[324] Fix | Delete
.ose-gfycat.ose-embedpress-responsive{
[325] Fix | Delete
position: relative;
[326] Fix | Delete
}
[327] Fix | Delete
</style>";
[328] Fix | Delete
$parsedContent = $styles . $parsedContent;
[329] Fix | Delete
}
[330] Fix | Delete
}
[331] Fix | Delete
}
[332] Fix | Delete
[333] Fix | Delete
[334] Fix | Delete
[335] Fix | Delete
[336] Fix | Delete
[337] Fix | Delete
if ('the-new-york-times' === $provider_name && isset($customAttributes['height']) && isset($customAttributes['width'])) {
[338] Fix | Delete
$height = $customAttributes['height'];
[339] Fix | Delete
$width = $customAttributes['width'];
[340] Fix | Delete
$styles = <<<KAMAL
[341] Fix | Delete
<style>
[342] Fix | Delete
.ose-the-new-york-times iframe{
[343] Fix | Delete
min-height: auto;
[344] Fix | Delete
height: {height}px;
[345] Fix | Delete
width: {width}px;
[346] Fix | Delete
max-width:100%
[347] Fix | Delete
max-height: 100%;
[348] Fix | Delete
}
[349] Fix | Delete
</style>
[350] Fix | Delete
KAMAL;
[351] Fix | Delete
$styles = str_replace(['{height}', '{width}'], [esc_attr($height), esc_attr($width)], $styles);
[352] Fix | Delete
$parsedContent = $styles . $parsedContent;
[353] Fix | Delete
}
[354] Fix | Delete
[355] Fix | Delete
if ($stripNewLine) {
[356] Fix | Delete
$parsedContent = preg_replace('/\n/', '', $parsedContent);
[357] Fix | Delete
}
[358] Fix | Delete
[359] Fix | Delete
[360] Fix | Delete
$parsedContent = apply_filters('pp_embed_parsed_content', $parsedContent, $urlData, self::get_oembed_attributes());
[361] Fix | Delete
[362] Fix | Delete
if (!empty($parsedContent)) {
[363] Fix | Delete
$embed = (object) array_merge((array) $urlData, [
[364] Fix | Delete
'attributes' => (object) self::get_oembed_attributes(),
[365] Fix | Delete
'embed' => $parsedContent,
[366] Fix | Delete
'url' => $url,
[367] Fix | Delete
]);
[368] Fix | Delete
[369] Fix | Delete
$embed = self::modify_spotify_content($embed);
[370] Fix | Delete
$embed = apply_filters('embedpress:onAfterEmbed', $embed);
[371] Fix | Delete
[372] Fix | Delete
// Attributes to remove
[373] Fix | Delete
$attributesToRemove = 'autoplay;';
[374] Fix | Delete
[375] Fix | Delete
// New attribute to add
[376] Fix | Delete
$newAttribute = 'encrypted-media;'.'accelerometer;'.'autoplay;'.'clipboard-write;'.'gyroscope;'.'picture-in-picture';
[377] Fix | Delete
[378] Fix | Delete
// Remove existing attributes
[379] Fix | Delete
$embed->embed = str_replace($attributesToRemove, $newAttribute, $embed->embed);
[380] Fix | Delete
[381] Fix | Delete
return $embed;
[382] Fix | Delete
}
[383] Fix | Delete
}
[384] Fix | Delete
[385] Fix | Delete
return $subject;
[386] Fix | Delete
}
[387] Fix | Delete
[388] Fix | Delete
protected static function get_oembed()
[389] Fix | Delete
{
[390] Fix | Delete
if (!self::$oEmbedInstance) {
[391] Fix | Delete
global $wp_version;
[392] Fix | Delete
if (version_compare($wp_version, '5.3.0', '>=')) {
[393] Fix | Delete
require_once ABSPATH . 'wp-includes/class-wp-oembed.php';
[394] Fix | Delete
} else {
[395] Fix | Delete
require_once ABSPATH . 'wp-includes/class-oembed.php';
[396] Fix | Delete
}
[397] Fix | Delete
self::$oEmbedInstance = _wp_oembed_get_object();
[398] Fix | Delete
}
[399] Fix | Delete
return self::$oEmbedInstance;
[400] Fix | Delete
}
[401] Fix | Delete
[402] Fix | Delete
protected static function set_default_size(&$customAttributes)
[403] Fix | Delete
{
[404] Fix | Delete
[405] Fix | Delete
$plgSettings = Core::getSettings();
[406] Fix | Delete
[407] Fix | Delete
[408] Fix | Delete
if (empty($customAttributes['width'])) {
[409] Fix | Delete
$customAttributes['width'] = !empty($plgSettings->enableEmbedResizeWidth) ? esc_attr($plgSettings->enableEmbedResizeWidth) : 600;
[410] Fix | Delete
}
[411] Fix | Delete
if (empty($customAttributes['height'])) {
[412] Fix | Delete
$customAttributes['height'] = !empty($plgSettings->enableEmbedResizeHeight) ? esc_attr($plgSettings->enableEmbedResizeHeight) : 550;
[413] Fix | Delete
}
[414] Fix | Delete
}
[415] Fix | Delete
[416] Fix | Delete
protected static function get_url_data($url, $attributes = [], $serviceProvider = '')
[417] Fix | Delete
{
[418] Fix | Delete
if (!empty($serviceProvider)) {
[419] Fix | Delete
$urlData = self::get_oembed()->fetch($serviceProvider, $url, $attributes);
[420] Fix | Delete
} else {
[421] Fix | Delete
$urlData = self::get_embera_instance()->getUrlData($url);
[422] Fix | Delete
}
[423] Fix | Delete
[424] Fix | Delete
return $urlData;
[425] Fix | Delete
}
[426] Fix | Delete
[427] Fix | Delete
// self::$attributes_data = self::$ombed_attributes;
[428] Fix | Delete
[429] Fix | Delete
public static function getAttributesData(){
[430] Fix | Delete
self::$attributes_data = self::get_oembed_attributes();
[431] Fix | Delete
// return self::get_oembed_attributes();
[432] Fix | Delete
return self::$attributes_data;
[433] Fix | Delete
}
[434] Fix | Delete
[435] Fix | Delete
[436] Fix | Delete
/**
[437] Fix | Delete
* @return null|Embera
[438] Fix | Delete
*/
[439] Fix | Delete
public static function get_embera_instance()
[440] Fix | Delete
{
[441] Fix | Delete
if (!self::$embera_instance) {
[442] Fix | Delete
$additionalServiceProviders = Core::getAdditionalServiceProviders();
[443] Fix | Delete
if (!empty($additionalServiceProviders)) {
[444] Fix | Delete
foreach ($additionalServiceProviders as $serviceProviderClassName => $serviceProviderUrls) {
[445] Fix | Delete
self::addServiceProvider($serviceProviderClassName, $serviceProviderUrls);
[446] Fix | Delete
}
[447] Fix | Delete
unset($serviceProviderUrls, $serviceProviderClassName);
[448] Fix | Delete
}
[449] Fix | Delete
self::$embera_instance = new Embera(self::get_embera_settings(), self::get_collection());
[450] Fix | Delete
} else {
[451] Fix | Delete
self::$embera_instance->setConfig(self::get_embera_settings());
[452] Fix | Delete
}
[453] Fix | Delete
return self::$embera_instance;
[454] Fix | Delete
}
[455] Fix | Delete
[456] Fix | Delete
/**
[457] Fix | Delete
* Method that adds support to a given new service provider (SP).
[458] Fix | Delete
*
[459] Fix | Delete
* @param string $className The new SP class name.
[460] Fix | Delete
* @param string $reference The new SP reference name.*
[461] Fix | Delete
* @return DefaultProviderCollection|bool
[462] Fix | Delete
* @since 1.0.0
[463] Fix | Delete
* @static
[464] Fix | Delete
*
[465] Fix | Delete
*/
[466] Fix | Delete
public static function addServiceProvider($className, $reference)
[467] Fix | Delete
{
[468] Fix | Delete
if (empty($className) || empty($reference)) {
[469] Fix | Delete
return false;
[470] Fix | Delete
}
[471] Fix | Delete
[472] Fix | Delete
if (is_null(self::$collection)) {
[473] Fix | Delete
self::$collection = new DefaultProviderCollection();
[474] Fix | Delete
}
[475] Fix | Delete
if (is_string($reference)) {
[476] Fix | Delete
self::$collection->addProvider($reference, $className);
[477] Fix | Delete
return self::$collection;
[478] Fix | Delete
} elseif (is_array($reference)) {
[479] Fix | Delete
foreach ($reference as $serviceProviderUrl) {
[480] Fix | Delete
self::addServiceProvider($className, $serviceProviderUrl);
[481] Fix | Delete
}
[482] Fix | Delete
return self::$collection;
[483] Fix | Delete
} else {
[484] Fix | Delete
return false;
[485] Fix | Delete
}
[486] Fix | Delete
}
[487] Fix | Delete
[488] Fix | Delete
/**
[489] Fix | Delete
* Method that retrieves all custom parameters from a shortcoded string.
[490] Fix | Delete
*
[491] Fix | Delete
* @param string $subject The given shortcoded string.
[492] Fix | Delete
*
[493] Fix | Delete
* @return array
[494] Fix | Delete
* @since 1.0.0
[495] Fix | Delete
* @static
[496] Fix | Delete
*
[497] Fix | Delete
*/
[498] Fix | Delete
public static function parseContentAttributesFromString($subject)
[499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function