PowerCMSでのマルチデバイス対応
ややこしいのでまとめた。
1)動的な環境(phpが使える場合)
■ダイナミックMTMLでテンプレートを構成し、phpによって端末分岐して、端末にあわせたテンプレートを表示する。
→ワンソースでマルチデバイスが簡単にできる。
がフロント側にPHPを動かす環境が必要。
■ブログ記事自体に各デバイス用のhtml記述をし、
ダイナミックMTMLで表示分ける。
こんな感じ。
<$MTUserAgent setvar="UA"> <mt:if name="UA" like="iPhone"> iphoneかったよ! <mt:else> iphoneはよかったほうがええよー </mt:if>
ただ、記事毎に書かないと行けないので、
ページ数が少ないときとかに限りそうです。
2)静的な環境
ちょうど案件で静的な環境条件でリクエストがあり
なんかうまいやり方探したんだけど、どうもない。
最初、各端末用のテンプレを作って端末分の記事をパブリッシュすればよいかと思ったけど、
結局の所振り分けはしないと行けないし、
mod_rewriteで振り分けるにしても、
ブログ単位、ウェブサイト単位で端末分のテンプレを出力する形になり
/website/(デフォルト) #PC /website/smp #スマホ /website/m #フィーチャーフォン /website/blogA/(デフォルト) #PC /website/blogA/smp #スマホ /website/blogA/m #フィーチャーフォン /website/blogB/(デフォルト) #PC /website/blogB/smp #スマホ /website/blogB/m #フィーチャーフォン
というように、各ウェブサイトや各ブログ配下に端末用のフォルダが作成されるので
なんだか美しくないし、いろいろと頭がこんがらがってくる。
PowerCMS側でなんかないのかと考えたけど、結局の所
プラグインもMTタグのアドオンに過ぎないし、端末毎に出し分けるにはPHPの力を借りざるをえない。
セキュリティや、サーバ環境の理由から動的なものが使えない場合はあまり良い方法はなさそうなので、
ページ数がPCよりボリュームが落ちる場合は、端末用のブログを作ってそこで
各端末毎にテンプレをこさえて、サイトルートでmod_rewriteで振り分けるのが一番良さそうです。
以上、何かうまいやり方知っている人は教えてください。