プラグイン > バグ報告・利用に関する質問 > クーポンプラグインの無効化ができない |
バグ報告・利用に関する質問
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kisui |
投稿日時: 2020/8/4 15:09
対応状況: −−−
|
新米 登録日: 2020/1/27 居住地: 投稿: 4 |
クーポンプラグインの無効化ができない ▼テンプレート
[EC-CUBE] EC-CUBE4.0.3 [レンタルサーバ] Xserver [OS] - [PHP] 7.3.16 [データベース] MySQL 5.7 [WEBサーバ] - [ブラウザ] - [導入プラグインの有無] カテゴリページ/コンテンツ追加 for EC-CUBE4 最近チェックした商品 送料無料対象商品設定プラグイン 配送方法設定拡張プラグイン 定休日管理プラグイン 同じカテゴリの商品を自動で表示 全体ランキング(販売個数ベース) for EC-CUBE4 taba app バナー管理プラグイン WordPressブログ記事一覧表示プラグイン クロネコヤマト カード・後払い一体型決済サービス [カスタマイズの有無] - [現象] クーポンプラグインの無効化が出来ない プラグイン一覧からクーポンプラグインの無効化ボタンを押すと システムエラーが出て無効にできませんでした。 キャッシュ削除・PHPのバージョンを下げる等試しましたが、ダメでした。 DBから直接プラグインを無効にして管理画面からクーポンプラグインを削除後、 もう一度プラグインをインストール→有効化して無効化を試してみましたが システムエラーが出てしまいます。 調べたところ、こちらと同じ現象のようでした。 https://github.com/EC-CUBE/coupon-plugin/issues/135 デバックモードでも、該当の箇所でエラーが発生しているようなメッセージが出ていました。 こちらでの対応と同じように該当箇所をコメントアウトしたところ 正常に有効・無効の切り替えができるようになったのですが、 この部分はコメントアウトしておいたままでも運用に問題はないでしょうか? 念の為、デバックモードのエラー文を掲載しておきます。 ※詳しくないので、他に必要な部分があればご指摘ください。 -------------------------------------- EntityManager#remove() expects parameter 1 to be an entity object, NULL given. EntityManager_9a5be93->remove(null) in /app/Plugin/Coupon4/PluginManager.php (line 122) if ($Page) { $Layout = $container->get(LayoutRepository::class)->find(Layout::DEFAULT_LAYOUT_UNDERLAYER_PAGE); $PageLayout = $container->get(PageLayoutRepository::class)->findOneBy(['Page' => $Page, 'Layout' => $Layout]); // Blockの削除 $entityManager = $container->get('doctrine')->getManager(); $entityManager->remove($PageLayout); $entityManager->remove($Page); $entityManager->flush(); } } -------------------------------------- ※$entityManager->remove($PageLayout); の部分がハイライトされています。 どのような問題があってエラーがでているのか、このまま運用しても問題がないのか、ご教示頂ければ大変助かります。 宜しくお願い致します。 |
468 |
投稿日時: 2020/8/5 12:27
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: クーポンプラグインの無効化ができない エラーの内容としてはクーポンプラグインで利用しているページレイアウトを削除したいけれど、見つからないというような内容かと思います。
$PageLayout = $container->get(PageLayoutRepository::class)->findOneBy(['Page' => $Page, 'Layout' => $Layout]); 上記のページレイアウトを取得する処理の結果がnull(該当無し)になっているのかと思います。 該当の処理をコメントアウトしておくと、プラグインの無効時/アンインストール時にページレイアウトに不要なデータが残ってしまうと思います。 そうすると再度、プラグインをインストールしようとした時に既にページレイアウトが登録済と言う事で何かエラーが発生しそうな気がしますが、今後クーポンプラグインを入れ替える事がないのであれば特に問題は無いかと思います。 (ページレイアウトが残ったからといって他のプラグインに影響を及ぼす事はないと思います) ページレイアウトを取得しようといて取得できていないのかという点について 以下の点を確認いただきたいのですが まず、管理画面のコンテンツ管理>ページ管理に「商品購入/クーポン利用」というページはありますか? その「商品購入/クーポン利用」のページに割り当てているレイアウト設定は「下層ページ用レイアウト」になっていますか? それとも他のレイアウトを指定していますか? 多分、他のレイアウトを指定していると $Layout = $container->get(LayoutRepository::class)->find(Layout::DEFAULT_LAYOUT_UNDERLAYER_PAGE); の条件と異なってくるため、エラーが発生すると思います。 一旦、「商品購入/クーポン利用」ページのレイアウト設定を「下層ページ用レイアウト」に変更した後であれば プラグインの無効化が正常に終了するのではないでしょうか?
|
kisui |
投稿日時: 2020/8/5 14:46
対応状況: −−−
|
新米 登録日: 2020/1/27 居住地: 投稿: 4 |
Re: クーポンプラグインの無効化ができない ご回答ありがとうございます。
ひとまずはコメントアウトしていても問題はないということで安心しました。 引用: ページレイアウトを取得しようといて取得できていないのかという点について 「商品購入/クーポン利用」のページを確認してみたところ、デフォルト以外に追加で作成したレイアウトを指定していました。 ほぼほぼ構築が終わった後に気づいたエラーでしたので、レイアウトを変更していたのをすっかりと忘れていました。 これをデフォルトの「下層ページ用レイアウト」に変更すると、無効化・有効化が正常に動作しました。 デフォルト以外のページレイアウト設定が原因であるとは思い至らずでした。 今回はクーポンプラグインを入れ替えたりなどはしないので、追加したレイアウトのままで運用していこうと思います。 大変助かりました! ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |