H"PhoneでtDiary

H"PhoneからtDiaryを使うと絵日記プラグインの画像uploadフォームが表示されない。調べてみると、tdiary.rbの中で、

class CGI
:
:
def mobile_agent?
self.user_agent =~ %r[(DoCoMo|J-PHONE|UP\.Browser|DDIPOCKET|ASTEL|PDXGW|Palmscape|Xiino|sharp pda browser|Windows CE|L-mode)]i
end
end

CGIクラスを拡張してmobile_agent?メソッドを追加している。H"PhoneのUSER_AGENTは、

Mozilla/3.0(DDIPOCKET;KYOCERA/AH-K3001V/1.5.2.68.000000/0.1/C100) Opera 7.0

となってるので、"DDIPOCKET"に該当しているのだろう。このメソッドの返す値で処理を分けているが、更新画面を出力するupdate.rbでは

:
if @cgi.mobile_agent? then
body = conf.to_mobile( tdiary.eval_rhtml( 'i.' ) )
head = @cgi.header(
:

として、eval_rhtml()に'i.'を渡している。これによって、mobile_agentの場合は、skel/update.rhtmlの代わりにskel/i.update.rhtmlが使われる。このupdate.rhtmlがuploadフォームを表示するform_proc()を呼んでいるが、i.update.rhtmlでは省略されている。で、次のようにi.update.rhtmlを変更。

--- i.update.rhtml.org  Thu Oct 23 23:12:52 2003
+++ i.update.rhtml      Mon Apr 11 14:29:26 2005
@@ -36,4 +36,5 @@
end %>
<% if idx > 0 then %>&lt;P&gt;<INPUT TYPE="SUBMIT" NAME="comment" VALUE="ツッコミ表示状態変更"></P><% end %>
</FORM>
+<%%=form_proc( @date )%>
&lt;HR&gt;

これで、H"Phoneからも絵日記プラグインが使えるようになった。早速、神戸で撮った写真をuploadしてみる。問題無く使えるが、やはりQVGAの画面では編集が辛い。