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

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/embedpre.../EmbedPre...
File: Shortcode.php
{
[500] Fix | Delete
$customAttributes = [];
[501] Fix | Delete
if (preg_match('/\[embed\s*(.*?)\]/i', stripslashes($subject), $m)) {
[502] Fix | Delete
if (preg_match_all('/(\!?\w+-?\w*)(?:="(.+?)")?/i', stripslashes($m[1]), $matches)) {
[503] Fix | Delete
$attributes = $matches[1];
[504] Fix | Delete
$attrValues = $matches[2];
[505] Fix | Delete
[506] Fix | Delete
foreach ($attributes as $attrIndex => $attrName) {
[507] Fix | Delete
$customAttributes[$attrName] = $attrValues[$attrIndex];
[508] Fix | Delete
}
[509] Fix | Delete
}
[510] Fix | Delete
}
[511] Fix | Delete
return $customAttributes;
[512] Fix | Delete
}
[513] Fix | Delete
[514] Fix | Delete
/**
[515] Fix | Delete
* Method that parses and adds the "data-" prefix to the given custom shortcode attributes.
[516] Fix | Delete
*
[517] Fix | Delete
* @param array $customAttributes The array containing the embed attributes.
[518] Fix | Delete
* @param string $content_uid An optional string specifying a unique ID for the embed
[519] Fix | Delete
*
[520] Fix | Delete
* @return array
[521] Fix | Delete
* @since 1.0.0
[522] Fix | Delete
* @access private
[523] Fix | Delete
* @static
[524] Fix | Delete
*
[525] Fix | Delete
*/
[526] Fix | Delete
[527] Fix | Delete
private static function parseContentAttributes(array $customAttributes, $content_uid = null)
[528] Fix | Delete
{
[529] Fix | Delete
[530] Fix | Delete
$attributes = [
[531] Fix | Delete
'class' => ["embedpress-wrapper ose-embedpress-responsive"],
[532] Fix | Delete
];
[533] Fix | Delete
[534] Fix | Delete
$embedShouldBeResponsive = true;
[535] Fix | Delete
$embedShouldHaveCustomDimensions = false;
[536] Fix | Delete
if (!empty($customAttributes)) {
[537] Fix | Delete
if (isset($customAttributes['class'])) {
[538] Fix | Delete
if (!empty($customAttributes['class'])) {
[539] Fix | Delete
$customAttributes['class'] = explode(' ', $customAttributes['class']);
[540] Fix | Delete
[541] Fix | Delete
$attributes['class'] = array_merge($attributes['class'], $customAttributes['class']);
[542] Fix | Delete
}
[543] Fix | Delete
[544] Fix | Delete
unset($customAttributes['class']);
[545] Fix | Delete
}
[546] Fix | Delete
[547] Fix | Delete
if (isset($customAttributes['width'])) {
[548] Fix | Delete
if (!empty($customAttributes['width'])) {
[549] Fix | Delete
$attributes['width'] = (int) $customAttributes['width'];
[550] Fix | Delete
$embedShouldHaveCustomDimensions = true;
[551] Fix | Delete
}
[552] Fix | Delete
}
[553] Fix | Delete
[554] Fix | Delete
if (isset($customAttributes['height'])) {
[555] Fix | Delete
if (!empty($customAttributes['height'])) {
[556] Fix | Delete
$attributes['height'] = (int) $customAttributes['height'];
[557] Fix | Delete
$embedShouldHaveCustomDimensions = true;
[558] Fix | Delete
}
[559] Fix | Delete
}
[560] Fix | Delete
[561] Fix | Delete
if (!empty($customAttributes)) {
[562] Fix | Delete
$attrNameDefaultPrefix = "data-";
[563] Fix | Delete
foreach ($customAttributes as $attrName => $attrValue) {
[564] Fix | Delete
if (is_numeric($attrName)) {
[565] Fix | Delete
$attrName = $attrValue;
[566] Fix | Delete
$attrValue = "";
[567] Fix | Delete
}
[568] Fix | Delete
[569] Fix | Delete
$attrName = str_replace($attrNameDefaultPrefix, "", $attrName);
[570] Fix | Delete
[571] Fix | Delete
if(is_bool($attrValue)){
[572] Fix | Delete
if($attrValue)
[573] Fix | Delete
$attrValue = "true";
[574] Fix | Delete
else
[575] Fix | Delete
$attrValue = "false";
[576] Fix | Delete
}
[577] Fix | Delete
else if (!strlen($attrValue)) {
[578] Fix | Delete
if ($attrName[0] === "!") {
[579] Fix | Delete
$attrValue = "false";
[580] Fix | Delete
$attrName = substr($attrName, 1);
[581] Fix | Delete
} else {
[582] Fix | Delete
$attrValue = "true";
[583] Fix | Delete
}
[584] Fix | Delete
}
[585] Fix | Delete
[586] Fix | Delete
$attributes[$attrNameDefaultPrefix . $attrName] = $attrValue;
[587] Fix | Delete
}
[588] Fix | Delete
}
[589] Fix | Delete
[590] Fix | Delete
// Check if there's any "responsive" parameter
[591] Fix | Delete
$responsiveAttributes = ["responsive", "data-responsive"];
[592] Fix | Delete
foreach ($responsiveAttributes as $responsiveAttr) {
[593] Fix | Delete
if (isset($attributes[$responsiveAttr])) {
[594] Fix | Delete
if (!strlen($attributes[$responsiveAttr])) { // If the parameter is passed but have no value, it will be true by default
[595] Fix | Delete
$embedShouldBeResponsive = true;
[596] Fix | Delete
} else {
[597] Fix | Delete
$embedShouldBeResponsive = !self::valueIsFalse($attributes[$responsiveAttr]);
[598] Fix | Delete
}
[599] Fix | Delete
[600] Fix | Delete
break;
[601] Fix | Delete
}
[602] Fix | Delete
}
[603] Fix | Delete
unset($responsiveAttr, $responsiveAttributes);
[604] Fix | Delete
}
[605] Fix | Delete
[606] Fix | Delete
$attributes['class'][] = 'ose-{provider_alias}';
[607] Fix | Delete
[608] Fix | Delete
if (!empty($content_uid)) {
[609] Fix | Delete
$attributes['class'][] = 'ose-uid-' . $content_uid;
[610] Fix | Delete
}
[611] Fix | Delete
[612] Fix | Delete
if ($embedShouldBeResponsive && !$embedShouldHaveCustomDimensions) {
[613] Fix | Delete
$attributes['class'][] = 'responsive';
[614] Fix | Delete
} else {
[615] Fix | Delete
$attributes['data-responsive'] = "false";
[616] Fix | Delete
}
[617] Fix | Delete
[618] Fix | Delete
$attributes['class'] = implode(' ', array_unique(array_filter($attributes['class'])));
[619] Fix | Delete
if (isset($attributes['width'])) {
[620] Fix | Delete
$height = esc_attr($attributes['height']);
[621] Fix | Delete
$width = esc_attr($attributes['width']);
[622] Fix | Delete
[623] Fix | Delete
$attributes['style'] = "width:{$width}px;height:{$height}px;";
[624] Fix | Delete
}
[625] Fix | Delete
[626] Fix | Delete
return $attributes;
[627] Fix | Delete
}
[628] Fix | Delete
[629] Fix | Delete
protected static function set_embera_settings(&$attributes)
[630] Fix | Delete
{
[631] Fix | Delete
[632] Fix | Delete
if (isset($attributes['width']) || isset($attributes['height'])) {
[633] Fix | Delete
if (isset($attributes['width'])) {
[634] Fix | Delete
self::$emberaInstanceSettings['maxwidth'] = esc_attr($attributes['width']);
[635] Fix | Delete
self::$emberaInstanceSettings['width'] = esc_attr($attributes['width']);
[636] Fix | Delete
unset($attributes['width']);
[637] Fix | Delete
}
[638] Fix | Delete
[639] Fix | Delete
if (isset($attributes['height'])) {
[640] Fix | Delete
self::$emberaInstanceSettings['maxheight'] = esc_attr($attributes['height']);
[641] Fix | Delete
self::$emberaInstanceSettings['height'] = esc_attr($attributes['height']);
[642] Fix | Delete
unset($attributes['height']);
[643] Fix | Delete
}
[644] Fix | Delete
}
[645] Fix | Delete
[646] Fix | Delete
foreach ($attributes as $key => $value) {
[647] Fix | Delete
if(strpos($key, 'data-') === 0){
[648] Fix | Delete
$key = str_replace('data-', '', $key);
[649] Fix | Delete
self::$emberaInstanceSettings[$key] = $value;
[650] Fix | Delete
}
[651] Fix | Delete
}
[652] Fix | Delete
[653] Fix | Delete
}
[654] Fix | Delete
[655] Fix | Delete
protected static function get_embera_settings()
[656] Fix | Delete
{
[657] Fix | Delete
return self::$emberaInstanceSettings;
[658] Fix | Delete
}
[659] Fix | Delete
[660] Fix | Delete
public static function get_block_controls_data(){
[661] Fix | Delete
var_dump(self::$emberaInstanceSettings);
[662] Fix | Delete
}
[663] Fix | Delete
[664] Fix | Delete
/**
[665] Fix | Delete
* Method that checks if a given value is/can be identified as (bool)false.
[666] Fix | Delete
*
[667] Fix | Delete
* @param mixed $subject The value to be checked.
[668] Fix | Delete
*
[669] Fix | Delete
* @return boolean
[670] Fix | Delete
* @since 1.0.0
[671] Fix | Delete
* @static
[672] Fix | Delete
*
[673] Fix | Delete
*/
[674] Fix | Delete
[675] Fix | Delete
public static function valueIsFalse($subject)
[676] Fix | Delete
{
[677] Fix | Delete
$subject = strtolower(trim((string) $subject));
[678] Fix | Delete
switch ($subject) {
[679] Fix | Delete
case "0":
[680] Fix | Delete
case "false":
[681] Fix | Delete
case "off":
[682] Fix | Delete
case "no":
[683] Fix | Delete
case "n":
[684] Fix | Delete
case "nil":
[685] Fix | Delete
case "null":
[686] Fix | Delete
return true;
[687] Fix | Delete
default:
[688] Fix | Delete
return false;
[689] Fix | Delete
}
[690] Fix | Delete
}
[691] Fix | Delete
[692] Fix | Delete
/**
[693] Fix | Delete
* Return the value from a header which is in an array resulted from a get_headers() call.
[694] Fix | Delete
* If the header cannot be found, this method will return null instead.
[695] Fix | Delete
*
[696] Fix | Delete
* @param string $headerPattern Regex pattern the header and its value must match.
[697] Fix | Delete
* @param array $headersList A list of headers resulted from a get_headers() call.
[698] Fix | Delete
*
[699] Fix | Delete
* @return mixed
[700] Fix | Delete
* @since 1.1.0
[701] Fix | Delete
* @access private
[702] Fix | Delete
* @static
[703] Fix | Delete
*
[704] Fix | Delete
*/
[705] Fix | Delete
private static function extractContentFromHeaderAsArray($headerPattern, $headersList)
[706] Fix | Delete
{
[707] Fix | Delete
$headerValue = null;
[708] Fix | Delete
[709] Fix | Delete
foreach ($headersList as $header) {
[710] Fix | Delete
if (preg_match($headerPattern, $header, $matches)) {
[711] Fix | Delete
$headerValue = $matches[1];
[712] Fix | Delete
break;
[713] Fix | Delete
}
[714] Fix | Delete
}
[715] Fix | Delete
[716] Fix | Delete
return $headerValue;
[717] Fix | Delete
}
[718] Fix | Delete
[719] Fix | Delete
/**
[720] Fix | Delete
* Sanitize the object returned by the embed source. Sometimes we need to convert
[721] Fix | Delete
* attributes from "dash" separated to "underline" separated to be able to access
[722] Fix | Delete
* those attributes from the object, without having to convert it to an array.
[723] Fix | Delete
*
[724] Fix | Delete
* @param object $data
[725] Fix | Delete
*
[726] Fix | Delete
* @return object
[727] Fix | Delete
* @since 1.6.1
[728] Fix | Delete
* @access private
[729] Fix | Delete
* @static
[730] Fix | Delete
*
[731] Fix | Delete
*/
[732] Fix | Delete
private static function sanitizeUrlData($data, $url = '')
[733] Fix | Delete
{
[734] Fix | Delete
if (is_object($data)) {
[735] Fix | Delete
$attributes = get_object_vars($data);
[736] Fix | Delete
[737] Fix | Delete
foreach ($attributes as $key => $value) {
[738] Fix | Delete
if (substr_count($key, '-') && $key !== $url) {
[739] Fix | Delete
unset($data->$key);
[740] Fix | Delete
[741] Fix | Delete
$key = str_replace('-', '_', $key);
[742] Fix | Delete
$data->$key = $value;
[743] Fix | Delete
}
[744] Fix | Delete
}
[745] Fix | Delete
} elseif (is_array($data)) {
[746] Fix | Delete
foreach ($data as $key => $value) {
[747] Fix | Delete
if (substr_count($key, '-') && $key !== $url) {
[748] Fix | Delete
unset($data[$key]);
[749] Fix | Delete
[750] Fix | Delete
$key = str_replace('-', '_', $key);
[751] Fix | Delete
$data[$key] = $value;
[752] Fix | Delete
}
[753] Fix | Delete
}
[754] Fix | Delete
}
[755] Fix | Delete
[756] Fix | Delete
return $data;
[757] Fix | Delete
}
[758] Fix | Delete
[759] Fix | Delete
public static function get_collection()
[760] Fix | Delete
{
[761] Fix | Delete
return self::$collection;
[762] Fix | Delete
}
[763] Fix | Delete
[764] Fix | Delete
protected static function purify_html_content(&$html)
[765] Fix | Delete
{
[766] Fix | Delete
if (!class_exists('\simple_html_dom')) {
[767] Fix | Delete
include_once EMBEDPRESS_PATH_CORE . 'simple_html_dom.php';
[768] Fix | Delete
}
[769] Fix | Delete
[770] Fix | Delete
$dom = str_get_html($html);
[771] Fix | Delete
$ifDom = $dom->find('iframe', 0);
[772] Fix | Delete
if (!empty($ifDom) && is_object($ifDom)) {
[773] Fix | Delete
$ifDom->removeAttribute('sandbox');
[774] Fix | Delete
}
[775] Fix | Delete
[776] Fix | Delete
ob_start();
[777] Fix | Delete
echo $dom;
[778] Fix | Delete
return ob_get_clean();
[779] Fix | Delete
}
[780] Fix | Delete
[781] Fix | Delete
protected static function get_content_from_template($url, $template, $serviceProvider)
[782] Fix | Delete
{
[783] Fix | Delete
if (is_embedpress_pro_active()) {
[784] Fix | Delete
if (strpos($url, 'podcasts.apple.com')) {
[785] Fix | Delete
$iframe_url = str_replace('podcasts.apple.com', 'embed.podcasts.apple.com', $url);
[786] Fix | Delete
$html = '<iframe allow="autoplay *; encrypted-media *; fullscreen *" frameborder="0" height="175" style="width:100%;max-width:660px;overflow:hidden;background:transparent;" src="' . esc_url($iframe_url) . '"></iframe>';
[787] Fix | Delete
return str_replace('{html}', $html, $template);
[788] Fix | Delete
}
[789] Fix | Delete
}
[790] Fix | Delete
[791] Fix | Delete
if (empty($serviceProvider)) {
[792] Fix | Delete
$html = '';
[793] Fix | Delete
} else {
[794] Fix | Delete
$html = self::get_oembed()->get_html($url, self::get_oembed_attributes());
[795] Fix | Delete
}
[796] Fix | Delete
[797] Fix | Delete
if (!$html) {
[798] Fix | Delete
$html = self::get_embera_instance()->autoEmbed($url);
[799] Fix | Delete
}
[800] Fix | Delete
return str_replace('{html}', $html, $template);
[801] Fix | Delete
}
[802] Fix | Delete
[803] Fix | Delete
protected static function get_oembed_attributes()
[804] Fix | Delete
{
[805] Fix | Delete
[806] Fix | Delete
return self::$ombed_attributes;
[807] Fix | Delete
}
[808] Fix | Delete
protected static function set_oembed_attributes($atts)
[809] Fix | Delete
{
[810] Fix | Delete
self::$ombed_attributes = $atts;
[811] Fix | Delete
}
[812] Fix | Delete
[813] Fix | Delete
protected static function check_for_google_url(&$url)
[814] Fix | Delete
{
[815] Fix | Delete
if (preg_match('/http[s]?:\/\/goo\.gl\/(?:([a-z]+)\/)?[a-z0-9]+\/?$/i', $url, $matches)) {
[816] Fix | Delete
// Fetch all headers from the short-url so we can know how to handle its original content depending on the service.
[817] Fix | Delete
$headers = get_headers($url);
[818] Fix | Delete
[819] Fix | Delete
$supportedServicesHeadersPatterns = [
[820] Fix | Delete
'maps' => '/^Location:\s+(http[s]?:\/\/.+)$/i',
[821] Fix | Delete
];
[822] Fix | Delete
[823] Fix | Delete
$service = isset($matches[1]) ? strtolower($matches[1]) : null;
[824] Fix | Delete
// No specific service was found in the url.
[825] Fix | Delete
if (empty($service)) {
[826] Fix | Delete
// Let's try to guess which service the original url belongs to.
[827] Fix | Delete
foreach ($headers as $header) {
[828] Fix | Delete
// Check if the short-url reffers to a Google Maps url.
[829] Fix | Delete
if (preg_match($supportedServicesHeadersPatterns['maps'], $header, $matches)) {
[830] Fix | Delete
// Replace the shortened url with its original url.
[831] Fix | Delete
$url = $matches[1];
[832] Fix | Delete
break;
[833] Fix | Delete
}
[834] Fix | Delete
}
[835] Fix | Delete
unset($header);
[836] Fix | Delete
} else {
[837] Fix | Delete
// Check if the Google service is supported atm.
[838] Fix | Delete
if (isset($supportedServicesHeadersPatterns[$service])) {
[839] Fix | Delete
// Tries to extract the url based on its headers.
[840] Fix | Delete
$originalUrl = self::extractContentFromHeaderAsArray(
[841] Fix | Delete
$supportedServicesHeadersPatterns[$service],
[842] Fix | Delete
$headers
[843] Fix | Delete
);
[844] Fix | Delete
// Replace the shortened url with its original url if the specific header was found.
[845] Fix | Delete
if (!empty($originalUrl)) {
[846] Fix | Delete
$url = $originalUrl;
[847] Fix | Delete
}
[848] Fix | Delete
unset($originalUrl);
[849] Fix | Delete
}
[850] Fix | Delete
}
[851] Fix | Delete
unset($service, $supportedServicesHeadersPatterns, $headers, $matches);
[852] Fix | Delete
}
[853] Fix | Delete
}
[854] Fix | Delete
[855] Fix | Delete
protected static function get_provider_name($urlData, $url)
[856] Fix | Delete
{
[857] Fix | Delete
$provider_name = '';
[858] Fix | Delete
if (isset($urlData->provider_name)) {
[859] Fix | Delete
$provider_name = str_replace([' ', ','], '-', strtolower($urlData->provider_name));
[860] Fix | Delete
} elseif (is_array($urlData) && !empty($urlData)) {
[861] Fix | Delete
$data = array_shift($urlData);
[862] Fix | Delete
if (isset($data['provider_name'])) {
[863] Fix | Delete
$provider_name = str_replace([' ', ','], '-', strtolower($data['provider_name']));
[864] Fix | Delete
}
[865] Fix | Delete
}
[866] Fix | Delete
return $provider_name;
[867] Fix | Delete
}
[868] Fix | Delete
[869] Fix | Delete
protected static function modify_content_for_fb_and_canada($provider_name, &$html)
[870] Fix | Delete
{
[871] Fix | Delete
if (!empty($provider_name)) {
[872] Fix | Delete
// NFB seems to always return their embed code with all HTML entities into their applicable characters string.
[873] Fix | Delete
$PROVIDER_NAME_IN_CAP = strtoupper($provider_name);
[874] Fix | Delete
if ($PROVIDER_NAME_IN_CAP === "NATIONAL FILM BOARD OF CANADA") {
[875] Fix | Delete
$html = html_entity_decode($html);
[876] Fix | Delete
} elseif ($PROVIDER_NAME_IN_CAP === "FACEBOOK") {
[877] Fix | Delete
$plgSettings = Core::getSettings();
[878] Fix | Delete
[879] Fix | Delete
// Check if the user wants to force a certain language into Facebook embeds.
[880] Fix | Delete
$locale = isset($plgSettings->fbLanguage) && !empty($plgSettings->fbLanguage) ? $plgSettings->fbLanguage : false;
[881] Fix | Delete
if (!!$locale) {
[882] Fix | Delete
// Replace the automatically detected language by Facebook's API with the language chosen by the user.
[883] Fix | Delete
$html = preg_replace(
[884] Fix | Delete
'/\/[a-z]{2}\_[a-z]{2}\/sdk\.js/i',
[885] Fix | Delete
"/{$locale}/sdk.js",
[886] Fix | Delete
$html
[887] Fix | Delete
);
[888] Fix | Delete
}
[889] Fix | Delete
[890] Fix | Delete
// Make sure `adapt_container_width` parameter is set to false. Setting to true, as it is by default, might cause Facebook to render embeds inside editors (in admin) with only 180px wide.
[891] Fix | Delete
if (is_admin()) {
[892] Fix | Delete
$html = preg_replace(
[893] Fix | Delete
'~data\-adapt\-container\-width=\"(?:true|1)\"~i',
[894] Fix | Delete
'data-adapt-container-width="0"',
[895] Fix | Delete
$html
[896] Fix | Delete
);
[897] Fix | Delete
}
[898] Fix | Delete
[899] Fix | Delete
unset($locale, $plgSettings);
[900] Fix | Delete
}
[901] Fix | Delete
}
[902] Fix | Delete
}
[903] Fix | Delete
[904] Fix | Delete
public static function modify_spotify_content($embed)
[905] Fix | Delete
{
[906] Fix | Delete
$should_modify = apply_filters('embedpress_should_modify_spotify', true);
[907] Fix | Delete
$isSpotify = (isset($embed->provider_name) && strtoupper($embed->provider_name) === 'SPOTIFY') || (isset($embed->url) && isset($embed->{$embed->url}) && isset($embed->{$embed->url}['provider_name']) && strtoupper($embed->{$embed->url}['provider_name']) === 'SPOTIFY');
[908] Fix | Delete
if (
[909] Fix | Delete
$should_modify && $isSpotify && isset($embed->embed)
[910] Fix | Delete
&& preg_match('/src=\"(.+?)\"/', $embed->embed, $match)
[911] Fix | Delete
) {
[912] Fix | Delete
$options = (array) get_option(EMBEDPRESS_PLG_NAME . ':spotify');
[913] Fix | Delete
// Parse the url to retrieve all its info like variables etc.
[914] Fix | Delete
$url_full = $match[1];
[915] Fix | Delete
$modified_url = str_replace('playlist-v2', 'playlist', $url_full);
[916] Fix | Delete
if (isset($options['theme'])) {
[917] Fix | Delete
if (strpos($modified_url, '?') !== false) {
[918] Fix | Delete
$modified_url .= '&theme=' . sanitize_text_field($options['theme']);
[919] Fix | Delete
} else {
[920] Fix | Delete
$modified_url .= '?theme=' . sanitize_text_field($options['theme']);
[921] Fix | Delete
}
[922] Fix | Delete
}
[923] Fix | Delete
[924] Fix | Delete
// Replaces the old url with the new one.
[925] Fix | Delete
$embed->embed = str_replace($url_full, $modified_url, $embed->embed);
[926] Fix | Delete
}
[927] Fix | Delete
return $embed;
[928] Fix | Delete
}
[929] Fix | Delete
[930] Fix | Delete
public static function getParamData($attributes){
[931] Fix | Delete
[932] Fix | Delete
$urlParamData = array(
[933] Fix | Delete
'themeMode' => isset($attributes['theme_mode']) ? esc_attr($attributes['theme_mode']) : 'default',
[934] Fix | Delete
'toolbar' => isset($attributes['toolbar']) ? esc_attr($attributes['toolbar']) : 'true',
[935] Fix | Delete
'position' => isset($attributes['toolbar_position']) ? esc_attr($attributes['toolbar_position']) : 'top',
[936] Fix | Delete
'presentation' => isset($attributes['presentation']) ? esc_attr($attributes['presentation']) : 'true',
[937] Fix | Delete
'download' => isset($attributes['download']) ? esc_attr($attributes['download']) : 'true',
[938] Fix | Delete
'copy_text' => isset($attributes['copy_text']) ? esc_attr($attributes['copy_text']) : 'true',
[939] Fix | Delete
'add_text' => isset($attributes['add_text']) ? esc_attr($attributes['add_text']) : 'true',
[940] Fix | Delete
'draw' => isset($attributes['draw']) ? esc_attr($attributes['draw']) : 'true',
[941] Fix | Delete
'doc_rotation' => isset($attributes['doc_rotation']) ? esc_attr($attributes['doc_rotation']) : 'true',
[942] Fix | Delete
'add_image' => isset($attributes['add_image']) ? esc_attr($attributes['add_image']) : 'true',
[943] Fix | Delete
'doc_details' => isset($attributes['doc_details']) ? esc_attr($attributes['doc_details']) : 'true',
[944] Fix | Delete
[945] Fix | Delete
);
[946] Fix | Delete
[947] Fix | Delete
if($urlParamData['themeMode'] == 'custom') {
[948] Fix | Delete
$urlParamData['customColor'] = isset($attributes['custom_color']) ? esc_attr($attributes['custom_color']) : '#333333';
[949] Fix | Delete
}
[950] Fix | Delete
[951] Fix | Delete
return "#". http_build_query($urlParamData);
[952] Fix | Delete
}
[953] Fix | Delete
[954] Fix | Delete
public static function do_shortcode_pdf($attributes = [], $subject = null)
[955] Fix | Delete
{
[956] Fix | Delete
$plgSettings = Core::getSettings();
[957] Fix | Delete
[958] Fix | Delete
$default = [
[959] Fix | Delete
'width' => esc_attr($plgSettings->enableEmbedResizeWidth),
[960] Fix | Delete
'height' => esc_attr($plgSettings->enableEmbedResizeHeight),
[961] Fix | Delete
'powered_by' => !empty($plgSettings->embedpress_document_powered_by) ? esc_attr($plgSettings->embedpress_document_powered_by) : esc_attr('no'),
[962] Fix | Delete
];
[963] Fix | Delete
[964] Fix | Delete
if(!empty($plgSettings->pdf_custom_color_settings)){
[965] Fix | Delete
$default['theme_mode'] = 'custom';
[966] Fix | Delete
}
[967] Fix | Delete
if(isset($default['theme_mode']) && $default['theme_mode'] == 'custom' ){
[968] Fix | Delete
$default['custom_color'] = esc_attr($plgSettings->custom_color);
[969] Fix | Delete
}
[970] Fix | Delete
[971] Fix | Delete
$attributes = wp_parse_args($attributes, $default);
[972] Fix | Delete
[973] Fix | Delete
[974] Fix | Delete
$url = preg_replace(
[975] Fix | Delete
'/(\[' . EMBEDPRESS_SHORTCODE . '(?:\]|.+?\])|\[\/' . EMBEDPRESS_SHORTCODE . '\])/i',
[976] Fix | Delete
"",
[977] Fix | Delete
$subject
[978] Fix | Delete
);
[979] Fix | Delete
[980] Fix | Delete
$url = esc_url($url);
[981] Fix | Delete
[982] Fix | Delete
ob_start();
[983] Fix | Delete
[984] Fix | Delete
$id = 'embedpress-pdf-shortcode';
[985] Fix | Delete
$dimension = "width: {$attributes['width']}px;height: {$attributes['height']}px";
[986] Fix | Delete
?>
[987] Fix | Delete
<div class="embedpress-document-embed ose-document <?php echo 'ep-doc-' . md5($id); ?>" style="<?php echo esc_attr($dimension); ?>; max-width:100%; display: block">
[988] Fix | Delete
<?php if ($url != '') {
[989] Fix | Delete
if (self::is_pdf($url) && !self::is_external_url($url)) {
[990] Fix | Delete
$renderer = Helper::get_pdf_renderer();
[991] Fix | Delete
$src = $renderer . ((strpos($renderer, '?') == false) ? '?' : '&') . 'file=' . urlencode($url).self::getParamData($attributes);
[992] Fix | Delete
?>
[993] Fix | Delete
<iframe title="<?php echo esc_attr(Helper::get_file_title($url)); ?>" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true" title="" style="<?php echo esc_attr($dimension); ?>; max-width:100%; display: inline-block" data-emsrc="<?php echo esc_url($url); ?>" data-emid="<?php echo esc_attr($id); ?>" class="embedpress-embed-document-pdf <?php echo esc_attr($id); ?>" src="<?php echo esc_url($src); ?>" frameborder="0"></iframe>
[994] Fix | Delete
<?php
[995] Fix | Delete
[996] Fix | Delete
} else {
[997] Fix | Delete
?>
[998] Fix | Delete
<div>
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function