WordPress.org

Ready to get started?Download WordPress

Forums

[Plugin: NextGEN Gallery] ssl fix for nextgen (3 posts)

  1. josh@bauguss.net
    Member
    Posted 4 years ago #

    Hello. I'm hoping that you can patch nextgen to fix a slight bug (more of an oversight)

    Nextgen breaks when under SSL.

    lib/swfobject.php

    adding a quick if statement fixes this issue. If you can just put this if statement above the embed line. That would be awesome and I wouldn't have to keep fixing this when people upgrade nextgen.

    if(!empty($_SERVER["HTTPS"])) {
    $swfUrl = str_replace("http:", "https:", $swfUrl);
    }

    $this->embedSWF = 'swfobject.embedSWF("'. $swfUrl .'", "'. $this->id .'", "'. $width .'", "'. $height .'", "'. $version .'", '. $expressInstallSwfurl .', this.flashvars, this.params , this.attr );' . "\n";

    http://wordpress.org/extend/plugins/nextgen-gallery/

  2. josh@bauguss.net
    Member
    Posted 4 years ago #

    bump... no reply.. another patch came out without this fix. Yet again I had to refix sites using ssl. Please fix this. I've even given you the code.

  3. shaunco
    Member
    Posted 4 years ago #

    The issue is that get_option('siteurl') is not filtered using is_ssl() to ensure the proper URL scheme. This means that any plugin (or theme or whatever) that makes use of a defined URL will always reference http instead of properly switching to https, since the defined URLs are always based on WP_CONTENT_URL (such as WP_PLUGIN_URL).

    The proper fix for this would be for WP to modify their 'wp-includes/default-filters.php' file to have the filter listed below, but for now the easiest thing for you to do is to paste the code below in to your wp-settings.php file, just above the first reference to "WP_CONTENT_URL" (which is line 390 in WP ver 2.9).

    Search for:

    if ( !defined('WP_CONTENT_URL') )
    	define( 'WP_CONTENT_URL', get_option('siteurl') . '/wp-content'); // full url - WP_CONTENT_DIR is defined further up

    Replace with:

    // Fix the URL root for SSL
    function fix_ssl_siteurl($url) {
    	$scheme = (is_ssl() ? 'https' : 'http');
    	if(0 === strpos($url, 'http')) {
    		if(is_ssl())
    			$url = str_replace('http://', "{$scheme}://", $url);
    	}
    
        return $url;
    }
    add_filter('option_siteurl', fix_ssl_siteurl);
    add_filter('option_home', fix_ssl_siteurl);
    
    if ( !defined('WP_CONTENT_URL') )
    	define( 'WP_CONTENT_URL', get_option('siteurl') . '/wp-content'); // full url - WP_CONTENT_DIR is defined further up

Topic Closed

This topic has been closed to new replies.

About this Topic

Tags

No tags yet.