ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#1202 closed enhancement (fixed)

絵文字のWILLCOM対応

Reported by: kunitada Owned by: ebihara
Priority: blocker Milestone: OpenPNE2.10alpha2
Component: pne-ktai Version:
Keywords: hidden Cc:

Description (last modified by kunitada)

絵文字のWILLCOM対応。

入力・出力共にWILLCOM端末に対応する。

UserAgent判別の仕様とかも示してください。

Change History (13)

comment:1 Changed 12 years ago by kunitada

Description: modified (diff)

comment:2 Changed 12 years ago by kunitada

Description: modified (diff)

comment:3 Changed 12 years ago by ebihara

やります。

comment:4 Changed 12 years ago by ebihara

Owner: changed from nobody to ebihara
Status: newassigned

comment:5 Changed 12 years ago by ebihara

結論としては、

  • 絵文字の入力については現在の WILLCOM 端末対応済
  • 絵文字の出力については WILLCOM は非対応。キャリア判別により PC と同様の扱いになる(画像で表示される)

現状のUA判別と絵文字入出力について

OpenPNEでのキャリア判別は、主に OpenPNE_KtaiUA クラスを活用することで行われます。

au, SoftBank?, DoCoMo? の判別

webapp/modules/ktai/init.incにて、

$agent = new OpenPNE_KtaiUA();
if ($agent->is_docomo()) {
    $GLOBALS['__Framework']['carrier'] = 'i';
} elseif ($agent->is_au()) {
    $GLOBALS['__Framework']['carrier'] = 'e';
} elseif ($agent->is_vodafone()) {
    $GLOBALS['__Framework']['carrier'] = 's';
}

とグローバル変数に i,e,s のいずれかを代入しています。

emoji_escape() や _emoji_convert() では、基本的にこの $GLOBALS__Framework?carrier? の値を見て、絵文字の変換処理を行っています。

※ただし emoji_escape() においては、キャリアを見てから絵文字変換処理をしているのはSoftBankのみで、au, DoCoMoについてははじめから絵文字の変換処理をしています。

WILLCOM端末の判別

WILLCOM端末が携帯端末かどうかは、OpenPNE_KtaiUA::classify()内、

// WILLCOM / DDIPOCKET
elseif (strpos($ua, 'WILLCOM') !== false
     || strpos($ua, 'SHARP/WS') !== false
     || strpos($ua, 'DDIPOCKET') !== false) {
    $this->is_ktai = true;
}

で判別をしています。ただしこれは携帯端末かどうかの判別のみです。

他キャリアは、

// au
elseif (!strncmp($ua, 'KDDI', 4)
     || !strncasecmp($ua, 'up.browser', 10)) {
    $this->is_au = true;
    $this->is_ktai = true;
}

というように、 $this->is_au = true; などキャリア判別用の変数に true を代入しています(この値は、OpenPNE_KtaiUA->is_au() で取得することができます)が、WILLCOM端末についてはこれがありませんので、「この端末はWILLCOM端末である」ということを判別するのは現在のコードでは不可能です。

絵文字入出力のWILLCOM対応について

絵文字の入力のWILLCOM対応

先述したとおり、DoCoMo端末の絵文字入力については、キャリアを見ていません。

よってWILLCOM 端末が DoCoMo? と同様の絵文字入力のみに対応している限り、現状でも絵文字は入力できます。

絵文字の出力のWILLCOM対応

絵文字の出力時は以下のようにしてキャリア判別して変換処理を行っているため、現状での絵文字出力は(画像に頼らない限り)不可です。

switch ($GLOBALS['__Framework']['carrier']) {
case 'i':
    $carrior = 'i';
    break;
case 's':
    $carrior = 's';
    break;
case 'e':
    $carrior = 'e';
    break;
default:
    $carrior = null;
    break;
}

たとえば、以下のような対応を行うことで、WILLCOM端末への絵文字出力が可能になると思われます。

  • WILLCOM 端末を $carrior = 'i' とみなす
  • WILLCOM 端末用の変換処理や変換テーブルを作成する(ただし現状は DoCoMo? と同一)

comment:6 Changed 12 years ago by ebihara

とりあえず現状は以下の対応を行います。

  • WILLCOM端末判別用の処理を実装
  • WILLCOM端末は $GLOBALS__Framework?carrier? = w とする
  • ただし、現状は DoCoMo? 端末と同一なため、OpenPNE_EmojiDocomoクラスを使用して処理を行う

comment:7 Changed 12 years ago by ebihara

Owner: changed from ebihara to ogawa
Status: assignednew

r3993で対応しました。ご確認ください。

comment:8 Changed 12 years ago by kunitada

Milestone: OpenPNE2.10OpenPNE2.10beta1

comment:9 Changed 12 years ago by ebihara

Keywords: 確認中 added

comment:10 Changed 12 years ago by ogawa

Keywords: 確認中 removed
Owner: changed from ogawa to ebihara

comment:11 Changed 12 years ago by ogawa

Resolution: fixed
Status: newclosed

comment:12 Changed 12 years ago by ebihara

Milestone: OpenPNE2.10beta1OpenPNE2.10alpha2

alpha2リリースにつき、Milestoneを変更

comment:13 Changed 12 years ago by ogawa

Keywords: hidden added
Note: See TracTickets for help on using tickets.