質問 > フロント機能 > 商品注文時のページ差し込み・フォーム追加について |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
sakaki |
投稿日時: 2017/9/12 10:43
対応状況: 解決済
|
新米 登録日: 2017/9/12 居住地: 投稿: 3 |
商品注文時のページ差し込み・フォーム追加について ▼テンプレート
[EC-CUBE] 3.0.15 [サーバ] Apache2.4 ローカル [OS] Windows10 [PHP] 5.5.38 [データベース] mysql 5.1.41 初投稿です. 現在ECサイトの構築及びプラグインの開発を学習しています. 今自分が実装しようとしているのは,「商品購入時に追加でお客様からフォームを入力してもらう」という機能です. たとえば財布購入時に刻印の有無,入れるならその名前,といった具合です. この処理を行うに当たって,フォームの追加場所は front.shopping.index.initialize と考えましたがこのフックポイントはcompleteがなく値を取得できません. そこで front.shopping.confirm.initialize,complete を用いて新規ページ(Shopping/confirm.twig)を差し込みそこにフォームを追加することで対応できるのではと考えました. Shoppingcontroller.phpのinitializeフックポイント直後に $form = $builder->getForm(); $form->handleRequest($request); return $app->render('Shopping/confirm.twig', array( 'form' => $form->createView(), )); このように書くことでページを差し込むことは実現できましたが,このページからPOSTしたときにどうやって通常の処理に戻ればよいのかがわかりません. 他のやり方でも構いませんので,ぜひご教授ください. |
468 |
投稿日時: 2017/9/12 14:50
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 商品注文時のページ差し込み・フォーム追加について 新しいページを追加されたところは、
FRONT_SHOPPING_CONFIRM_INITIALIZEのフックポイントの直後ですか? という事は、まだ注文は完了していない状態かと思いますが、 認識は合っていますか? 新しく追加されたページでsubmitした場合、 希望としては、購入処理を実行して、注文完了ページを表示したいという事でしょうか? (通常の処理とはこの事でしょうか?) 購入処理が実装されている/shopping/confirmへsubmitさせるのが良いのではないでしょうか? そのままだと、追加されたページが常に表示されるかと思いますので、 その処理をスキップする判定を入れる事と追加されたフォームの入力値を保存する処理のカスタマイズを function confirm()に追加すれば良いかと思います。
|
sakaki |
投稿日時: 2017/9/12 15:52
対応状況: −−−
|
新米 登録日: 2017/9/12 居住地: 投稿: 3 |
Re: 商品注文時のページ差し込み・フォーム追加について 返信ありがとうございます.
諸々の認識はその解釈で合っています. ShoppingController.php内は FRONT_SHOPPING_CONFIRM_INITIALIZE 追加した部分 ☆ それ以降 となっているとして,Confirm.twigでPOSTしたらそのデータを保持したまま(あるいはどこかに保存して)☆の部分にジャンプするようにしたいです. どのようなコードを書けばよいでしょうか |
468 |
投稿日時: 2017/9/13 19:28
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 商品注文時のページ差し込み・フォーム追加について formクラスへの項目の追加などは問題無く実現出来ている感じでしょうか?
(Confirm.twigで入力させたい項目など) もし、項目の追加が出来ているのであれば、 hidden項目を1つ追加して、その項目がリクエストに含まれていれば、 追加した部分の処理をスキップさせれば良いのではないでしょうか? ただ、ソースを見てみると、 formの値は、FRONT_SHOPPING_CONFIRM_INITIALIZEの後に整形されているように見受けられますので、 例外的に、$request->request->get('****');等で取り出して判定するかですね。 formを利用した場合のPOST値をリクエストから直接取り出す方法は、実際に試していないので調べていただく必要があると思います。
|
sakaki |
投稿日時: 2017/9/15 17:38
対応状況: −−−
|
新米 登録日: 2017/9/12 居住地: 投稿: 3 |
Re: 商品注文時のページ差し込み・フォーム追加について 自己解決いたしました.
お手数おかけしました,ありがとうございました. |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |