Chris Zenzel
Forum Replies Created
Viewing 2 replies - 1 through 2 (of 2 total)
-
Forum: Plugins
In reply to: [Perfect OneDrive Gallery & File] Fix for Forced SSL Admin Web SitesUnder pwebonedrive.php I had to change all instances of were the establishment of admin_url was being used (that actually was using HTTPS causing images not to load because of my self-signed certificate) and had to add three or four lines in different sections to make the files and images visible.
Sorry I couldn’t do a “diff” / compare here. Please let me know if this information is helpful for HTTPS admins.
Sorry about the code edits and posting the full code file back up here. I just wanted to make sure all the edits were visible.
<?php /** * Plugin Name: Perfect OneDrive Gallery & File * Plugin URI: http://www.perfect-web.co/wordpress/microsoft-onedrive-gallery-file * Description: Share easily your photos and files stored on Microsoft OneDrive. You can display a gallery with your photos or a link to a file for download. * Version: 1.2.5.1-dev-ssl (Custom for File to prevent Auto-Update) * Text Domain: pwebonedrive * Author: Piotr Moćko * Author URI: http://www.perfect-web.co * License: GPLv3 */ // No direct access function_exists('add_action') or die; if (!defined('PWEB_ONEDRIVE_DEBUG')) define('PWEB_ONEDRIVE_DEBUG', WP_DEBUG); function pweb_onedrive_init() { load_plugin_textdomain( 'pwebonedrive', false, basename(dirname(__FILE__)).'/languages' ); wp_register_style('pweb_onedrive_file_style', plugins_url('css/onedrivefile.css', __FILE__)); wp_register_style('pweb_onedrive_gallery_style', plugins_url('css/onedrivegallery.css', __FILE__)); wp_register_style('pweb_onedrive_prettyphoto_style', plugins_url('css/prettyPhoto.css', __FILE__)); wp_register_script('pweb_onedrive_prettyphoto_script', plugins_url('js/jquery.prettyPhoto'.(PWEB_ONEDRIVE_DEBUG ? '' : '.min').'.js', __FILE__), array('jquery')); } add_action('init', 'pweb_onedrive_init'); require_once dirname( __FILE__ ) . '/liveconnect.php'; if ( is_admin() ) { require_once dirname( __FILE__ ) . '/admin.php'; require_once dirname( __FILE__ ) . '/admin-buttons.php'; } function pweb_onedrive_gallery_assets() { wp_enqueue_style('pweb_onedrive_gallery_style'); // Load prettyPhoto wp_enqueue_style('pweb_onedrive_prettyphoto_style'); wp_enqueue_script('pweb_onedrive_prettyphoto_script'); // Init prettyPhoto add_action('wp_footer', 'pweb_onedrive_prettyphoto_init'); } function pweb_onedrive_prettyphoto_init() { if (!defined('PRETTYPHOTOINIT')) { define('PRETTYPHOTOINIT', 1); $options = array('deeplinking:false,social_tools:false'); //if ($this->params->get('gallery_theme')) $options[] = 'theme:"'.$this->params->get('gallery_theme').'"'; //if (!$this->params->get('gallery_overlay', 1)) $options[] = 'overlay_gallery:false'; echo '<script type="text/javascript">' .'var oneDrivePrettyPhotoConfig={'.implode(',', $options).'};' .'jQuery(document).ready(function($){' .'$("a[rel^=\'onedrivegallery\']").prettyPhoto(oneDrivePrettyPhotoConfig)' .'});' .'</script>'; } } function pweb_onedrive_file_assets() { wp_enqueue_style('pweb_onedrive_file_style'); } add_shortcode('onedrivegallery', 'pweb_onedrive_galery_shortcode'); function pweb_onedrive_galery_shortcode($atts, $content = null, $tag) { extract( shortcode_atts( array ( 'id' => '', 'thumbnail' => 'thumbnail', //TODO gallery_thumnail_size 'full' => 'normal', //TODO gallery_image_size 'class' => '' ), $atts ) ); $output = ''; if (!$id) return $output; pweb_onedrive_gallery_assets(); $images = pweb_onedrive_get_gallery($id); if (is_object($images) AND isset($images->data)) { if (count($images->data)) { // Display gallery if (!in_array($full, array('normal', 'full'))) $full = 'normal'; //TODO load option gallery_image_size // Select thumbnail image size switch ($thumbnail) { case 'album': $index = 1; break; case 'thumbnail': default: $index = 2; } if ($class) $class = ' '.$class; $galleryId = md5($id); // Output gallery $output = '<span id="onedrivegallery-'.$galleryId.'" class="onedrivegallery'.$class.(PWEB_ONEDRIVE_DEBUG ? ' debug' : '').'">'; foreach ($images->data as $image) { // File extension $dot = strrpos($image->name, '.') + 1; $image->ext = substr($image->name, $dot); // Image url $url = admin_url('admin-ajax.php?action=pweb_onedrive_display_photo&aid='.$images->access_id.'&code='.base64_encode($image->id.'/picture?type='.$full).'#'.$image->ext); $src = admin_url('admin-ajax.php?action=pweb_onedrive_display_photo&aid='.$images->access_id.'&code='.base64_encode($image->id.'/picture?type='.$thumbnail)); // Image URL Fix if (!is_ssl()) { $url = set_url_scheme($url, 'http'); $src = set_url_scheme($src, 'http'); } // Output image $output .= '<a href="'.$url.'"' .' rel="onedrivegallery['.$galleryId.']"'.($image->description ? ' title="'.htmlentities($image->description, ENT_QUOTES, 'UTF-8').'"' : '').'>' .'<img src="'.$src.'"' .' width="'.$image->images[$index]->width.'" height="'.$image->images[$index]->height.'"' .' alt="'.($image->description ? htmlentities($image->description, ENT_QUOTES, 'UTF-8') : '').'" />' .'</a>'; } $output .= '</span>'; } else { // Output message about no images $output = '<span class="onedrivegallery-error">'.__('There are no images in this gallery!', 'pwebonedrive').'</span>'; } } else { // Output message about error $output = '<span class="onedrivegallery-error">'.__('Can not load images!', 'pwebonedrive').(is_string($images) ? ' '.$images : '').'</span>'; } return $output; } add_shortcode('onedrivefile', 'pweb_onedrive_file_shortcode'); function pweb_onedrive_file_shortcode($atts, $content = null, $tag) { extract( shortcode_atts( array ( 'id' => '', 'image' => '', //TODO load option 'width' => '', 'height' => '', 'icon' => '1', //TODO load option 'size' => '1', //TODO load option 'class' => '' ), $atts ) ); $output = ''; if (!$id) return $output; pweb_onedrive_file_assets(); $file = pweb_onedrive_get_file($id); if (is_object($file)) { if ($class) $class = ' '.$class; // Display photo if ($file->type == 'photo' AND $image != 'download') { if (!in_array($image, array('normal', 'album', 'thumbnail', 'full'))) $image = 'normal'; //TODO load option if ($content) { $file->description = $content; } // Image url $src = admin_url('admin-ajax.php?action=pweb_onedrive_display_photo&aid='.$file->access_id.'&code='.base64_encode($file->id.'/picture?type='.$image)); // Image URL Fix if (!is_ssl()) $src = set_url_scheme($src, 'http'); // Output image $output = '<img src="'.$src.'" class="onedrivefile onedrivefile-photo'. $class .(PWEB_ONEDRIVE_DEBUG ? ' debug' : '').'"'; if ($width OR $height) { if ($width) $output .= ' width="'.$width.'"'; if ($height) $output .= ' height="'.$height.'"'; } else { // Select image size switch ($image) { case 'thumbnail': $index = 2; break; case 'normal': $index = 0; break; case 'full': $index = 3; break; case 'album': default: $index = 1; } $output .= ' width="'.$file->images[$index]->width.'" height="'.$file->images[$index]->height.'"'; } $output .= ' alt="'.htmlentities($file->description, ENT_QUOTES, 'UTF-8').'" />'; } // Display file link else { if ($content) { $file->name = $content; } // File url $url = admin_url('admin-ajax.php?action=pweb_onedrive_download_file&aid='.$file->access_id.'&code='.base64_encode($file->id.'/content?download=true')); // File URL Fix if (!is_ssl()) $url = set_url_scheme($url, 'http'); // Output file $output = '<a href="'.$url.'" target="_blank" rel="nofollow" class="onedrivefile onedrivefile-'.$file->ext . $class .(PWEB_ONEDRIVE_DEBUG ? ' debug' : '').'"' .($file->description ? ' title="'.htmlentities($file->description, ENT_QUOTES, 'UTF-8').'"' : '') .'>' .($icon ? '<span class="icon"></span>' : '') .$file->name .($size ? ' <span class="size">('.$file->size.')</span>' : '') .'</a>'; } } else { // Output message about error $output = '<span class="onedrivefile-error">'.__('Can not load file!', 'pwebonedrive').(is_string($file) ? ' '.$file : '').'</span>'; } return $output; } function pweb_onedrive_get_gallery($resource_id) { static $galleries = array(); if (isset($galleries[$resource_id])) { return $galleries[$resource_id]; } $client = LiveConnectClient::getInstance(); $client->setOption('usecookie', false); $client->log(__FUNCTION__.'. Get images by Folder ID: '.$resource_id); // Get photos $response = $client->queryByRersourceId($resource_id, $resource_id.'/files?filter=photos&sort_by=name&sort_order=ascending'); if (is_wp_error($response)) { return __('Can not load data!', 'pwebonedrive').' '.$response->get_error_message(); } $data = $response['body']; if (!$data) return false; if (isset($data->data)) { $client->log(__FUNCTION__.'. Images loaded'); // Access Id $data->access_id = $client->getAccessId(); $galleries[$resource_id] = $data; return $galleries[$resource_id]; } elseif (isset($data->error) AND isset($data->error->message)) { $client->log(__FUNCTION__.'. Get images REST error: '.$data->error->message, E_USER_ERROR); return $data->error->message; } return false; } function pweb_onedrive_get_file($resource_id) { static $files = array(); if (isset($files[$resource_id])) { return $files[$resource_id]; } $client = LiveConnectClient::getInstance(); $client->setOption('usecookie', false); $client->log(__FUNCTION__.'. Get file by ID: '.$resource_id); // Get File $response = $client->queryByRersourceId($resource_id); if (is_wp_error($response)) { return __('Can not load data!', 'pwebonedrive').' '.$response->get_error_message(); } $data = $response['body']; if (!$data) return false; if (isset($data->id)) { $client->log(__FUNCTION__.'. File loaded'); // File extension $dot = strrpos($data->name, '.') + 1; $data->ext = substr($data->name, $dot); // Access Id $data->access_id = $client->getAccessId(); // Formatted file size $data->size = pweb_onedrive_file_format_size($data->size); $files[$resource_id] = $data; return $files[$resource_id]; } elseif (isset($data->error) AND isset($data->error->message)) { $client->log(__FUNCTION__.'. Get file REST error: '.$data->error->message, E_USER_ERROR); return $data->error->message; } return false; } function pweb_onedrive_file_format_size($size) { $base = log($size, 2); if ($base >= 30) { $div = 1024*1024*1024; $sufix = ' GB'; } elseif ($base >= 20) { $div = 1024*1024; $sufix = ' MB'; } elseif ($base >= 10) { $div = 1024; $sufix = ' KB'; } else { return $size.' B'; } $size = $size / $div; return round($size, $size < 50 ? 1 : 0) . $sufix; } add_action('wp_ajax_pweb_onedrive_download_file', 'pweb_onedrive_download_file'); add_action('wp_ajax_nopriv_pweb_onedrive_download_file', 'pweb_onedrive_download_file'); function pweb_onedrive_download_file() { $client = LiveConnectClient::getInstance(); $client->setOption('usecookie', false); $client->log(__FUNCTION__); $access_id = isset($_GET['aid']) ? (int)$_GET['aid'] : 0; $url = isset($_GET['code']) ? base64_decode($_GET['code']) : null; if (!$url OR !$access_id) die(); // Get File $response = $client->queryByAccessId($access_id, $url); if (is_wp_error($response)) { die(__('Can not load data!', 'pwebonedrive').' Request error: '.$response->get_error_message()); } // Follow location returned by request if (headers_sent() AND isset($response['headers']['location'])) { echo "<script>document.location.href='" . htmlspecialchars($response['headers']['location']) . "';</script>\n"; } else { unset($response['headers']['keep-alive']); foreach ($response['headers'] as $name => $value) { header($name.': '.$value); } echo $response['body']; } die(); } add_action('wp_ajax_pweb_onedrive_display_photo', 'pweb_onedrive_display_photo'); add_action('wp_ajax_nopriv_pweb_onedrive_display_photo', 'pweb_onedrive_display_photo'); function pweb_onedrive_display_photo() { $client = LiveConnectClient::getInstance(); $client->setOption('usecookie', false); $client->log(__FUNCTION__); $access_id = isset($_GET['aid']) ? (int)$_GET['aid'] : 0; $url = isset($_GET['code']) ? base64_decode($_GET['code']) : null; if (!$url OR !$access_id) die(); // Get File $response = $client->queryByAccessId($access_id, $url); if (is_wp_error($response)) { die(__('Can not load data!', 'pwebonedrive').' Request error: '.$response->get_error_message()); } // Follow location returned by request if (headers_sent() AND isset($response['headers']['location'])) { echo "<script>document.location.href='" . htmlspecialchars($response['headers']['location']) . "';</script>\n"; } else { if ($response['body']) { unset($response['headers']['location'], $response['headers']['keep-alive']); } elseif (false) //TODO option: image_redirect { // Get image from location and output to the browser instead of redirecting to that location $url = $response['headers']['location']; unset($response['headers']['location'], $response['headers']['keep-alive']); $response = $client->request($url, $response['headers']); if (is_wp_error($response)) { die(__('Can not load data!', 'pwebonedrive').' Request error: '.$response->get_error_message()); } } foreach ($response['headers'] as $name => $value) { header($name.': '.$value); } echo $response['body']; } die(); } function pweb_onedrive_parse_request() { if (!empty($_SERVER['REQUEST_URI']) AND preg_match('/\/pwebonedrive\/callback\/?(\?.+)?$/', $_SERVER['REQUEST_URI']) === 1) { pweb_onedrive_callback(); } } add_action('parse_request', 'pweb_onedrive_parse_request'); function pweb_onedrive_callback() { $client = LiveConnectClient::getInstance(); $client->log(__FUNCTION__); echo $client->handlePageRequest(); $client->log(__FUNCTION__.'. Die'); die(); } register_activation_hook( __FILE__, 'pweb_onedrive_install' ); function pweb_onedrive_install() { global $wpdb; global $charset_collate; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); $sql = "CREATE TABLE IF NOT EXISTS <code>{$wpdb->prefix}onedrive_access</code> ( <code>id</code> int(11) NOT NULL AUTO_INCREMENT, <code>user_id</code> varchar(1024) DEFAULT NULL, <code>access_token</code> varchar(1024) DEFAULT NULL, <code>refresh_token</code> varchar(1024) DEFAULT NULL, <code>created</code> int(11) unsigned DEFAULT NULL, <code>expires_in</code> int(6) DEFAULT '3600', PRIMARY KEY (<code>id</code>), KEY <code>user</code> (<code>user_id</code>(333)) ) $charset_collate AUTO_INCREMENT=1;"; dbDelta( $sql ); $sql = "CREATE TABLE IF NOT EXISTS <code>{$wpdb->prefix}onedrive_storage</code> ( <code>id</code> int(11) unsigned NOT NULL AUTO_INCREMENT, <code>resource_id</code> varchar(1024) NOT NULL, <code>access_id</code> int(11) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (<code>id</code>), KEY <code>resource</code> (<code>resource_id</code>(333)), KEY <code>idx_access_id</code> (<code>access_id</code>) ) $charset_collate AUTO_INCREMENT=1;"; dbDelta( $sql ); } register_uninstall_hook( __FILE__, 'pweb_onedrive_uninstall' ); function pweb_onedrive_uninstall() { global $wpdb; $wpdb->query( "DROP TABLE IF EXISTS <code>{$wpdb->prefix}onedrive_access</code>" ); $wpdb->query( "DROP TABLE IF EXISTS <code>{$wpdb->prefix}onedrive_storage</code>" ); delete_option( 'pweb_onedrive_client_id' ); delete_option( 'pweb_onedrive_client_secret' ); delete_option( 'pweb_onedrive_redirect_uri' ); }Forum: Plugins
In reply to: [Perfect OneDrive Gallery & File] Fix for Forced SSL Admin Web SitesIt seems I made a mistake. When you complete a post and post it and have a self-signed cert it tries to carry the HTTPS to the Ajax php call. I will be fixing it and sending a new fix in a couple of minutes.
Viewing 2 replies - 1 through 2 (of 2 total)