MovableType で.php書き出しをしてPC/スマホ/ガラケーの出し分けをする
DynamicMTMLとか使えない・使いたくないケースで。単にPHPでUAの判別してるだけです。
ただしPHPだけではプレビューできないので、拙作のmt-plugin-httpuseragentと組み合わせてます。
案件で使ってるので問題があれば修正。
UserAgent判定PHP テンプレートモジュール
<?php
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$ua = 'pc';
$docomo = 0;
$au = 0;
$softbank = 0;
$ios = 0;
$android = 0;
$blackberry = 0;
$windowsmobile = 0;
$tablet = 0;
$smartphone = 0;
$featurephone = 0;
$generic = 0;
# http://maxfactory.biz/blog/2011/05/27/device_f/
if(preg_match("/DoCoMo/", $user_agent)){
$ua = 'docomo';
$docomo = 1;
$featurephone = 1;
}else if(preg_match("/UP\.Brower|KDDI-/", $user_agent)){
$ua = 'au';
$au = 1;
$featurephone = 1;
}else if(preg_match("/J-PHONE|Vodafone|SoftBank/", $user_agent)){
$ua = 'softbank';
$softbank = 1;
$featurephone = 1;
}else if(preg_match("/iPhone/", $user_agent)){
$ua = 'iphone';
$ios = 1;
$smartphone = 1;
}else if(preg_match("/iPad/", $user_agent)){
$ua = 'ipad';
$ios = 1;
$tablet = 1;
}else if(preg_match("/Android/", $user_agent)){
$android = 1;
if(preg_match("/Mobile/", $user_agent) && !preg_match("/SC-01C/", $user_agent)){
$ua = 'androidmobile';
$smartphone = 1;
}else{
$ua = 'androidtablet';
$tablet = 1;
}
}else if(preg_match("/BlackBerry/", $user_agent)){
$ua = 'blackberry';
$blackberry = 1;
$smartphone = 1;
}else if(preg_match("/IEMobile/", $user_agent)){
$ua = 'iemobile';
$windowsmobile = 1;
$smartphone = 1;
}else{
$generic = 1;
}
?>
利用方法(メインページ インデックステンプレート)
<mt:if name="preview_template" rtrim="1">
<mt:IfHttpUserAgent smartphone="1" rtrim="1">
<$MTInclude module="スマホ-トップページ"$>
<mt:Else>
<mt:IfHttpUserAgent featurephone="1" rtrim="1">
<$MTInclude module="携帯-トップページ"$>
<mt:Else>
<$MTInclude module="PC-トップページ"$>
</mt:IfHttpUserAgent>
</mt:IfHttpUserAgent>
<mt:else>
<$MTInclude module="UserAgent判定PHP" cache="1"$>
<?php if ($smartphone): ?>
<$MTInclude module="スマホ-トップページ"$>
<?php else: ?>
<?php if ($featurephone): ?>
<$MTInclude module="携帯-トップページ"$>
<?php else: ?>
<$MTInclude module="PC-トップページ"$>
<?php endif ?>
<?php endif ?>
</mt:if>
- スタティックパブリッシング
- 書き出し先 index.php