diff --git a/classes/Media.php b/classes/Media.php index 04697ee85..219eed531 100755 --- a/classes/Media.php +++ b/classes/Media.php @@ -150,37 +150,26 @@ class MediaCore } public static function minifyCSS($css_content, $fileuri = false, &$import_url = array()) - { + { global $current_css_file; $current_css_file = $fileuri; if (strlen($css_content) > 0) { - $css_content = preg_replace('#/\*.*?\*/#s', '', $css_content, Media::getBackTrackLimit()); - $css_content = preg_replace_callback('#url\((?!data:)(?:\'|")?([^\)\'"]*)(?:\'|")?\)#s', array('Tools', 'replaceByAbsoluteURL'), $css_content, Media::getBackTrackLimit()); - - $css_content = preg_replace('#\s+#', ' ', $css_content, Media::getBackTrackLimit()); - $css_content = str_replace("\t", '', $css_content); - $css_content = str_replace("\n", '', $css_content); - //$css_content = str_replace('}', "}\n", $css_content); - - $css_content = str_replace('; ', ';', $css_content); - $css_content = str_replace(': ', ':', $css_content); - $css_content = str_replace(' {', '{', $css_content); - $css_content = str_replace('{ ', '{', $css_content); + $limit = Media::getBackTrackLimit(); + $css_content = preg_replace('#/\*.*?\*/#s', '', $css_content, $limit); + $css_content = preg_replace_callback('#(url\((?!data:)(?:\'|")?)([^\)\'"]*(?:\'|")?\))#s', array('Tools', 'replaceByAbsoluteURL'), $css_content, $limit); + $css_content = preg_replace('#\s+#', ' ', $css_content, $limit); + $css_content = str_replace(array("\t", "\n", "\r"), '', $css_content); + $css_content = str_replace(array('; ', ': '), array(';', ':'), $css_content); + $css_content = str_replace(array(' {', '{ '), '{', $css_content); $css_content = str_replace(', ', ',', $css_content); - $css_content = str_replace('} ', '}', $css_content); - $css_content = str_replace(' }', '}', $css_content); - $css_content = str_replace(';}', '}', $css_content); - $css_content = str_replace(':0px', ':0', $css_content); - $css_content = str_replace(' 0px', ' 0', $css_content); - $css_content = str_replace(':0em', ':0', $css_content); - $css_content = str_replace(' 0em', ' 0', $css_content); - $css_content = str_replace(':0pt', ':0', $css_content); - $css_content = str_replace(' 0pt', ' 0', $css_content); - $css_content = str_replace(':0%', ':0', $css_content); - $css_content = str_replace(' 0%', ' 0', $css_content); - + $css_content = str_replace(array('} ', ' }', ';}'), '}', $css_content); + $css_content = str_replace(array(':0px', ':0em', ':0pt', ':0%'), ':0', $css_content); + $css_content = str_replace(array(' 0px', ' 0em', ' 0pt', ' 0%'), ' 0', $css_content); + $css_content = str_replace('\'images_ie/', '\'images/', $css_content); + $css_content = preg_replace_callback('#(AlphaImageLoader\(src=\')([^\']*\',)#s', array('Tools', 'replaceByAbsoluteURL'), $css_content); + // Store all import url preg_match_all('#@import .*?;#i', $css_content, $m); for ($i = 0, $total = count($m[0]); $i < $total; $i++) diff --git a/classes/Tools.php b/classes/Tools.php index 151c62adb..eb4b6e73f 100644 --- a/classes/Tools.php +++ b/classes/Tools.php @@ -1418,13 +1418,11 @@ class ToolsCore public static function replaceByAbsoluteURL($matches) { global $current_css_file; - $protocol_link = Tools::getCurrentUrlProtocolPrefix(); - - if (array_key_exists(1, $matches)) + if (array_key_exists(1, $matches) && array_key_exists(2, $matches)) { - $tmp = dirname($current_css_file).'/'.$matches[1]; - return 'url(\''.$protocol_link.Tools::getMediaServer($tmp).$tmp.'\')'; + $tmp = dirname($current_css_file).'/'.$matches[2]; + return $matches[1].$protocol_link.Tools::getMediaServer($tmp).$tmp; } return false; } @@ -1621,7 +1619,7 @@ class ToolsCore fwrite($write_fd, $media_domains); fwrite($write_fd, $domain_rewrite_cond); fwrite($write_fd, 'RewriteRule ^'.ltrim($uri['virtual'], '/').'(.*) '.$uri['physical']."$1 [L]\n\n"); - } + } if ($rewrite_settings) { @@ -1658,6 +1656,10 @@ class ToolsCore fwrite($write_fd, $domain_rewrite_cond); fwrite($write_fd, 'RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]'."\n"); } + + fwrite($write_fd, "# AlphaImageLoader for IE and fancybox\n"); + fwrite($write_fd, $domain_rewrite_cond); + fwrite($write_fd, 'RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]'."\n"); } // Redirections to dispatcher if ($rewrite_settings) diff --git a/js/jquery/plugins/fancybox/jquery.fancybox.css b/js/jquery/plugins/fancybox/jquery.fancybox.css index 869f2639b..5f7f02b92 100755 --- a/js/jquery/plugins/fancybox/jquery.fancybox.css +++ b/js/jquery/plugins/fancybox/jquery.fancybox.css @@ -342,16 +342,16 @@ } /* IE6 */ +/* PrestaShop - replace images by images_ie */ +.fancybox-ie6 #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_close.png', sizingMethod='scale'); } -.fancybox-ie6 #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_close.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_nav_left.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_nav_right.png', sizingMethod='scale'); } -.fancybox-ie6 #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_nav_left.png', sizingMethod='scale'); } -.fancybox-ie6 #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_nav_right.png', sizingMethod='scale'); } - -.fancybox-ie6 #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_title_over.png', sizingMethod='scale'); zoom: 1; } -.fancybox-ie6 #fancybox-title-float-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_title_left.png', sizingMethod='scale'); } -.fancybox-ie6 #fancybox-title-float-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_title_main.png', sizingMethod='scale'); } -.fancybox-ie6 #fancybox-title-float-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_title_right.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_title_over.png', sizingMethod='scale'); zoom: 1; } +.fancybox-ie6 #fancybox-title-float-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_title_left.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-title-float-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_title_main.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-title-float-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/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"); @@ -362,17 +362,17 @@ 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='images/fancy_loading.png', sizingMethod='scale'); } +#fancybox-loading.fancybox-ie6 div { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_loading.png', sizingMethod='scale'); } /* IE6, IE7, IE8 */ .fancybox-ie .fancybox-bg { background: transparent !important; } -.fancybox-ie #fancybox-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_shadow_n.png', sizingMethod='scale'); } -.fancybox-ie #fancybox-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_shadow_ne.png', sizingMethod='scale'); } -.fancybox-ie #fancybox-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_shadow_e.png', sizingMethod='scale'); } -.fancybox-ie #fancybox-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_shadow_se.png', sizingMethod='scale'); } -.fancybox-ie #fancybox-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_shadow_s.png', sizingMethod='scale'); } -.fancybox-ie #fancybox-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_shadow_sw.png', sizingMethod='scale'); } -.fancybox-ie #fancybox-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_shadow_w.png', sizingMethod='scale'); } -.fancybox-ie #fancybox-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/fancy_shadow_nw.png', sizingMethod='scale'); } \ No newline at end of file +.fancybox-ie #fancybox-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_shadow_n.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_shadow_ne.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_shadow_e.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_shadow_se.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_shadow_s.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_shadow_sw.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_shadow_w.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images_ie/fancy_shadow_nw.png', sizingMethod='scale'); } \ No newline at end of file