KEMP/マニュアル

KEMPマニュアル

目次

概要

KEMPのルールは大きくわけて4つです。

  • 1つの画面につき、1つのPHPファイル、1つのテンプレートファイルを用意する必要があります。
    PHPファイルはpublic_html以下に、テンプレートはke/tpl以下に設置します。(後述のディレクトリ構造を参照)
    その際、ファイルは拡張子を除いて同じ名前にします。
    例1: foo.php <> foo.html → 拡張子を除き同じ名前にします。大文字小文字は区別されます。
    例2: foo/bar.php <> foo/bar.html → ディレクトリがある場合は、ディレクトリ名や構成も同じにします。

  • KEMPを利用するPHPファイルを置くディレクトリには必ず「ke_path.php」がなくてはなりません。
    KEMPの位置がわからないと読み込みが行えないためです。
    位置関係は相対パスで指定しますので、置く階層の深さによって「../」の数を修正してください。
    例1: public_html/foo.phpから利用する場合 → 「public_html/ke_path.php」を用意し、define('BASEPATH', '../'); とします
    例2: public_html/foo/bar.phpから利用する場合 → 「public_html/foo/ke_path.php」を用意し、define('BASEPATH', '../'); とします

  • 各キャリア別に専用テンプレートを用意したい場合は、tpl内のキャリア別ディレクトリに格納します。
    commonは共通テンプレート置き場となっており、こちらにテンプレートを設置すると、自動で各キャリアに最適化されたHTMLが出力されます。
    共通ではなく、キャリアそれぞれにテンプレートを用意したい場合は、iXX,eXX,vXXの各ディレクトリにテンプレートを設置します。
    例: Vodafone下位端末向けにだけ専用テンプレートを用意し、その他の端末は共通テンプレートを使用したい場合
    → v01以下にVodafone下位端末向けテンプレートをfoo.htmlとして設置、common以下に共通テンプレートをfoo.htmlとして設置

  • 絵文字やタグはiモード用のものを使用します。
    commonに置く共通テンプレートは、iモード用のものを使ってください。
    絵文字はi絵文字などのツールを使って、Shift_JISコードで直接入力するか&[10進];形式で入力してください。
    またテンプレートの文字コードにはShift_JISを使用してください。

ディレクトリ・ファイル構造

ke/			// KEMP本体
    +- cache/			// キャッシュデータを格納します
        +- [キャリア別Dir]
    +- config/			// 設定ファイルを格納します
    +- data/			// 変換テーブルなどのデータファイルを格納します
    +- lib/			// KEMPプログラムソースを格納します
    +- logs/			// ログを格納します
    +- tpl/			// テンプレートを格納します
        +- [キャリア別Dir]
public_html/		// ドキュメントルート
    +- ke/			// 公開されている必要があるプログラムソースを格納します
    +- ke_path.php		// KEMP本体の位置を示すPHPファイルです
[キャリア別Dir]
    +- common/		// 共通
    +- e01/			// EZWeb(非VGA)
    +- e02/			// EZWeb(VGA)
    +- i01/			// iモード(非VGA)
    +- i02/			// iモード(VGA)
    +- v01/			// Vodafone(非VGA)
    +- v02/			// Vodafone(VGA)

※ブラウザ表示領域が横220ドット以上の場合、VGAと判断しています。

チュートリアル

既存のiモード用コンテンツを3キャリア化する方法

既存のiモード用コンテンツ(静的HTML)を、3キャリア対応に変更するのは結構大変です。
GIFが見れない機種のために変換しなくてはならなかったり、Vodafoneで絵文字が表示されないので1文字1文字置き換えていかなくてはなりません。
KEMPであれば、指定の箇所に設置するだけで、全て自動で変換表示されます。
既存コンテンツに手を加える必要はありません。

  1. KEMPをインストールする
    インストール手順を参考にKEMPのインストールを行ってください。
  2. 拡張子をセットする
    既存コンテンツHTMLの拡張子が「.htm」の場合は、「ke/config/ke_config.php」の「KE_TPL_EXT」の値を「.htm」に変更してください。
    既存HTMLの拡張子が「.html」の場合は変更の必要はありません。
  3. 既存コンテンツを設置する
    「ke/tpl/common/」以下に既存コンテンツをコピーしてください。
  4. 動作を確認する
    ケータイから
    「http://[KEMPのアドレス]/?id=[既存HTMLのトップのファイル名(拡張子を除く)]」
    にアクセスすると、自動変換されたページが表示されます。
    (例:既存コンテンツのトップページがtop.htmlの場合は「http://[KEMPのアドレス]/?id=top」)

クラスリファレンス

リファレンスはこちらをご覧ください。(phpDocmenter形式です)
http://ke-tai.org/kemp/apidoc/

フィルタ

KEMPはSmartyのフィルタ機能を利用して、出力前にケータイ向けの変換を行います。
各フィルタを実行するかどうかは設定ファイルで決められますが、文字化け回避等のため必須のフィルタもあります。
フィルタは次の順で実行されます。

  • 画像フィルタ
    表示できない画像を、対応フォーマットに変換し、imgタグのsrcを置き換えます。

  • 入力モードフィルタ
    入力モード指定(漢・a・1)の標準値指定を置き換えます。

  • 絵文字SJIS→10進フィルタ
    ShiftJIS絵文字を&[10進];形式に置き換えます。
  • 半角カナフィルタ
    全角カナを半角カナに変換します。
    変換にはmb_convert_kanaを使用しています。
    このフィルタを通すと、Shift_JIS絵文字は文字化けしてしまいますのであらかじめ他の絵文字形式へのエスケープが必要です。

  • Vodafone絵文字フィルタ
    絵文字をVodafone用の絵文字に置き換えます。
    変換はke/data以下に格納されている変換テーブルで定義されています。

  • 絵文字色付けフィルタ
    iモード向け絵文字は標準では色が付きませんが、自動でfontタグを付加しそれぞれの絵文字に適した色を付けます。

  • フォームタグ改行フィルタ
    iモードやVodafoneではformタグは改行されて表示されます。
    しかしEZwebの場合は改行されないため、キャリア間で異なったデザインとなってしまいます。
    それを修正するフィルタです。

  • Aタグフィルタ
    AタグをKEMPを通すように置き換えます。
    これにより既存コンテンツを設置するだけで3キャリア対応とすることができます。

画面の移動について

作成予定
KeMainクラスのmoveを使います。
詳しくはデモソースをご覧下さい。

戻るキーの抑止について

作成途中
携帯に限ったことではありませんが、ゲームなどで戻るキーを抑止したいケースがあります。
KEMPにはPHPセッションを使い戻る機能の抑止をサポートする機能があります。
とはいってもブラウザの一機能である戻る機能を使用させないようにするのは不可能なので、 前の画面IDをセッション変数に記憶し、それを利用して直接アクセスや戻るでのアクセスを抑制します。

具体的にはじゃんけんデモのじゃんけん結果表示の部分で使用されています。
じゃんけんに負けた場合、一つ前の画面に戻って、違う手を出してみてください。
結果が決まった後は、戻るで他の手を選んでも、前回と同じ勝敗しか表示しません。
使い方はデモの該当ソースをご覧下さい。

端末IDの取得について

端末固有IDを取得し、ユーザ登録や認証に利用することができます。

  • ドコモ(FOMA): カードIDを利用(機種変更でも不変)
  • ドコモ(mova): 端末シリアルを利用(機種変更で変更)

※ただし認証前にダイアログが出ます


  • au: サブスクライバIDを利用(機種変更でも不変)

※事前にEZメニューからサブスクライバIDの通知設定が必要です


  • Vodafone: 端末シリアルを利用(機種変更で変更)
    (3Gカード入れ替えでIDが変わります)


※事前に端末のID通知設定とVodafoneメニューのID通知設定が必要です。

エラーの抑制について

作成途中
KEMPにはPHPエラーやファイル読み込み・DBエラー等が出た場合に、エラーメッセージを抑制し、「ただいま混み合っています」という旨のメッセージを出す機能があります。
詳しくは設定定義ファイルのエラー関連の欄をご覧下さい。

設定ファイルの説明

作成予定
それまではクラスリファレンスか、設定ファイルを直接参照してください。(コメントが書いてあります。)


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Wed, 02 Jan 2008 02:49:18 JST (4710d)