Example #1
0
    public static function main_script()
    {
        echo '
<!-- Easy FancyBox ' . EASY_FANCYBOX_VERSION . ' using FancyBox ' . FANCYBOX_VERSION . ' - RavanH (http://status301.net/wordpress-plugins/easy-fancybox/) -->';
        // check for any enabled sections
        //if(!empty(self::$options['Global']['options']['Enable']['options']))
        foreach (self::$options['Global']['options']['Enable']['options'] as $value) {
            // anything enabled?
            if (isset($value['id']) && '1' == get_option($value['id'], $value['default'])) {
                self::$add_scripts = true;
                break;
            }
        }
        // and abort when none are active
        if (!self::$add_scripts) {
            echo '
<!-- Nothing enabled under Settings > Media > FancyBox. -->

	';
            return;
        }
        // begin output FancyBox settings
        echo '
<script type="text/javascript">
/* <![CDATA[ */
var fb_timeout = null;';
        /*
         * Global settings routine
         */
        $more = 0;
        echo '
var fb_opts = {';
        foreach (self::$options['Global']['options'] as $globals) {
            foreach ($globals['options'] as $_key => $_value) {
                if (isset($_value['id'])) {
                    if (isset($_value['default'])) {
                        $parm = get_option($_value['id'], $_value['default']);
                    } else {
                        $parm = get_option($_value['id']);
                    }
                } elseif (isset($_value['default'])) {
                    $parm = $_value['default'];
                } else {
                    $parm = '';
                }
                if (isset($_value['input']) && 'checkbox' == $_value['input']) {
                    $parm = '1' == $parm ? 'true' : 'false';
                }
                if (!isset($_value['hide']) && $parm != '') {
                    $quote = is_numeric($parm) || isset($_value['noquotes']) && $_value['noquotes'] == true ? '' : '\'';
                    if ($more > 0) {
                        echo ',';
                    }
                    echo ' \'' . $_key . '\' : ';
                    echo $quote . $parm . $quote;
                    $more++;
                } else {
                    ${$_key} = $parm;
                }
            }
        }
        echo ' };
var easy_fancybox_handler = function(){';
        foreach (self::$options as $key => $value) {
            // check if not enabled or hide=true then skip
            if (isset($value['hide']) || !get_option(self::$options['Global']['options']['Enable']['options'][$key]['id'], self::$options['Global']['options']['Enable']['options'][$key]['default'])) {
                continue;
            }
            echo '
	/* ' . $key . ' */';
            /*
             * Auto-detection routines (2x)
             */
            $autoAttribute = isset($value['options']['autoAttribute']) ? get_option($value['options']['autoAttribute']['id'], $value['options']['autoAttribute']['default']) : "";
            // update from previous version:
            if ($attributeLimit == '.not(\':empty\')') {
                $attributeLimit = ':not(:empty)';
            } elseif ($attributeLimit == '.has(\'img\')') {
                $attributeLimit = ':has(img)';
            }
            if (!empty($autoAttribute)) {
                if (is_numeric($autoAttribute)) {
                    echo '
	jQuery(\'a[' . $value['options']['autoAttribute']['selector'] . ']:not(.nofancybox)' . $attributeLimit . ', area[' . $value['options']['autoAttribute']['selector'] . ']:not(.nofancybox)' . $attributeLimit . '\')';
                    //if ( isset($value['options']['autoAttribute']['href-replace']) )
                    //	echo '.attr(\'href\', function(index, attr){'.$value['options']['autoAttribute']['href-replace'].'})';
                    echo '.addClass(\'' . $value['options']['class']['default'] . '\');';
                } else {
                    // set selectors
                    $file_types = array_filter(explode(' ', str_replace(',', ' ', $autoAttribute)));
                    $more = 0;
                    echo '
	var fb_' . $key . '_select = \'';
                    foreach ($file_types as $type) {
                        if ($type == "jpg" || $type == "jpeg" || $type == "png" || $type == "gif") {
                            $type = '.' . $type;
                        }
                        if ($more > 0) {
                            echo ', ';
                        }
                        echo 'a[' . $value['options']['autoAttribute']['selector'] . '"' . $type . '"]:not(.nofancybox,.pin-it-button)' . $attributeLimit . ', area[' . $value['options']['autoAttribute']['selector'] . '"' . $type . '"]:not(.nofancybox)' . $attributeLimit;
                        $more++;
                    }
                    echo '\';';
                    // class and rel depending on settings
                    if ('1' == get_option($value['options']['autoAttributeLimit']['id'], $value['options']['autoAttributeLimit']['default'])) {
                        // add class
                        echo '
	var fb_' . $key . '_sections = jQuery(\'' . get_option($value['options']['autoSelector']['id'], $value['options']['autoSelector']['default']) . '\');
	fb_' . $key . '_sections.each(function() { jQuery(this).find(fb_' . $key . '_select).addClass(\'' . $value['options']['class']['default'] . '\')';
                        // and set rel
                        switch (get_option($value['options']['autoGallery']['id'], $value['options']['autoGallery']['default'])) {
                            case '':
                            default:
                                echo '; });';
                                break;
                            case '1':
                                echo '.attr(\'rel\', \'gallery-\' + fb_' . $key . '_sections.index(this)); });';
                                break;
                            case '2':
                                echo '.attr(\'rel\', \'gallery\'); });';
                        }
                    } else {
                        // add class
                        echo '
	jQuery(fb_' . $key . '_select).addClass(\'' . $value['options']['class']['default'] . '\')';
                        // set rel
                        switch (get_option($value['options']['autoGallery']['id'], $value['options']['autoGallery']['default'])) {
                            case '':
                            default:
                                echo ';';
                                break;
                            case '1':
                                echo ';
	var fb_' . $key . '_sections = jQuery(\'' . get_option($value['options']['autoSelector']['id'], $value['options']['autoSelector']['default']) . '\');
	fb_' . $key . '_sections.each(function() { jQuery(this).find(fb_' . $key . '_select).attr(\'rel\', \'gallery-\' + fb_' . $key . '_sections.index(this)); });';
                                break;
                            case '2':
                                echo '.attr(\'rel\', \'gallery\');';
                        }
                    }
                }
            }
            $autoAttributeAlt = isset($value['options']['autoAttributeAlt']) ? get_option($value['options']['autoAttributeAlt']['id'], $value['options']['autoAttributeAlt']['default']) : "";
            if (!empty($autoAttributeAlt) && is_numeric($autoAttributeAlt)) {
                echo '
	jQuery(\'a[' . $value['options']['autoAttributeAlt']['selector'] . ']:not(.nofancybox)' . $attributeLimit . ', area[' . $value['options']['autoAttributeAlt']['selector'] . ']:not(.nofancybox)' . $attributeLimit . '\')';
                //if (!empty($value['options']['autoAttributeAlt']['href-replace']))
                //	echo '.attr(\'href\', function(index, attr){'.$value['options']['autoAttributeAlt']['href-replace']. '})';
                echo '.addClass(\'' . $value['options']['class']['default'] . '\');';
            }
            /*
             * Generate .fancybox() bind
             */
            $trigger = '';
            if ($key == $autoClick) {
                $trigger = '.filter(\':first\').trigger(\'click\')';
            }
            echo '
	jQuery(\'' . $value['options']['tag']['default'] . '\')';
            // use each() to allow different metadata values per instance; fix by Elron. Thanks!
            if ('1' == get_option(self::$options['Global']['options']['Links']['options']['metaData']['id'], self::$options['Global']['options']['Links']['options']['metaData']['default'])) {
                echo '.each(function() { jQuery(this)';
            }
            echo '.fancybox( jQuery.extend({}, fb_opts, {';
            $more = 0;
            foreach ($value['options'] as $_key => $_value) {
                if (isset($_value['id']) || isset($_value['default'])) {
                    $parm = isset($_value['id']) ? get_option($_value['id'], $_value['default']) : $_value['default'];
                } else {
                    $parm = '';
                }
                if (isset($_value['input']) && 'checkbox' == $_value['input']) {
                    $parm = '1' == $parm ? 'true' : 'false';
                }
                if (!isset($_value['hide']) && $parm != '') {
                    $quote = is_numeric($parm) || isset($_value['noquotes']) && $_value['noquotes'] == true ? '' : '\'';
                    if ($more > 0) {
                        echo ',';
                    }
                    echo ' \'' . $_key . '\' : ';
                    echo $quote . $parm . $quote;
                    $more++;
                }
            }
            echo ' }) ';
            // use each() to allow different metadata values per instance; fix by Elron. Thanks!
            if ('1' == get_option(self::$options['Global']['options']['Links']['options']['metaData']['id'], self::$options['Global']['options']['Links']['options']['metaData']['default'])) {
                echo ');} ';
            }
            echo ')' . $trigger . ';';
        }
        switch ($autoClick) {
            case '':
            default:
                break;
            case '1':
                echo '
	/* Auto-click */ 
	jQuery(\'#fancybox-auto\').trigger(\'click\');';
                break;
            case '99':
                echo '
	/* Auto-load */ 
	jQuery(\'a[class*="fancybox"]\').filter(\':first\').trigger(\'click\');';
                break;
        }
        echo '
}
/* ]]> */
</script>
';
        // customized styles
        $styles = '';
        if (isset($overlaySpotlight) && 'true' == $overlaySpotlight) {
            $styles .= '
#fancybox-overlay{background-attachment:fixed;background-image:url("' . EASY_FANCYBOX_PLUGINURL . 'light-mask.png");background-position:center;background-repeat:no-repeat;background-size:cover;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'light-mask.png",sizingMethod="scale");-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' . EASY_FANCYBOX_PLUGINURL . 'light-mask.png\',sizingMethod=\'scale\')";}';
        }
        if (isset($borderRadius) && !empty($borderRadius)) {
            $styles .= '
#fancybox-bg-n,#fancybox-bg-ne,#fancybox-bg-e,#fancybox-bg-se,#fancybox-bg-s,#fancybox-bg-sw,#fancybox-bg-w,#fancybox-bg-nw{background-image:none}#fancybox-outer,#fancybox-content{border-radius:' . $borderRadius . 'px}#fancybox-outer{-moz-box-shadow:0 0 12px #1111;-webkit-box-shadow:0 0 12px #111;box-shadow:0 0 12px #111}.fancybox-title-inside{padding-top:' . $borderRadius . 'px;margin-top:-' . $borderRadius . 'px !important;border-radius: 0 0 ' . $borderRadius . 'px ' . $borderRadius . 'px}';
        }
        if (isset($backgroundColor) && '' != $backgroundColor) {
            $styles .= '
#fancybox-content{background-color:' . $backgroundColor . '}';
        }
        if (isset($paddingColor) && '' != $paddingColor) {
            $styles .= '
#fancybox-content{border-color:' . $paddingColor . '}#fancybox-outer{background-color:' . $paddingColor . '}';
        }
        //.fancybox-title-inside{background-color:'.$paddingColor.';margin-left:0 !important;margin-right:0 !important;width:100% !important;}
        if (isset($textColor) && '' != $textColor) {
            $styles .= '
#fancybox-content{color:' . $textColor . '}';
        }
        if (isset($titleColor) && '' != $titleColor) {
            $styles .= '
#fancybox-title,#fancybox-title-float-main{color:' . $titleColor . '}';
        }
        if (!empty($styles)) {
            echo '
<style type="text/css">' . $styles . '
</style>
';
        }
        // running our IE alphaimageloader relative path styles here
        if (isset($compatIE6) && 'true' == $compatIE6) {
            echo '
	<!--[if lt IE 8]>            
		<style type="text/css">
.fancybox-ie6 #fancybox-close{background:transparent;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_close.png",sizingMethod="scale")}
.fancybox-ie6 #fancybox-left-ico{background:transparent;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_nav_left.png",sizingMethod="scale")}
.fancybox-ie6 #fancybox-right-ico{background:transparent;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_nav_right.png",sizingMethod="scale")}
.fancybox-ie6 #fancybox-title-over{background:transparent;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_title_over.png",sizingMethod="scale");zoom:1}
.fancybox-ie6 #fancybox-title-float-left{background:transparent;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_title_left.png",sizingMethod="scale")}
.fancybox-ie6 #fancybox-title-float-main{background:transparent;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_title_main.png",sizingMethod="scale")}
.fancybox-ie6 #fancybox-title-float-right{background:transparent;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_title_right.png",sizingMethod="scale")}
.fancybox-ie6 #fancybox-bg-w,.fancybox-ie6 #fancybox-bg-e,.fancybox-ie6 #fancybox-left,.fancybox-ie6 #fancybox-right,#fancybox-hide-sel-frame{height:expression(this.parentNode.clientHeight+"px")}
#fancybox-loading.fancybox-ie6{position:absolute;margin-top:0;top:expression((-20+(document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2)+(ignoreMe=document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop))+"px")}
#fancybox-loading.fancybox-ie6 div{background:transparent;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_loading.png", sizingMethod="scale")}
.fancybox-ie #fancybox-bg-n{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_n.png",sizingMethod="scale")}
.fancybox-ie #fancybox-bg-ne{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_ne.png",sizingMethod="scale")}
.fancybox-ie #fancybox-bg-e{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_e.png",sizingMethod="scale")}
.fancybox-ie #fancybox-bg-se{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_se.png",sizingMethod="scale")}
.fancybox-ie #fancybox-bg-s{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_s.png",sizingMethod="scale")}
.fancybox-ie #fancybox-bg-sw{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_sw.png",sizingMethod="scale")}
.fancybox-ie #fancybox-bg-w{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_w.png",sizingMethod="scale")}
.fancybox-ie #fancybox-bg-nw{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_nw.png",sizingMethod="scale")}
		</style>
	<![endif]-->
';
        }
        // running our IE alphaimageloader relative path styles here
        if (isset($compatIE8) && 'true' == $compatIE8) {
            echo '
	<!--[if IE 8]>            
		<style type="text/css">
.fancybox-ie #fancybox-bg-n{-ms-filter:\'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_n.png",sizingMethod="scale")\'}
.fancybox-ie #fancybox-bg-ne{-ms-filter:\'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_ne.png",sizingMethod="scale")\'}
.fancybox-ie #fancybox-bg-e{-ms-filter:\'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_e.png",sizingMethod="scale")\'}
.fancybox-ie #fancybox-bg-se{-ms-filter:\'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_se.png",sizingMethod="scale")\'}
.fancybox-ie #fancybox-bg-s{-ms-filter:\'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_s.png",sizingMethod="scale")\'}
.fancybox-ie #fancybox-bg-sw{-ms-filter:\'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_sw.png",sizingMethod="scale")\'}
.fancybox-ie #fancybox-bg-w{-ms-filter:\'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_w.png",sizingMethod="scale")\'}
.fancybox-ie #fancybox-bg-nw{-ms-filter:\'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' . EASY_FANCYBOX_PLUGINURL . 'fancybox/fancy_shadow_nw.png",sizingMethod="scale")\'}
		</style>
	<![endif]-->
';
        }
    }