SmartyでPCとスマートフォンの判定

View側、SmartyでPCやスマートフォンの判定をして処理を分けたいということが合って調べていたらSmartyでユーザーエージェントを取得してそこでブラウザ判定したらいいといことでした。

Smartyでユーザーエージェント取得は
$smarty.server.HTTP_USER_AGENT

なので取得できるのであとはブラウザ判定してということで調べていくとPHPのstrpos関数がSmartyでも使えるのでということだったのですがだめだったのでregex_replaceで正規表現で対応することに。

/*user_agent取得して小文字に変換*/
{assign var="ua" value=$smarty.server.HTTP_USER_AGENT|lower}
/*PCブラウザかそれ以外の判定*/
{if $ua|regex_replace:’/.*android.*/i’:’android' eq ‘android' || $ua|regex_replace:’/.*iphone.*/i’:’iphone' eq ‘iphone' || $ua|regex_replace:’/.*ipad.*/i’:’ipad' eq ‘ipad' || $ua|regex_replace:’/.*ipod.*/i’:’ipod' eq ‘ipod'}>
    //PC以外
{else} 
       //PC
{/if}