私の設定が悪いのかもしれないが、movable typeを4.0にバージョンアップしたら、ブログを携帯から読み書きできるソフト「mt4i.cgi」が動かなくなってしまった(涙)
configファイルから設定を読み込んでいる部分のエラーかも、と思い、旧バージョンのconfigをコピーしてみたりしたのだけれどエラーが解消せず。
おそらく、しばらく待っていればMT4.0対応のmt4iがリリースされると思うのだけれど、出先からブログを確認したいときなど何かと不便なので、携帯対応のブログ画面をとりあえず自前で作成してみた。
一応の完成ページはこちら
作成方法に興味がある方は以下を。
- 下準備
ブログの文字コード「utf-8」を、携帯用の文字コード「Shift_JIS」に変換して出力するためには、phpのスクリプトを使うのが便利。携帯用ブログ画面をphp化するために、「さくらのレンタルサーバー」ではconfigファイルに以下を追加記述する。これで生成されるphpファイルに実行権限が与えられる(パーミッション「755」)。HTMLUmask 0022
DirUmask 0022
HTMLPerms 0777 - 携帯用トップ画面のテンプレート作成
テンプレートのデザイン画面で、新規にインデックステンプレートを作成する。名前は任意(「携帯用メイン画面」とか何とか)に付ける。
コードはこんな感じで(アバウト)。
とりあえず最近の20件のタイトルを表示して、各記事にリンクをはる仕様にしてみた。
<MTEntries lastn=20>で、最近の20件のタイトルを表示する。phpの「mb_convert_encoding関数」で文字の出力コードをシフトJISにしてある。各エントリーへのリンクは、ファイル名の名づけ規則をどのようにするかで変わってくるので、それぞれ工夫してみては。私の場合は、エントリーIDを使ったものにしてみた。
出力ファイル名は任意で。私の場合は「moblog/index.php」とした。
テンプレートを保存して再構築すると、携帯用のトップ画面が生成される。 - 携帯用個別エントリー画面のテンプレート作成
アーカイブテンプレートの新規作成で、「ブログ記事」用のテンプレートを選ぶ。
コードはこんな感じで。
エントリーの本文から改行タグ(<br />)以外のhtmlタグを除去して、シフトJISにコンバートしてある。
本文末に投稿日時、コメントとトラックバックの数が表示されるようにしてみた。アーカイブマッピングで「新しいアーカイブマッピングを作成」を選び、出力ファイル名を入力する。
私の場合は、アーカイブ・フォルダの下に「moblog」というフォルダを作り、そのなかに「moblog-<各エントリーの固有ID>.php」という名前でファイルを保存するようにしたいので、「moblog/moblog-<$MTEntryID$>.php」とした。テンプレートを保存してブログ記事アーカイブを再構築すると、携帯用個別画面が生成される。
- ページの確認
作成したページのURLに携帯でアクセスしてみる。
「Not Found」になる場合は、出力ファイルのパスの設定が間違っている可能性があるので、よく確認すること。
phpのエラーが出力される場合は、タイトルや本文中にうまく変換できない文字やhtmlタグが含まれている可能性があるので、よく調べること。
私の場合、本文中にダブルクォート(“)が含まれているとエラーが起きたので、$stringの囲みをシングルクォートに変更することでエラーを回避できた。そう言えば、私の場合、ブログのタイトルが英文字なのであえて文字コード変換しなかったのだけれど、タイトルが日本語の人の場合は、<$MTBlogName$>もコンバートしてやんないとダメっすね?
今後のカスタマイズとしては、こんなことを考えてるところー
- MTPaginateを使ってページ分割することで、表示できる件数を増やす
- コメントの表示ができるようにする(投稿は、無理っぽい気がする・・・)
- 写真の縮小表示(実行済み)