プラグイン > 開発について > プラグインで呼び出し元の後続処理を中断させたい |
開発について
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
h_tanaka |
投稿日時: 2017/6/9 11:17
対応状況: 解決済
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1610 |
プラグインで呼び出し元の後続処理を中断させたい EC-CUBE 3.0.14
プラグインのイベント処理後に、呼び出し元の後続の処理を中断させることは可能でしょうか? 商品をカートに入れるタイミングで、プラグイン内でカートに入れることができるかどうかを判定し、カートに入れることができない商品の場合は、後続のカートへの追加処理を中断させたいと思っています。 src/Eccube/Controller/ProductController.php において、カートへの追加処理は273行目にあるので、プラグインの処理を実行するイベントのタイミングは、その前の231行目にしようと思っています。 EccubeEvents::FRONT_PRODUCT_DETAIL_INITIALIZE 以下、プラグインでの実装です。 event.yml
Event.php
エラーを発生させた場合は、呼び出し元でcatchされないためにそのままシステムエラーとなりました。
エラー発生の代わりに次のように実装しましたが、後続の処理は実行されてしまいました。
|
468 |
投稿日時: 2017/6/9 13:13
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: プラグインで呼び出し元の後続処理を中断させたい returnではなく、exitで処理を終了させた場合は、
リダイレクトされませんか? 試していないので、どうなるかわかりませんが・・・。
|
hata |
投稿日時: 2017/6/9 13:32
対応状況: −−−
|
長老 登録日: 2015/8/3 居住地: 宮城県(2017/09末引退) 投稿: 156 |
Re: プラグインで呼び出し元の後続処理を中断させたい requestのモードをadd_favoriteとadd_cart以外にしてしまうことができればスルーできないでしょうか...
add_cart_failedとか。 #中断させられなかった場合の提案です# |
h_tanaka |
投稿日時: 2017/6/9 13:34
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1610 |
Re: プラグインで呼び出し元の後続処理を中断させたい 468さん
phpの処理自体が終了してしまうので、真っ白のページが表示されますね。。
|
h_tanaka |
投稿日時: 2017/6/9 13:39
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1610 |
Re: プラグインで呼び出し元の後続処理を中断させたい hataさん
いいアイデアだと思ったのですが、次のようにしてみたらエラーになりました。 AlreadySubmittedException in Form.php line 314: You cannot change the data of a submitted form.
|
h_tanaka |
投稿日時: 2017/6/9 13:43
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1610 |
Re: プラグインで呼び出し元の後続処理を中断させたい 次でも同じエラーになりました。
|
h_tanaka |
投稿日時: 2017/6/9 14:03
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1610 |
Re: プラグインで呼び出し元の後続処理を中断させたい form送信前なら mode を変更できるかと思い、
app/Plugin/Test/Form/Extension/AddCartTypeExtension.php を作成し、次のように実装したところ、エラーにはなりませんでしたが、mode を変更することはできませんでした。
|
hata |
投稿日時: 2017/6/9 14:13
対応状況: −−−
|
長老 登録日: 2015/8/3 居住地: 宮城県(2017/09末引退) 投稿: 156 |
Re: プラグインで呼び出し元の後続処理を中断させたい onFrontProductDetailInitializeのスキップさせたいケースでrequestの中のmodeを変えてみてください。
|
h_tanaka |
投稿日時: 2017/6/9 14:20
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1610 |
Re: プラグインで呼び出し元の後続処理を中断させたい hataさん
最初のコードで判定処理の部分をご指定のコードに変えたらいけました! ありがとうございます! Event.php
|
h_tanaka |
投稿日時: 2017/6/9 15:12
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1610 |
Re: プラグインで呼び出し元の後続処理を中断させたい あとはカートページでは
とすればエラーメッセージが出てたのですが、商品詳細ページで同じようにエラーメッセージを表示する方法がわからないです。 それがわかればばっちりなんですが。。
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |