外部フォーム iosでカレンダーウィジェット表示されない

2016年2月29日 at 19:53

・concrete5:バージョン5.7.5.6
・サーバー:Xserver X10プラン
・PHPのバージョン:PHP5.6.15
・MySQLのバージョン:MySQL5.5

いつもお世話になります。
先日 こちらのフォーラムで質問させていただき
予約を受ける外部フォームを自作して運用しています。

HPに設置して運用してから不具合に気づき困っています。
予約日をカレンダーウィジェットを使って入力できるように
しているのですが PCのブラウザでは カレンダーウィジェットが
表示されるのですが ios(iphone) で同じページを閲覧すると
カレンダーウィジェットが表示されません。

同じページに既存フォームブロックを追加すると
iosでも 外部フォーム カレンダーウィジェットが表示されます。

多分 プログラム内に何かが足りないのだと思い 既存フォームの
プログラムを参考に色々 ソースをいじるのですが上手く出来ません。

view側phpに カレンダーウィジェットを呼び出し
//日時・時刻 カレンダー・時間選択ウィジェット
$dtt = Core::make('helper/form/date_time');

同じ view側phpのフォーム部分に表示、入力されるように
体験希望日:※必須


基本的な部分は、上記のようになっています。
HPに表示されるのは view側phpなのでこのプログラムに
間違いがあるのではと思ってますが 解決できません。

実際のコードへのリンク
http://gist.github.com/itacts/386a51911438828572a6

PHPなどプログラム知識がないので ご教示いただければ助かります。
よろしくお願いします。

タグ:

Re: 外部フォーム iosでカレンダーウィジェット表示されない

2016年3月1日 at 22:03
取り急ぎ、コードを拝見しました。
concrete5 のフォームブロックを見比べて jQuery UI の JS と CSS を読みこまれてないですね


http://github.com/concrete5/concrete5/blob/develop/web/concrete/blocks/form/controller.php#L116-L117

$this->requireAsset('css', 'jquery/ui');
$this->requireAsset('javascript', 'jquery/ui');


を、view() か on_start() に組み込んでください。

「PC で見れる」というのは、concrete5 にログインされているためだとおもいます。
今の状態だと、concrete5 にログインしていないと、 PC でもカレンダーが表示されないはずです。
 

Re: 外部フォーム iosでカレンダーウィジェット表示されない

2016年3月2日 at 9:25
Katz さん
ありがとうございます。

コントローラ側.PHPに
public function view()

{

$this->requireAsset('css', 'jquery/ui');

$this->requireAsset('javascript', 'jquery/ui');

}


を追加することによりログアウト状態でもPC,iosともに
カレンダーが表示されることを確認しました。

コード修正へのリンク
http://gist.github.com/itacts/386a51911438828572a6

ありがとうございます。すごく助かりました。
プログラム知識はさっぱりで見よう見まねで外部フォームだけは
なんとか出来たのですが不具合があるとお手上げ状態でした。

急場しのぎで外部フォーム設置pageに既存フォームを設定して
カステムテンプレートで画面上に表示させないようにして
なんとか カレンダーが表示されるようにしてたのです...w

本当にありがとうございます。
また よろしくお願います。