このエントリーをはてなブックマークに追加 Twitterでツイート EC-CUBEの決済処理関連ちょっと整理

今週月曜に投稿したEC-CUBEの決済対応の話ですが、ブラウザ(というかIE)の「戻る」対応の関係で、site_frame.tplとcss.jsに手を加えることになりました。IEのformタグがaccept-charsetをサポートしていればこんな苦労せずに、さっくり終わった仕事なんでしょうね(まだ終わってないけど^^;)。

1.新規作成したconfirm.tplのformタグ部分

<form name="form1" id="form1" method="post" action="<!--{$tpl_URL}-->" 
accept-charset="shift_jis" onsubmit="if (document.all) document.charset='shift_jis';">
  • ※フォーム情報の文字エンコーディングをshift_jisに強制変換するための記述です。

2.site_frame.tpl(ほかのjsファイルの記述も同様)

<script type="text/javascript" src="<!--{$TPL_DIR}-->js/css.js" 
charset="<!--{$smarty.const.CHAR_CODE}-->"></script>
  • ※HTMLドキュメントの文字エンコーディングを強制変換してもJavaScriptファイル(データ)はそのままUTF-8を維持させるための記述です。

3.css.js(先頭に追加)

if (document.all && document.charset == 'shift_jis') { document.location.reload(); exit; }
  • ※HTMLドキュメントの文字エンコーディングを強制変換したページに戻った際、HTMLドキュメントを再読み込みしてきちんと表示するためです。

3を行うことで、文字化けなどは対処できますが、工夫しないとフォームで入力(変更)した情報はなくなってしまいます。今回のケースのように入力がない確認ページだからできる対処といえますね。

EC-CUBE関連の仕事はまだ続いているのですが、忘れないようにメモしておきます。

投稿日:2009年9月17日
  • ※コメントは、スパム対策などのためIPアドレスにて制限しております。
  • ※誹謗や中傷、スパムなど、不適切な内容は公開いたしません。ご了承ください。