/** * Shortcode Functionality */ function embed_shortcode($atts) { $embed = ""; $durl = ""; $default_width = ead_sanitize_dims(get_option('ead_width', '100%')); $default_height = ead_sanitize_dims(get_option('ead_height', '500px')); $default_provider = get_option('ead_provider', 'google'); $default_download = get_option('ead_download', 'none'); $show = false; extract(shortcode_atts(array('url' => '', 'drive' => '', 'width' => $default_width, 'height' => $default_height, 'language' => 'en', 'viewer' => $default_provider, 'download' => $default_download), $atts)); if (isset($atts['provider'])) { $viewer = $atts['provider']; } if (!isset($atts['provider']) and !isset($atts['viewer'])) { $viewer = 'google'; } if ($url) { $filedata = wp_remote_head($url); $durl = ''; $privatefile = ''; if (ead_allowdownload($viewer)) { if ($download == 'alluser' or $download == 'all') { $show = true; } elseif ($download == 'logged' and is_user_logged_in()) { $show = true; } } if ($show) { $filesize = 0; $url = esc_url($url, array('http', 'https')); if (!is_wp_error($filedata) && isset($filedata['headers']['content-length'])) { $filesize = ead_human_filesize($filedata['headers']['content-length']); } else { $filesize = 0; } $fileHtml = ''; if ($filesize) { $fileHtml = ' [' . $filesize . ']'; } $durl = '<p class="embed_download"><a href="' . $url . '" download >' . __('Download', 'ead') . $fileHtml . ' </a></p>'; } $url = esc_url($url, array('http', 'https')); $providerList = array('google', 'microsoft'); if (!in_array($viewer, $providerList)) { $viewer = 'google'; } switch ($viewer) { case 'google': $embedsrc = '//docs.google.com/viewer?url=%1$s&embedded=true&hl=%2$s'; $iframe = sprintf($embedsrc, urlencode($url), esc_attr($language)); break; case 'microsoft': $embedsrc = '//view.officeapps.live.com/op/embed.aspx?src=%1$s'; $iframe = sprintf($embedsrc, urlencode($url)); break; } $style = 'style="width:%1$s; height:%2$s; border: none;"'; $stylelink = sprintf($style, ead_sanitize_dims($width), ead_sanitize_dims($height)); $iframe = '<iframe src="' . $iframe . '" ' . $stylelink . '></iframe>'; $show = false; $embed = '<div class="ead-document">' . $iframe . $privatefile . $durl . '</div>'; } else { $embed = __('No Url Found', 'ead'); } return $embed; }
/** * Validate File url * * @since 1.0 * @return string Download link */ function ead_validateurl($url) { $types = ead_validmimeTypes(); $url = esc_url($url, array('http', 'https')); $remote = wp_remote_head($url); $json['status'] = false; $json['message'] = ''; if (wp_remote_retrieve_response_code($remote) == 200) { //Gzip Support $filename = pathinfo($url); $doctypes = ead_validmimeTypes(); if (ead_validType($url, $doctypes)) { $json['status'] = true; $json['message'] = __("Done", 'ead'); $json['file']['url'] = $url; if (isset($filename)) { $json['file']['filename'] = $filename['basename']; } else { $json['file']['filename'] = __("Document", 'ead'); } if (!is_wp_error($filedata) && isset($filedata['headers']['content-length'])) { $json['file']['filesizeHumanReadable'] = ead_human_filesize($remote['headers']['content-length']); } else { $json['file']['filesizeHumanReadable'] = 0; } } else { $json['message'] = __("File format is not supported.", 'ead'); $json['status'] = false; } } elseif (is_wp_error($remote)) { $json['message'] = $remote->get_error_message(); $json['status'] = false; } else { $json['message'] = __('Sorry, the file URL is not valid.', 'ead'); $json['status'] = false; } return $json; }