Yuriko.Net 個別記事
2009-05-12
Ktai Style 1.73 ベータ1配布
Ktai Style 次期バージョン 1.73 のベータ版 (その1) を配布いたします。1.72 からの変更点は以下の通りです。
- コメントフォーム、外部サイトへの中継ページ、その他警告ページは、メタタグとして
<meta name="robots" content="noindex,nofollow" />
を出力するようにしました。 - 外部サイトへのリンク時、携帯サイトの URL 検出がまれに失敗することがある現象を修正しました。
ks_term_name()
が au の新機種に対応しました。ks_in_network()
が EZweb の IP アドレス追加に対応しました。また、iモード端末のIP帯域の誤記を修正しました。
1.72 にあった細かいバグの修正および、5月11月に実施された EZweb の IP アドレス帯域追加の対応を行なっています。1.73 のテストがうまくいけば、1.4x 系統も 1.49 としてリリース予定です (IP アドレス追加は、使い方によってはセキュリティーにかかわる修正なので)。
ゆりこさん、アップデートごくろうさまです。
この質問は筋違いかもしれないのですが、もしヒントだけでも得られればと思いポストさせていただきます。
「Contact Form 7」プラグインをいれてフォームを作ってみました。Ktai Style経由だと、フォームのさまざまな機能のうち、なぜか「チェックボックス」だけ無視されてしまう現象がおきました。
WordPress2,65、2.71
Ktai Style 1.71b1,1.73b1
Contact Form 7(1.9.5.1)
いずれの組み合わせでも症状は同じでした。サーバーはCoreサーバーのS3、S81で試してみました。KtaiStyleのテーマも幾つか変えてみましたが関係ないようです。
ラジオボタン等は問題なくうごきました。チェックボックスだけがダメなんです。
ちなみにFireFox(MacOS10.5.6)+FireMobileSimulatorで動作チェックをしています。なにか思い当たるヒントでもいただければ幸いです。
尚、Contact Form 7は携帯の場合文字コードをSjisにするパッチをあてて使っています(ゆりこさんの某ブログでの書き込みを参考にさせていただきました。随所でお世話になっています。)。
謎な現象ですね。こちらでは現象が再現できませんでした。チェックボックスを実現するためのコードはどんな感じになっていますか? id や class 指定の内容が変だと、input 要素自体が消えてしまうことは、あるかもしれません。
さっそくご確認いただきまして恐縮です。
コードは特に指定はいれず、単に以下のようなコードです(数字は適宜設定)。
[checkbox checkbox-48 "選択1" "選択2"]
少なくともFBSimulator、KtaiStyleの問題ではなさそうですね。
少しテストを繰り返してみて、以下のようなことがわかりました。
[checkbox checkbox-48 "項目1" "項目2"]
この場合は、モバイシミュ+KtaiStyleからは、ボタンの内容が無視される。
[checkbox checkbox-48 "KOUMOKU1" "KOUMOKU2"]
とすると、モバシミュ+KtaiStyleからでも、問題なくボタンの内容が送信される。
idとclassは空白にしても、適当に設定しても関係ありませんでした。
これは関係ないかもしれませんんが気づいたので>送信ボタンを押した後、PCだとフォームの内容、送信ボタンの状態はすべてクリアされます。が、上記の下段の設定(項目名が半角英数字)にしてあるとモバシム+KtaiStyleで送信ボタンを押した後、ボタンの状態が残ったまま(チェックしたボタンはチェックが入ったまま)です。
追記:
ドロップダウン・メニューでも同じ現象がおきました(項目名を半角英数字にしていたので気づきませんでした)
[select menu-58 "項目1" "KOUMOKU2"]
などとすると、”項目1”を選ぶと無視されますが、”KOUMOKU2″を選ぶと反映されます。
ラジオボタンも同様でした。項目名、全角だと無視されてしまいます。
(Contact Formの文字コード関係でソースコードを改変したわけですが、そのあたりでなにか失敗をやらかしてしまったのかな…。)
global $Ktai_Style;
$ktai_char = $Ktai_Style->get('charset');
if (preg_match('/^(?:text|textarea)[*]?$/', $type) && function_exists('is_ktai') && is_ktai())
$_POST[$name] = mb_convert_encoding($_POST[$name], get_bloginfo('charset') ,$ktai_char);
チェックボックス、ボタン等はこのコードだけでは文字コード変換されないような気がします…。ソースをみても、どう改造していいかちょっとわからないな。
上記のコードに、以下のようなコードをあてずっぽうですが加えてみたところ、ラジオボタンは全角がとおるようになりました。
if (preg_match('/^(?:select|checkbox|radio)[*]?$/', $type) && function_exists('is_ktai') && is_ktai())
$_POST[$name] = mb_convert_encoding($_POST[$name], get_bloginfo('charset') ,$ktai_char);
でも、複数の項目があるチェックボックスはダメでした。配列になるせい?なのかわかりませんがこのコードだけでは不十分なのかなと思いました。ただコードをかきおろすスキルがないのでこれ以上は手におえない状況です。ゆりこさんはこのあたり、改変なさってお使いなのでしょうか。
再三失礼します。PHPを勉強しながらcheckboxの場合だけは、配列に対してforeachで処理をするコードを追加してみたところ、一応動作するようになりました。大変、お騒がせいたしました。
[...] 携帯に対応するフォームを設置したく「Contact form 7」というプラグインを導入してみた。携帯への対応は「Ktai Style」というプラグインを導入。そのままでは携帯からフォームに入力、送信した結果が文字化けしてしまうのでContact form 7の改造が必要だ。 [...]
1.73利用させていただいてます。
(ケータイで)外部サイトへのリンクをクリックすると
Fatal error: Call to a member function get() on a non-object in ..(省略).. ketai_style.php on line 1113
と、エラーメッセージが出るのですが、この現象はどのような理由と解決法があるでしょうか。
PCで見た場合には問題ありません。
shachoo さん、こんにちは。これは完全に Ktai Style のバグですね。WordPress 2.8 対応も含めて、修正版を出したいと思います。
すぐに修正したい場合は、ktai_style.php の1113行目で
$Ktai_Style->get
を$this->get
に直せば OK です。PC用のサイトの場合は確認が出るのですね…すごい。
すばやい対応、ありがとうございます!
忘れてました…
管理画面についての要望です。
ケータイから画像の投稿もできたらありがたいのですが、
今後開発予定はございますでしょうか。
この機能は現在検討していますが、端末の方で HTML フォームによるファイルアップロードに対応していることが必要です。しかし、これができる機種はあまり多くありません。ドコモだと 906i 以降の一部機種が対応、au はおそらく全滅 (2009夏モデルはいけたりして?)、SoftBank は 3G 以降の多くの機種が対応、WILLCOM はほぼ対応、EMOBILE は H11T が対応 (H11HT などは調査中) といった状況です。もし、お使いの端末がファイルアップロード未対応であれば、Ktai Style が機能アップしても使えないことにご注意ください。
補足です。
外部サイトへのリンクに水色の矢印アイコンが付くのですが、
付かない外部サイトのリンクもありました。
アイコンが付いているリンクはエラーになり、
アイコンが付いていないものはエラーになりませんでした。
[...] pam という文言が英語で残ることがあります。そもそも、警告画面 (ks_die() 関数) を出そうとすると PHP のエラーで白紙になる不具合があるため、早急に WP 2.8 対応も行なった 1.74 を出すこ [...]