Tripletail::Filter::MobileHTML - 携帯電話向け HTML 出力用フィルタ

TABLE OF CONTENTS


NAME

Tripletail::Filter::MobileHTML - 携帯電話向け HTML 出力用フィルタ


SYNOPSIS

  $TL->setContentFilter('Tripletail::Filter::MobileHTML');
  
  $TL->print($TL->readTextFile('foo.html'));

DESCRIPTION

HTML に対して以下の処理を行う。

Tripletail::Filter::HTML との違いは以下の通り。

セッション

携帯端末ではクッキーが利用できない場合があるため、セッション情報を クッキーではなくフォームデータとして引き渡す必要がある。

TripletaiL では、Tripletail::Filter::MobileHTML フィルタを使うことで この作業を半自動化することができる。

Tripletail::Filter::MobileHTML フィルタは、出力時にリンクやフォームを チェックし、セッション情報を付与すべきリンク・フォームであれば、 自動的にパラメータを追加する。

セッション情報を付与すべきかどうかは、以下のように判断する。

セッション情報は、 http 領域用のセッション情報は "SID + セッショングループ名"、 https 領域用のセッション情報は "SIDS + セッショングループ名" という名称で保存する。

絵文字変換

USER_AGENT 文字列を元に、 DoCoMo 、 Softbank ( Vodafone 、 J-PHONE )、 AU 、 ASTEL を自動判別し、 それぞれの端末用に出力します。 文字コードは Softbank 3G 以外は Shift_JIS + 各キャリアの絵文字コード、 Softbank 3G の場合は UTF-8 + Softbank 絵文字コードとなります。

それ以外の端末( Willcom や PC )の場合は、Shift_JIS コードで出力します。

携帯から送信されたフォームデータは、 DoCoMo 、 Softbank 2G 以前( J-PHONE )、 AU 、 ASTEL の場合は Shift_JIS + 各キャリアの絵文字コード、 Softbank 3G の場合は UTF-8 + Softbank 絵文字コードとして 解析します。

それ以外の端末( Willcom や PC )の場合は、Tripletail::InputFilter::HTML と同様に CCC による文字コード判別を行います。

絵文字は、入力時に UTF-8 のプライベート領域にマップされ、出力時に絵文字に戻されます。

入力時と出力時で携帯キャリアが異なる場合は、Unicode::Japanese の絵文字変換マップに 従って変換され、出力されます。

この変換マップは、携帯キャリアが公式に提供している絵文字変換マップとは 異なる部分があります。

フィルタパラメータ

type
  $TL->setContentFilter('Tripletail::Filter::MobileHTML', type => 'xhtml');

'html' もしくは 'xhtml' を利用可能。省略可能。

フィルタが HTML を書換える際の動作を調整する為のオプション。 XHTML を出力する際に、このパラメータを html のままにした場合、 不正な XHTML が出力される事がある。

xhtmlを指定した場合、コンテントタイプは application/xhtml+xml となる.

デフォルトは 'html'。

contenttype
  $TL->setContentFilter(
    "Tripletail::Filter::MobileHTML",
    contenttype => 'text/x-hdml; charset=Shift_JIS',
    charset     => 'Shift_JIS',
  );

HDML 使用時に指定. それ以外の値の場合はフィルタが自動判定した値で上書きされる.

METHODS

getSaveForm
  my $SAVE = $TL->getContentFilter->getSaveForm;

出力フィルタが所持している保存すべきデータが入った、 Form オブジェクトを返す。

setHeader
  $TL->getContentFilter->setHeader($key => $value)

他の出力の前に実行する必要がある。

同じヘッダを既に出力しようとしていれば、そのヘッダの代わりに指定したヘッダを出力する。(上書きされる)

addHeader
  $TL->getContentFilter->addHeader($key => $value)

他の出力の前に実行する必要がある。

同じヘッダを既に出力しようとしていれば、そのヘッダに加えて指定したヘッダを出力する。(追加される)

print

Tripletail::Filter参照

reset

Tripletail::Filter参照


SEE ALSO

Tripletail
Tripletail::Filter
Tripletail::Filter::HTML
Tripletail::Form

AUTHOR INFORMATION

Tripletail::Filter::MobileHTML - 携帯電話向け HTML 出力用フィルタ

INDEX

Tripletail::Filter::MobileHTML - 携帯電話向け HTML 出力用フィルタ