◎設定値詳細
ライブラリ内の「_params」プロパティ、もしくはcontroller内の「ktai」
プロパティ、ヘルパーを利用する際の「Configure::write('Ktai', $params);」で設定
するparams連想配列で指定する、各種設定値については、次の通りです。
なお、記載されている設定値はデフォルトです。
【エンコーディング関連設定】
・入力エンコーディング(string)
'input_encoding' => KTAI_ENCODING_SJIS,
加工前のエンコーディングを指定します。
・出力エンコーディング(string)
'output_encoding' => KTAI_ENCODING_SJIS,
加工後のエンコーディングを指定します。
・バイナリ絵文字を使用(bool)
'use_binary_emoji' => true,
絵文字生成の際、バイナリ文字列を生成します。
【iPhone関連設定】
・iPhoneを携帯とみなす(bool)
'iphone_user_agent_belongs_to_ktai' => false,
・iPhoneをSoftBank携帯とみなす(bool)
'iphone_user_agent_belongs_to_softbank' => false,
・iPhoneメールを携帯メールとみなす(bool)
'iphone_email_belongs_to_ktai_email' => false,
・iPhoneメールをSoftBank携帯のメールとみなす(bool)
'iphone_email_belongs_to_softbank_email' => false,
【仮想スクリーンサイズ設定】
・仮想スクリーンサイズの設定(array(int, int))
'default_screen_size' => array(240, 320),
仮想的なスクリーンサイズを(width, height)で指定します。
画像ストレッチ機能(■ライブラリ関数リファレンス「◎スクリーンサイズに
最適化した画像を表示」を参照)で使用されます。
【文字コードコンバート関連】(ヘルパーのみ)
・アウトプットに対して絵文字の自動コンバートを行う(bool)
'output_auto_convert_emoji' => false,
このフラグを指定すると、アウトプット内にある絵文字について検索を行い、
コンバートを自動で行います。
・アウトプットに対して文字コードの自動コンバートを行う(bool)
'output_auto_encoding' => false,
このフラグを指定すると、入力文字コード指定と出力文字コード指定が異なる場合、
自動変換します。
・仮名変換(string)[New!]
'output_convert_kana' => 'knr',
このオプションを指定すると、仮名文字変換(mb_convert_kana())を自動で行います。
与える文字列はmb_convert_kana()で与えるオプションです。
デフォルトはfalseとなっていて、変換処理は行いません。
※文字コンバート関連は、処理の性質上大変に処理能力を使いますのでお気をつけ
ください
■ヘルパーの利用方法
ヘルパーでライブラリーを使用するには、次の手順で行います。
1:ライブラリを所定の位置にコピーする(前述)
2:必要であれば、設定値をカスタマイズする
3:コントローラにヘルパーを登録する
var $helper = array('Ktai', ...);
4:ビュー内に記述
emoji(63879); ?>←「[1]」を表示
■コンポーネントの利用方法
コンポーネントでライブラリーを使用するには、次の手順で行います。
1:ライブラリを所定の位置にコピーする(前述)
2:必要であれば、設定値をカスタマイズする
3:コントローラにコンポーネントを登録する
var $components = array('Ktai', ...);
4:コントローラ内に記述
if($this->Ktai->is_ktai()){
echo "携帯でアクセスしています
\n";
}
【備考】
レンダリング結果に対して絵文字を全て変換したい場合は、コントローラ処理が
終わるまでに「$this->ktai['convert_output'] = true」を設定します。
■ライブラリ関数リファレンス
◎ライブラリのバージョンを入手
string get_version()
ライブラリのバージョンコード(文字列)を入手します。
◎キャリアの判別
bool is_imode() iMODE携帯の判別
bool is_softbank() ソフトバンク携帯の判別
bool is_vodafone() ボーダフォン携帯の判別
bool is_jphone() JPHONE携帯の判別
bool is_ezweb() EZWeb携帯の判別
bool is_emobile() EMOBILE携帯の判別
bool is_iphone() iPhoneの判別
各携帯端末を判別し、そうであったらtrueを返します。
is_vodafone()はJ-PHONEも、is_softbank()はvodafoneとJ-PHONEも含みます
(通常はis_softbank()を使います)。
◎携帯の判別
bool is_ktai()
携帯端末でアクセスしている場合、trueを返します。
設定により、iPhone端末も携帯として判別することが出来ます。
◎PHSの判別
bool is_phs()
PHS端末でアクセスしている場合、trueを返します。
◎キャリアコードを入手
int get_carrier()
現在のアクセス端末の判別を、数値で入手します。
定数として、次の数値が割り当てられています。
KTAI_CARRIER_UNKNOWN (不明)
KTAI_CARRIER_DOCOMO iMODE
KTAI_CARRIER_KDDI EZWeb
KTAI_CARRIER_SOFTBANK Softbank
KTAI_CARRIER_EMOBILE EMOBILE
KTAI_CARRIER_IPHONE iPhone
KTAI_CARRIER_PHS PHS
◎ユーザーエージェントの解析
array analyze_user_agent(string $user_agent = null)
ユーザーエージェントを解析し、端末情報を入手します。
引数が指定されていない場合は現在のユーザエージェントを入手して解析します。
配列で渡される値は次の通りです。
array(
'carrier' => 0, //キャリアコード(int)
'carrier_name' = 'default', //キャリア名(string)
'machine_name' => 'default', //端末名(string)
)
なお、PCなど端末が特定できなかった場合はデフォルトの値が入ります。
◎端末情報の入手
array get_machineinfo(string $carrier_name = null, string $machine_name = null)
端末情報をライブラリから入手します。
キャリア名と端末名を省略した場合は、現在のユーザーエージェントからこれらを
入手し、端末情報を入手します。
端末情報が存在しない場合は一般的な端末の情報が返されます。
配列で渡される値は次の通りです。
array(
'carrier' //キャリアコード(int)
'carrier_name' //キャリア名(string)
'machine_name' //端末名(string)
'text_size' => array(20, 11), //文字数(width, height / 半角 / int)
'screen_size' => array(240, 320), //スクリーンサイズ(width, height / int)
'image_size' => array(240, 320), //画像サイズ(壁紙など)
//(width, height / int)
'pic_format' => array('gif' => true, 'jpg' => true, 'png' => true, ),
//対応画像フォーマット(bool)
)
◎メールアドレスの判別
bool is_imode_email(string $email) iMODEメールの判別
bool is_softbank_email(string $email) ソフトバンクメールの判別
bool is_vodafone_email(string $email) ボーダフォンメールの判別
bool is_jphone_email(string $email) JPHONEメールの判別
bool is_ezweb_email(string $email) EZWebメールの判別
bool is_emobile_email(string $email) EMOBILEメールの判別
bool is_iphone_email(string $email) iPhoneメールの判別
各携帯メールアドレスを判別し、そうであったらtrueを返します。
is_vodafone_email()はJ-PHONEも、is_softbank_email()はvodafoneとJ-PHONEも
含みます(通常はis_softbank_email()を使います)。
◎携帯メールの判別
bool is_ktai_email(string $email)
携帯メールアドレスの場合、trueを返します。
設定により、iPhone端末も携帯として判別することが出来ます。
◎PHSメールの判別
bool is_phs_email(string $email)
PHSメールアドレスの場合、trueを返します。
◎スクリーンサイズに最適化した画像を表示
string image(string $url, array $htmlAttribute = array())
仮想スクリーンサイズと端末スクリーンサイズから画像の拡大率を計算し、その比率に
修正した画像を表示します。この関数を使用することで、高解像度携帯での画像の
レイアウト崩れを補正することが出来ます。
CakePHPのHtmlHelper準拠の引数となっており、imgタグのアトリビュートを
htmlAttribute内に連想配列で指定します。
なお、最適化については、画像の幅と高さ(width, height)が必ず指定されて
いなければなりません。どちらかが欠けた場合、最適化は行いません。
なお、最適化を行いたくない場合はHtmlHelper::image()に置き換えてください。
◎スクリーンサイズに最適化した画像サイズを入手
array stretch_image_size(int $width, int $height, int $default_width = null,
int $default_height = null)
仮想スクリーンサイズと端末スクリーンサイズから画像の拡大率を計算し、その比率に
修正した画像サイズを入手します。戻り値の配列は、width, heightの順です。
◎アクセスキー付きlinkの出力(ヘルパーのみ)
string link(string $title, mixed $url = null, mixed $htmlAttributes = array(),
bool $confirmMessage = false, bool $escapeTitle = true)
アクセスキー付きのリンクを作成します。
htmlAttributesに「'accesskey'」パラメータが含まれている場合、リンク文字列の
前に番号絵文字iconを出力します。
それ以外のパラメータなどは、$html->link()と同じです。
◎mailtoリンクの作成
string mailto(string $title, string $email, string $subject = null,
string $body = null, bool $input_encoding = null,
$output_encoding = null, $display = true)
各端末に合わせたmailtoリンクを作成します。
件名や本文を、文字化けすることなく挿入することが出来ます。
自動的にアウトプットしたくない場合はdisplayをfalseにします。
◎リダイレクト[New!]
void redirect(string $url, bool $exit = true)
リダイレクト処理を実現します。
enable_ktai_sessionが有効であり、use_redirect_session_idが有効か、もしくは
iMODE端末からのアクセスだった場合は、セッションIDがURLに付加されます。
※lib3gk固有の機能を持つ関数です。CakePHPでは、app_controller.phpを設定し、
コントローラ内のredirect()を用いてください
◎ユーザIDの入手[New!]
mixed get_uid()
携帯に付加されているユーザID(uid)を入手します。
uidが入手出来た場合はそのコードがstringで返ります。
入手出来なかった場合はfalseが返ります。
★以下は、直接携帯に関係ないけどお役立ち関数です
◎エンコーディング文字列を正規化
string normal_encoding_str(string $str)
エンコーディング文字列をPHP内部で利用している標準的な文字列で正規化します。
例えば、「sjis」, 「Shift_JIS」は全て「SJIS」と変換されます
◎数値から文字列を作成
string int2str(int $value)
数値(キャラクターコード)を文字列に変換します。
マルチバイトに対応しています。
◎数値(ユニコード)からUTF-8文字列を作成
string int2utf8(int $value)
ユニコードをUTF-8文字列に変換します。
◎QRコードの作成[New!]
string get_qrcode(string $str, array $options = array(),
$input_encoding = null, $output_encoding = null)
Google chart APIを用いて、携帯サイト誘導手段として一般的なQRコードを作成
します。
$optionsは、連想配列で次のオプションを指定できます。
各オプション値の詳細は、Google Chart APIデベロッパーガイドを参照してください。
▼Google Chart API:デベロッパー ガイド(QRコード)
http://code.google.com/intl/ja/apis/chart/#qrcodes
$options = array(
'width' => 220, //QRコード画像の幅(マージンを含んでいます)
'height' => 220, //QRコード画像の高さ(同上)
// 'margin' => 4, //マージン(無彩色)幅
// 'ec' => '-L', //エラー訂正レベル
);
これ以外のキーを持つ値は、image()のオプションとして持ち越されます。
デフォルト値は、縦横220pixelとなっています。
戻り値はイメージタグの文字列となります。