KEMP_Filters

目次

KEMP_Filters

KEMP_Filtersとは

KEMP_Filtersは、KEMPからフィルタ機能のみを抜き出し、Smartyプラグイン化したものです。

主な機能は次の通りです。

  • 絵文字の自動変換表示(3キャリア対応)
  • カタカナや全角大文字の半角変換
  • iモード絵文字の着色
  • 画像の拡張子の自動変換
  • 入力モード設定(漢、a、1)の自動変換

ダウンロード

ダウンロードはこちらからどうぞ → KEMP/ダウンロード

使い方

  1. Smartyのpluginsフォルダに各プラグインファイルをコピーします。

  2. PHPプログラム内から利用設定を行います。
// KEMP_Filtersプラグインの読み込み
$smarty->load_filter('pre', 'emojiDecordFilter');
$smarty->load_filter('pre', 'encodingToEucjpFilter');
$smarty->load_filter('post', 'encodingToSjisFilter');
$smarty->load_filter('output', 'kanaFilter');
$smarty->load_filter('output', 'emojiVodaFilter');
$smarty->load_filter('output', 'emojiColorFilter');
$smarty->load_filter('output', 'imagefileExtFilter');
$smarty->load_filter('output', 'htmlIstyleFilter');
$smarty->load_filter('output', 'emojiEncordFilter');
$smarty->load_filter('output', 'htmlFormToBrFilter');

または、こうでも構いません。

// KEMP_Filtersプラグインの読み込み
$smarty->autoload_filters = array(
	'pre' => array('emojiDecordFilter', 'encodingToEucjpFilter'), 
	'post' => array('encodingToSjisFilter'), 
	'output' => array('kanaFilter', 'emojiVodaFilter', 'emojiColorFilter', 
	'imagefileExtFilter', 'htmlIstyleFilter', 'emojiEncordFilter', 'htmlFormToBrFilter')
);

※必要のないフィルタはコメントアウトしてください
※フィルタの登録順は変更しないでください

各フィルタの機能

  • emojiDecordFilter
    iモード絵文字をSJIS形式から文字参照(Unicode)方式に変換します。
    半角変換時に絵文字が文字化けしてしまうことを防ぎます。

  • encodingToEucjpFilter
    SmartyでSJISを問題なく動作させるためテンプレートをEUC-JPに変換します。

  • encodingToSjisFilter
    SmartyでSJISを問題なく動作させるためEUC-JPに変換されたテンプレートをSJISに戻します。

  • kanaFilter
    カタカナや全角大文字を半角に変換します。

  • emojiVodaFilter
    iモード絵文字をVodafone対応絵文字に変換します。

  • emojiColorFilter
    iモード絵文字に色をつけます。

  • imagefileExtFilter
    画像の拡張子を変換します。
    ドコモの場合「.png」→「.gif」、ドコモJPEG非対応端末の場合「.jpg」→「.gif」、Voda3G未満の場合「.gif」→「.png」
    同名拡張子違いの画像を置いておくことで画像ファイルが表示できない状態を避けることができます。

  • htmlIstyleFilter
    J-PhoneC型端末の場合、istyleをmodeに変換します。

  • emojiEncordFilter
    iモード絵文字を文字参照(Unicode)方式からSJIS形式に変換します。
    iモード対応HTML4.0未満の機種ではUnicode形式の絵文字は表示できませんのでこのフィルタが必要になります。

  • htmlFormToBrFilter
    EZWebの場合、</form>を<br></form>に変換します。

Smartyをお使いではない方へ

素のPHPをテンプレートとして使っているなどの理由で、Smartyをお使いではない方でも、次の方法でKEMP_Filtersを使うことができます。

  1. 利用するフィルタPHPをrequireする。
  2. プログラムの終わりで「ob_get_contents」や「ob_get_clean」を用いて出力バッファを取得し、各フィルタのfunctionを適用する。
  3. その内容を出力。

FAQ

Q.半角フィルタのせいで、フォームからユーザが入力した値も半角になってしまいます。
A.入力ページだけ半角フィルタを無効にすると良いと思います。
 例:$smarty->unregister_outputfilter('kanaFilter');

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Sun, 15 Oct 2006 14:21:26 JST (5525d)