TOP  >  スタッフブログ  >  XOOPS  >  XOOPS 携帯対応(WizMobile) で、ユーザ名、パスワード入力をデフォルトで半角英数にする方法 

XOOPS 携帯対応(WizMobile) で、ユーザ名、パスワード入力をデフォルトで半角英数にする方法

カテゴリ : 
XOOPS
2008-12-19 16:59
XOOPS の携帯対応についてよくご相談をうけます。
実際に WizMobile を導入して携帯から利用してみると、細かなところで気になるところがでてきたりするものです。

そんな気になるところの一つが、ログインフォームなどでユーザ名やパスワードを入れるときに、テキスト入力フォームへの入力モードがデフォルトだと全角文字入力になってしまうことです。

できたら、最初から半角英数の入力モードになっていて欲しいですよね。

携帯での入力モードの指定ですが、デフォルトで半角英数にするときは、次のように input タグの属性を指定すると良いそうです。

<input type="text" name="pass" istyle="3" format="*x" MODE="alphabet" />

なので、XOOPS のログインフォームのテンプレートをこのような形に修正してやればできそうな気がするのですが、ログインフォームのテンプレートを見ると次のようになっていて、istyle や format という属性を追加しても、出力される HTML では、この属性が削除されてしまいます。
<!-- こんなふうに input タグを使わないで Smarty プラグインで input タグを出力しています -->
  <{xoops_input type=password name=pass size=12 maxlength=32
 id="`$smarty.const.XOOPS_INPUT_DEFID_PREFIX`block_pass"}>
これを下記のように書き換えてもダメなんですね。
  <{xoops_input type=password name=pass size=12 maxlength=32
 id="`$smarty.const.XOOPS_INPUT_DEFID_PREFIX`block_pass"
 istyle="3" format="*x" MODE="alphabet"}>

何故かというと、 xoops_input プラグインのコードを見ると、xoops_input プラグインは特定の属性だけを HTML に出力するようになっているようで、プラグイン呼び出し時に想定外の属性をつけても無視されるようになっているからです。

istyle や format, MODE というのは想定外の属性になっちゃうんですね。

# 余談ですが、これはサンデープログラマがうっかりテンプレート上で XSS を作り込まないためにこうなってたんだと思います。

さて、そこで xoops_input プラグインをちょっといじって、指定された属性(ほんとうはプラグインに渡すパラメータですが)を全て出力するように書き換えてみました。

パラメータ全部出力型 function.xoops_input.php

これを XOOPS_ROOT_PATH/class/smarty/plugins/function.xoops_input.php と入れ替えても良いですし、ホダ塾ディストリビューション「HD」でしたら、XOOPS_TRUST_PATH/libs/smartyplugins/ に置いても OK です。

これで、先ほどのように istyle,format, MODE の属性を追加すれば、携帯でユーザ名やパスワードを入力しようとしたときに、デフォルトで半角英数の入力モードになります。

WizMobile をご利用の方は、是非おためしください。

同一カテゴリ(  XOOPS )の最新記事

トラックバック

トラックバックpingアドレス http://ryus.co.jp/modules/d3blog/tb.php/318

コメント

コメントの投稿

コメント投稿に関するルール : コメントに承認は必要ない

投稿者 スレッド
gusagi
投稿日時: 2008-12-20 23:12  更新日時: 2008-12-24 18:47
半人前
登録日: 2007-10-16
居住地:
投稿数: 37
 Re: XOOPS 携帯対応(WizMobile) で、ユーザ名、パスワード...
一応、追記です^^;
0.32(12/20時点で最新)以降は、<{wizin_inputmode mode="alpha"}>と記載することで、3キャリア別の初期入力モード指定タグを埋め込むようにしてみました。
--------------------
半角英数字:alpha
半角数字:number
全角漢字:kanji
--------------------
上記の3パターンの初期入力モードが指定可能となっています。

ただ、xoops_inputと組み合わせた場合や、初期入力モード以外の属性指定を考えると、Ryujiが記事内で書いたパラメータ全出力型xoops_inputは、非常に面白いものだと思います。
もし宜しければ、一度お試しいただければ幸いです
返信

投稿者 スレッド
ゲスト
投稿日時: 2009-5-24 4:20  更新日時: 2009-5-24 4:20
 Re: XOOPS 携帯対応(WizMobile) で、ユーザ名、パスワード...
どちらに報告してよいのかわからないので、こちらに投稿させてもらいます。

「パラメータ全部出力型 function.xoops_input.php」

こちらのブログで紹介されている上記pluginsを利用するとnameパラメータが2回表示されてしまいます。
$unset_keyに'name'が含まれていないのが原因のようです。

実は「パラメータ全部+wizwin_inputmode」ができないか検証していて気がつきました

「パラメータ全部+wizwin_inputmode function.xoops_input.php

wizwin_inputmodeのmode指定をxoops_inputでwizmode指定することで利用できるようにしてみました
返信
検索
XOOPSうさぎ通信
お客様事例
メルマガ登録
メルマガ「XOOPSうさぎ通信」登録

メルマガタグ全一覧

XOOPSうさぎ通信
メールアドレス*必須
お名前*必須
会社名
ひとこと欄
個人情報のお取り扱いについてに同意の上ご登録ください
XOOPSうさぎ通信とは?
事例紹介キーワード
タイムカードと社内ポータルがワンパッケージ!
イントラ+勤怠管理システム イントラタイムカードXOO

XOOPS Cubeサタデーラボ

「知らなかったら損をするCMSを社内で活用する!7つの法則」無料レポート お申し込みフォームはコチラ!
メディア掲載情報
最新スタッフブログ
ブログコメント
ブログカテゴリ
RYUS運営サイト
うさぎにもできるXOOPS Cube入門♪
XOOPS Cube Link
XOOPS Cube Official Web Site
携帯サイト
株式会社RYUS QRコード
株式会社RYUS QRコード
たいせつにしますプライバシー 10823301(01)