[-] FO : Fix bug #PSCFV-6595, fancybox images for IE and AlphaImageLoader

This commit is contained in:
gRoussac
2013-03-14 16:53:26 +01:00
parent da77ce1029
commit df90cab2db
3 changed files with 39 additions and 48 deletions
+14 -25
View File
@@ -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++)
+8 -6
View File
@@ -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)
+17 -17
View File
@@ -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'); }
.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'); }