このサイト うっかり携帯で見ると
文字化けやらファイルサイズやら壮絶なことになっていたので、
携帯対応するようにカスタマイズ中です →翌朝追記:いちおう終わりました
↑カスタムに使うツールをダウンロード中。リンコは送らないよ。
以下、使ったプラグインや参考になった本など書いておきます
- 携帯からのエントリ投稿やコメント送信は考慮してません。あくまで「読む」ところまで。
MTは、CMS(べんり更新ツール)としてしか 使ったことないので、ここが限界っす; - 自己流無責任でやった記録です。話半分で、ヌル~くご参考いただければ幸い。
- HTMLとかCSSとか、MTのテンプレートとかをいじれる(わかる)方向けです。
ごめんちゃい。 - 結局、自分のau携帯でしか表示確認できてません
- 2009年6月現在、MT4.21での情報です(…アップグレード忘れてた!)
【6月18日追記】
さすがにアップグレードしました。後述の数点以外、とくに問題無さげです
(全面的に)参考にした記事
Movabletypeで携帯サイト作成
こちらの解説をベースに、バージョンアップでリンク切れてたプラグインを補遺したり
個人的に「これも必要やん」と思うプラグインを足したりしたのが、下記です
新しくテンプレートを、たとえば
「携帯用インデックス」と「携帯用個別エントリ」のように作っておいて、
トップページで携帯かPCか判別して振り分ける方法をとりました
携帯用のXHTMLを書く
参考書:『携帯サイト コーディング&デザイン』高木悠介さん著
無料と言いつつ本は買いましたw
現状がきっちりまとまってて読みやすいです。とりあえずこれ1冊でいけました
ドコモのCSSのヘコさと反比例したシェアはIE並みだ、という記述に苦笑
携帯での文字化けを直す
プラグイン:I18N Helper Plugin
MTのテンプレートは少なくとも自分ところの設定ではUnicode(UTF-8)なのですが
携帯ではShift-JISに変換してやる必要があります
テンプレの、日本語の文字が入る可能性のある箇所を
たとえば初期設定がUTF-8なら
<mtencodetext from=”utf-8″ to=”Shift_JIS”>で囲ってみてください
【6月18日追記】
全角「&」が、エスケープなしの半角「&」に変換されるぽいです。まいったな
本文中の画像を自動でリサイズする
プラグイン:ResizeImage
ありがたや…このプラグインがなければこの記事は生まれなかった!
「写真5枚も10枚も使ってネタをやる」うちのよーなサイトには必須です。大感謝。
指定した箇所(本文とか)からimgタグを自動検出してリサイズ。
元画像にリンクを貼ることもできます
自分の場合、元画像も大きいので、ソースを1行だけ書き換えさせてもらって
サムネイルクリック後は下記の画像リサイズphpを通すことにしました
Smart Image Resizer
※エラー”Call to undefined function: imageconvolution”が出るときは、
320行目あたりの”imageconvolution”周りの処理をコメントアウトしてみてください
PHPのバージョンによっては対応してない画像補正なんだそうです
変にカスタマイズしたせいか ときどき変換できてない画像があります;
【6月16日追記】何となく原因分かりました。altの中身の文字列です。
後述のプラグイン”zenkana”との相性かもしれませんが、たとえば半角のアスタリスク”*”が入ってるとドボンです
全角カナ→半角カナに変換
プラグイン:zenkana
必要に応じて。
PC用のページと携帯用のページに振り分ける
最初に挙げた書籍では .htaccessを使う方法を解説してましたが
自分とこのサイト構成の場合、ディレクトリが混在しておかしなことになったので
トップページの前にindex.phpを挟むことにしました。
【9月21日追記】これだと、みなさんが見てリンク貼ってくれるのは
「リダイレクト後のページ」になっちゃって、意味ないので変えました。
- トップページの、ソース1行目にPHPを書く
- 携帯ならリダイレクト。PCなら何もしない
- 必要に応じて、拡張子htmlでphpが動くように.htaccessに1行書いたり
XML宣言をechoで出したりする
以下ソースです
<?php $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match('{^DoCoMo/[12].0}', $agent) || preg_match('{^(J-PHONE|Vodafone|MOT-[CV]980|SoftBank)/}', $agent) || preg_match('/^KDDI-|UP.Browser/', $agent) || preg_match('{^PDXGW/|DDIPOCKET;|WILLCOM;}', $agent)){ header("Location: i/index.html"); exit(); //} else{ // header("Location: index.html"); // exit(); //090921: 上記の理由で外しました } ?>
必要な方いらっしゃるかどうか分かりませんが、
この記事のパーマリンクはこちら