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]--> '; } }