開発日記
携帯電話(端末)でPukiWikiを閲覧 -- ぱんだ†
参考:official:PukiWiki/ケータイでPukiWiki
PukiWiki/1.4に、携帯電話向けのコードを組み入れました。
nitoyonさんの書かれたコードを大いに参考にしています。感謝。
- pukiwiki.ini.phpを共通部と端末固有部に分離しました。
- init.php内で、HTTP_USER_AGENTの内容に応じて端末固有部を読み替える仕掛けを導入し、ひとつのスクリプトで各端末用のHTMLを出力できるようにしました。
- pukiwiki.ini.phpに以下の設定を追加しました。
/////////////////////////////////////////////////
// ユーザーエージェント対応設定
// デフォルト
$user_agent = array('name'=>'default');
$agents = array(
// 携帯端末
array('name'=>'jphone','pattern'=>'#^J-PHONE.+(Profile/)?#'),
array('name'=>'i_mode','pattern'=>'#DoCoMo/(1\.0)/[^/]+/c([0-9]+)#'),
array('name'=>'i_mode','pattern'=>'#DoCoMo/(2\.0) [^(]+\(c([0-9]+)#'),
);
- 端末固有設定ファイルを追加しました。
- default.ini.php : デフォルト設定
- i_mode.ini.php : iモード端末用設定
- jphone.ini.php : J-PHONE端末用設定
- 端末固有設定内に、「リンク表示をコンパクトにする」設定を追加しました。
/////////////////////////////////////////////////
// リンク表示をコンパクトにする
$link_compact = 0;
この設定を1にすると、make_pagelink()の出力が携帯端末用に簡略化されます。
- 携帯端末用スキンを追加しました。
- skin/keitai.skin.ja.php
- 画像は容量の予測や端末ごとの対応状況等、判別が面倒なので、前後の<div>,<a>タグもろとも削除し、alt="..."のテキストだけを抽出して表示するようにしています。
ToDo/Wish/Bugs†
- 本格的にやるならソース再構築1に倣ってconvert_html()をクラス(TranslateEngine)化し、端末ごとに用意すべき
- EZweb対応 -- 情報収集
- そもそも可能なのかどうか。HDMLってなに?HTMLと違うの?
- その他、PDAなどの固有設定があれば収集
- 端末固有設定はagent/ディレクトリに入れたほうがいい?
- pear/Net_UserAgent_Mobileはどうか?
- textareaを二つ使用する関係で、ページテキストの容量が端末容量の半分以下でないとうまく編集できない
- タグの途中で切れるのは何とかしないと。
- accesskeyでページ先頭/末尾へジャンプするようにできないか
- <h1~h3>のところの<a>タグにaccesskeyを設定すればとりあえず先頭へは移動できますが。末尾に飛ぶのも必要かなぁ。
- タイトル表示/PukiWikiのバージョン/コピーライト表記
- バージョンは"PukiWiki/1.4"とだけ表示してコピーライト表示プラグイン(作る)へリンクを張る?