ファイル名 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の種類を記述し、アンダースコアでブラウザとメジャーバージョンを記述します。
(記述は全て小文字)