携帯サイト用inputフィールドのデフォルトIME設定を3キャリア共通で得る関数
2009年01月27日-![はてなブックマーク](http://b.hatena.ne.jp/entry/image///phpspot.org/blog/archives/2009/01/inputime3.html)
携帯サイト用inputフィールドのデフォルトIME設定を3キャリア共通で得る関数を作ってみました。
特段、素晴らしいものでもないけれど、作ったのでシェアです。
前提としてUserAgentの判別をしておく必要があります。
$attr = mobileform("hiragana", "docomo"); // istyle="1" が返る
$attr = mobileform("alphabet", "au"); // format="a" が返る
$attr = mobileform("numeric", "softbank"); // mode="numeric" が返る
<input type="text" $attr> のように出力すれば、3キャリアごとに違うinput属性を作ってくれるというもの。softbankがhiragana,alphabetなどになっていて一番分かりやすかったのでsoftbankを基本としています。<?php
function mobileform($key, $agent) {
$docomo = array(
"hiragana" => "1",
"alphabet" => "3",
"numeric" => "4"
);
$au = array(
"hiragana" => "*M",
"alphabet" => "*a",
"numeric" => "*N"
);
if ($agent == 'docomo') { // docomo
return " istyle=\"".$docomo[$key]."\" ";
} elseif ($agent == "softbank") { // softbank
return " mode=\"".$key."\" ";
} elseif ($agent == "au") { // au
return " format=\"".$au[$key]."\" ";
}
}
次に、Smarty プラグインも作ったのでよければお使い下さい。
ファイル名:「function.mobileform.php」として以下内容を Smartyのpluginsディレクトリに設置<?php
/*
* Usage
*
* 予め、$smarty->assign("mobile_agent", "au"); のような形で判別したキャリアを割り当てておく
* docomoの場合はdocomo、softbankの場合はsoftbank、auの場合はau
*
* テンプレート内で以下のように利用する
*
* <input type="text" name="p1"{mobileform key="hiragana"}> ひらがな
* <input type="text" name="p2"{mobileform key="alphabet"}> アルファベット
* <input type="text" name="p3"{mobileform key="numeric"}> 数字
*/
function smarty_function_mobileform($params, &$smarty)
{
$key = $params['key'];
$docomo = array(
"hiragana" => "1",
"alphabet" => "3",
"numeric" => "4"
);
$au = array(
"hiragana" => "*M",
"alphabet" => "*a",
"numeric" => "*N"
);
$agent = $smarty->get_template_vars('mobile_agent');
if ($agent == 'docomo') { // docomo
return " istyle=\"".$docomo[$key]."\" ";
} elseif ($agent == "softbank") { // softbank
return " mode=\"".$key."\" ";
} elseif ($agent == "au") { // au
return " format=\"".$au[$key]."\" ";
}
}
使い方は、上記ソース内コメントに書いておきました。
やっぱり、こういうところは3キャリア共通にしてくれないと、こういう仕組みを作る必要があるので共通にしてくれると助かるなぁと思いますね。今更しょうがないと思いますが。
エージェントの判別は「 PHPで携帯のエージェント判別法 - phpspot」などが参考に出来ます。
Smarty版を使う場合は「ke-tai.org > Blog Archive > 携帯サイトでSmartyを使う場合の注意点」も参考にしてください。
関連サイト:PHPで携帯サイト - phpspot
最新のブログ記事(新着順)
- CSSで太陽が差し込むようなアニメーション実装
- 可愛くアニメーションする「beautifully crafted animated icons」
- アイソメトリックなアイコンがアイコンがPNG,SVGでゲットできる「Isoicons」
- ユニークなカタカナフォントtorisippo
- 美しいメッシュグラデーションをCSSで簡単に取得できる「MSHR」
- TailwindCSSなサイトで使える100以上のアニメーションエフェクト「animata」
- SVG形式のテック系企業のロゴを簡単にゲットできる「Svgl」
- 統一感のある色味を一括生成できるツール「The good colors」
- くちばしフォント【商用可】
- 小説表紙などに使えそうな商用可なフォント「になロマン」
- 過去のエントリ