The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

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

SYNOPSIS

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

DESCRIPTION

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

漢字コード変換(デフォルトShift_JIS、常にUnicode::Japaneseを使う)
ヘッダの管理
<form action=""> が空欄の場合、自分自身のCGI名を埋める
特定フォームデータを指定された種別のリンクに付与する

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

文字コード変換にEncodeを使わず、常にUnicode::Japaneseを使用。
セッション用のデータを全てのリンクに追記し、クッキーでの出力はしない。

フィルタパラメータ

charset
  $TL->setContentFilter('Tripletail::Filter::MobileHTML', charset => 'Shift_JIS');

出力文字コードを指定する。省略可能。

使用可能なコードは次の通り。 UTF-8,Shift_JIS,EUC-JP,ISO-2022-JP

デフォルトはShift_JIS。

contenttype
  $TL->setContentFilter('Tripletail::Filter::MobileHTML', contenttype => 'text/html; charset=sjis');

Content-Typeを指定する。省略可能。

デフォルトはtext/html; charset=(charasetで指定された文字コード)。

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

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

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

デフォルトは 'html'。

METHODS

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

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

  $TL->getContentFilter->setDecideLink(\&func);

リンク種別を決定する関数を設定する。 値を渡さないとデフォルトの判別処理に戻す。

関数の戻り値が1であれば、同じTLライブラリで作成された環境へのリンクとして、リンクの書き換えを行う。 関数の戻り値が0であれば、リンクの書き換えは行わない。

デフォルトの判別処理は以下の関数で行っている。

  sub defaultDecideLink {
    my (%param) = @_;

    if($param{'link'} =~ m/^https?/) {
      return 0;
    }
    elsif($param{'link'} =~ m/^javascript/i) {
      return 0;
    }
    elsif($param{'link'} =~ m/^(?:mailto|ftp):/) {
      return 0;
    }
    elsif(not length $param{'link'}) {
      return 0;
    }
    else {
      return 1;
    }
  }
setHeader
  $TL->getContentFilter->setHeader($key => $value)

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

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

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

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

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

print

Tripletail::Filter参照

SEE ALSO

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

AUTHOR INFORMATION

    Copyright 2006 YMIRLINK Inc. All Rights Reserved.

    This framework is free software; you can redistribute it and/or modify it under the same terms as Perl itself

    このフレームワークはフリーソフトウェアです。あなたは Perl と同じライセンスの 元で再配布及び変更を行うことが出来ます。

    Address bug reports and comments to: tl@tripletail.jp

    HP : http://tripletail.jp/