ファイル名 modifier.is_ua_with_osmb.php で下記コードを保存し Smartyの plugin フォルダに入れます。
<?php
// Version 1.2
function smarty_modifier_is_ua_with_osmb($arg,$debug=false){
$useos; $browser; $os_browser;
if ( preg_match('/Mac/',$_SERVER['HTTP_USER_AGENT']) ){ $useos='mac'; }
elseif ( preg_match('/Win/',$_SERVER['HTTP_USER_AGENT']) ){ $useos='win'; }
else { $useos = 'other'; }
if ( preg_match('/Opera/',$_SERVER['HTTP_USER_AGENT']) && preg_match('/Version\/([0-9]+)/',$_SERVER['HTTP_USER_AGENT'], $r) ){ $browser = 'opera'.$r[1]; }
elseif ( preg_match('/MSIE ([0-9])+/',$_SERVER['HTTP_USER_AGENT'], $r) ){ $browser = 'ie'.$r[1]; }
elseif ( preg_match('/Safari/',$_SERVER['HTTP_USER_AGENT']) && preg_match('/Version\/([0-9]+)/',$_SERVER['HTTP_USER_AGENT'], $r) ){ $browser = 'safari'.$r[1]; }
elseif ( preg_match('/Chrome\/([0-9]+)/',$_SERVER['HTTP_USER_AGENT'],$r) ){ $browser = 'chrome'.$r[1]; }
elseif ( preg_match('/Firefox\/([0-9]+)/',$_SERVER['HTTP_USER_AGENT'], $r) ){ $browser = 'firefox'.$r[1]; }
elseif ( preg_match('/Gecko/',$_SERVER['HTTP_USER_AGENT']) ){ $browser = 'gecko'; }
else{ $browser = $_SERVER['HTTP_USER_AGENT']; }
$os_browser = $useos.'_'.$browser;
if ($debug){
return "{$os_browser} : {$_SERVER['HTTP_USER_AGENT']}";
}
else{
if ( strcmp($arg, $os_browser)==0 ){ return true; }
else{ return false; }
}
}
?>
■ 使い方
// デバッグモード
{ ""|is_ua_with_osmb:debug }
// 例
{ if "mac_safari4"|is_ua_with_osmb }このブラウザは mac版safari4です
{ elseif "win_ie8"|is_ua_with_osmb }このブラウザは win版IE8です
{ elseif "win_firefox3"|is_ua_with_osmb }このブラウザは win版firefox3です
{ else }それ以外のブラウザです
{ /if }
まず先頭に OSの種類を記述し、アンダースコアでブラウザとメジャーバージョンを記述します。
(記述は全て小文字)