今回は、サイトにアクセスしてきたユーザーエージェントによって条件分岐する MTIfUserAgent タグと、ユーザーエージェントの情報を出力する MTUserAgent タグを紹介します。...
今回は、サイトにアクセスしてきたユーザーエージェントによって条件分岐する MTIfUserAgent タグと、ユーザーエージェントの情報を出力する MTUserAgent タグを紹介します。
MTIfUserAgent タグは、wants モディファイア、like モディファイアを指定して、ページにアクセスしてきたユーザーエージェント情報によって分岐するブロックタグです。
wants モディファイアには、Smartphone、Keitai、Tablet のいずれかを指定します。小文字でも大丈夫です。
Smartphone を指定した場合は、Android、BlackBerry、iPhone(iPod touch)、iPad、Palm、Opera Mini、Windows Phone の場合にブロックタグの中身が実行されます。
Keitai を指定した場合は、DoCoMo、AU、SoftBank の場合にブロックタグの中身が実行されます。
Tablet を指定した場合は、iPad またはユーザーエージェントに Mobile の文字を含まない smartphone の場合にブロックタグの中身が実行されます。なお、wants="Smartphone" exclude="Tablet" としていしても、wants="Tablet " と同様に扱いになります。
like モディファイアには、任意の文字列を指定します。その文字列が、HTTP_USER_AGENT に含まれている場合にブロックタグの中身が実行されます。wants モディファイアよりも先に評価されます。
例えば、次のようにした場合、IE6 が該当します(他にも該当しますが)。
<mt:IfUserAgent like="MEIE 6.0"> </mt:IfUserAgent>
MTUserAgent タグは、ユーザーエージェントを判別する文字列を出力します。
raw モディファイアを指定(raw="1")するとユーザーエージェントの情報(HTTP_USER_AGENT情報)をそのまま出力します。サンプルページを用意したので確認してみてください。
MTIfUserAgent タグと同様、wants モディファイアと like モディファイアも指定できます。
例えば、wants モディファイアに smartphone を指定した場合、Android、BlackBerry、iPhone(iPod touch)、iPad、Palm、Opera Mini、Windows Phone からのアクセスのときに 1 が出力されます。
このように、MTUserAgent タグと MTIfUserAgent タグは、内部では同じ関数($app->get_agent())が呼ばれています。つまり、MTIfUserAgent タグの説明で、ブロックタグの中身が実行されるパターンのときは、MTUserAgent タグは 1 を出力するということになります。
したがって、MTIfUserAgent の条件分岐を明示的に出力することができるので、テンプレート構築中のデバッグにも使えるかもしれません。
また、wants="agent" を指定した場合は、iPhone や PC といったユーザーエージェント名を出力します。
以上です。