
Иногда, (в данной ситуации у меня возникла необходимость) нужно вывести картинку или любой тег в зависимости от браузера. В данный момент мне нужно было вывести в IE6 картинку без тени. Можно было именно для ослика 6 написать, но написал более расширенный сниппет, может кому пригодиться.
Допустим хотим вывести картинку logo.png, а если IE6 то logo_ie6.png.
src="/static/img/[[!browser:isequalto=`IE 6.0`:then=`logo_ie6.png`:else=`logo.png`]]"
и сам снипет browser
/* Браузер Результат полной функции Результат сокращённой функции Firefox 1.5.0.12 Firefox 1.5.0.12 Firefox 1.5.0.12 Firefox 3.0.10 Firefox 3.0.10 Firefox 3.0.10 Firefox 3.6.9 Firefox 3.6.9 Firefox 3.6.9 Firefox 4.0 Firefox 4.0 Firefox 4.0 IE 4.01 IE 4.01 MSIE 4.01 IE 5.5 IE 5.5 MSIE 5.5 IE 6.0 IE 6.0 MSIE 6.0 IE 7.0 IE 7.0 MSIE 7.0 IE 8.0 IE 8.0 MSIE 8.0 Chrome 5.0.375.127 Chrome 5.0.375.127 Chrome 5.0.375.127 Chromium 6.0.472.36 Chrome 6.0.472.36 Chrome 6.0.472.36 Chrome 7.0.517.8 Chrome 7.0.517.8 Chrome 7.0.517.8 Opera 7.03 Opera 7.03 MSIE 6.0 Opera 8.0 Opera 8.0 MSIE 6.0 Opera 8.54 Opera 8.54 Opera 8.54 Opera 9.50 Opera 9.50 Opera 9.50 Opera 10.00 Opera 10.00 Opera 10.00 Opera 10.10 Opera 10.10 Opera 10.10 Opera 10.61 Opera 10.61 Opera 10.61 Safari 3.0 Safari 3.0 Safari 3.0 Safari 4.0 Safari 4.0 Safari 4.0 Safari 5.0.1 Safari 5.0.1 Safari 5.0.1 Flock 1.2.6 Flock 1.2.6 Firefox 2.0.0.17 Epiphany 2.22 Epiphany 2.22 Firefox 2.0.0.20 Navigator 9.0.0.6 Navigator 9.0.0.6 Firefox 2.0.0.12 Netscape 8.1.3 Netscape 8.1.3 Browser based on Gecko Konqueror 4.4 Konqueror 4.4 Browser based on Gecko Galeon 2.0.4 Browser based on Gecko Browser based on Gecko Iceape 1.1.13 Browser based on Gecko Browser based on Gecko Iceweasel 3.0.4 Iceweasel 3.0.4 Browser based on Gecko SeaMonkey 1.1.14 SeaMonkey 1.1.14 Browser based on Gecko Minefield 3.7 Minefield 3.7 Browser based on Gecko Avant Browser 7.0 Avant Browser based on IE 7.0 MSIE 7.0 Camino 2.0.4 Camino 2.0.4 Firefox 3.0.19 */ function user_browser($agent) { preg_match("/(MSIE|Opera|Firefox|Chrome|Version|Opera Mini|Netscape|Konqueror|SeaMonkey|Camino|Minefield|Iceweasel|K-Meleon|Maxthon)(?:\/| )([0-9.]+)/", $agent, $browser_info); list(,$browser,$version) = $browser_info; if (preg_match("/Opera ([0-9.]+)/i", $agent, $opera)) return 'Opera '.$opera[1]; if ($browser == 'MSIE') { preg_match("/(Maxthon|Avant Browser|MyIE2)/i", $agent, $ie); if ($ie) return $ie[1].' based on IE '.$version; return 'IE '.$version; } if ($browser == 'Firefox') { preg_match("/(Flock|Navigator|Epiphany)\/([0-9.]+)/", $agent, $ff); if ($ff) return $ff[1].' '.$ff[2]; } if ($browser == 'Opera' && $version == '9.80') return 'Opera '.substr($agent,-5); if ($browser == 'Version') return 'Safari '.$version; if (!$browser && strpos($agent, 'Gecko')) return 'Browser based on Gecko'; return $browser.' '.$version; } function user_min_browser($agent) { preg_match("/(MSIE|Opera|Firefox|Chrome|Version)(?:\/| )([0-9.]+)/", $agent, $browser_info); list(,$browser,$version) = $browser_info; if ($browser == 'Opera' && $version == '9.80') return 'Opera '.substr($agent,-5); if ($browser == 'Version') return 'Safari '.$version; if (!$browser && strpos($agent, 'Gecko')) return 'Browser based on Gecko'; return $browser.' '.$version; } return user_browser($_SERVER['HTTP_USER_AGENT']);
Чтобы посмотреть как сниппет определит ваш браузер, вызовите его на странице без дополнительных параметров:
[[!browser]]
Комментариев нет