jpmobileを使って携帯絵文字をPCで表示したり編集したり。

Jpmobile

JpmobileではControllerにmobile_filterを指定することで DoCoMo、Au、SoftBankの絵文字を透過的に扱うことができる。

jpmobileでは携帯間の絵文字変換は対応されているのですが、PCについては含まれていません。
そこでどうしようかとうろついていたら、PCで絵文字を表示するフィルタを書かれている方がいました。

携帯絵文字をPCで表示するためのフィルタをつくってみた – みじんこ日記

しかしながら、現在のところPCでのアクセスのためのフィルタは用意されてなく、PCで閲覧した場合何も表示されないか、ブラウザによっては文字化けします。
そこで、このプラグインの出番です。(いいすぎだったらごめんなさい)

さっそく使わせていただきPCでも絵文字を見られるようになったのですが、編集には対応されていなかったようなので、inputかtextareaの中の絵文字は専用タグに変換するように書き換えてみました。(ソースは下方参照のこと)
text_fieldやtext_areaを使ったときには絵文字(たとえば「晴れ」)は[emo:58942]のように表示されます。
思いっきり数字な件についてはこれ用の入力パネルを作ったらいいかなーと。そう、mixiみたいに。
ただ、mizincogrammerさんも重いとおっしゃっているところに重ねているので、きっとさらに重いです。
ベストはtext_fieldやtext_areaの中だと思うのですが、ソースを読んだらうまくねじ込めそうなところがなかったので、こうしました。(rails:freeze:gemsして書き換えてしまえばいいんですがっっ。)

actionpack-2.1.2/lib/action_view/helpers/form_helper.rb

527       def to_input_field_tag(field_type, options = {})
528         options = options.stringify_keys
529         options["size"] = options["maxlength"] || DEFAULT_FIELD_OPTIONS["size"] unless options.key?("size")
530         options = DEFAULT_FIELD_OPTIONS.merge(options)
531         if field_type == "hidden"
532           options.delete("size")
533         end
534         options["type"] = field_type
535         options["value"] ||= value_before_type_cast(object) unless field_type == "file"
536         options["value"] &&= html_escape(options["value"])
537         add_default_name_and_id(options)
※ここでやりたかった
538         tag("input", options)
539       end


ということで、ソースです。

コメント

  1. mizincogrammer より:

    おくればせながら、こちらのパッチを取り込ませて頂きました。(こちらの方で、mixi的な絵文字入力が必要になったので・・・)
    ありがとうございました。おかげで無事目的の機能は実装できました。

    酷いコードでお恥ずかしい限りです。

  2. yoshuki より:

    おぉ、ありがとうございます。
    こちらこそ、お世話になりましたです。

タイトルとURLをコピーしました