バージョン選択

フォーラム

メニュー

オンライン状況

66 人のユーザが現在オンラインです。 (55 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 66
もっと...

サイト内検索

バグ報告 > 管理機能 > プラグインで追加した管理画面で、ページトッププラグインが機能する

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
k.n
投稿日時: 2018/5/17 9:20
対応状況: −−−
新米
登録日: 2018/5/17
居住地:
投稿: 1
プラグインで追加した管理画面で、ページトッププラグインが機能する
[EC-CUBE] EC-CUBE 3.0.16 新規インストール

[PHP] 7.2.3

[データベース] Postgres 8.4

[WEBサーバ] Apache/2.4.29

[ブラウザ] Google Chrome 66.0.3359.181

[導入プラグインの有無]
ポイントプラグイン
カスタムCSV出力プラグイン
ページトッププラグイン

[現象]
新規インストール後、上記3つのプラグインを導入すると、下記の現象が発生します。
・管理画面>設定>基本情報設定>ポイント設定、カスタムCSV出力の2画面で、ページトッププラグインが機能している。
・カスタムCSV出力時、出力するCSVファイルにエラー画面のソースが追記されて出力される。

設定上、管理画面ではページトッププラグインは機能しない想定で、
ページトップのevent.ymlを確認する限りは eccube.event.front.response にのみページトップのフックポイントを設定しています。
red
投稿日時: 2018/5/17 12:37
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1567
Re: プラグインで追加した管理画面で、ページトッププラグインが機能する
自分も同様の事象を確認しています
帳票プラグインのpdfなどにも機能してしまい、困っています


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

468
投稿日時: 2018/5/18 12:15
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: プラグインで追加した管理画面で、ページトッププラグインが機能する
フックポイントを分岐している判定が以下の記述になっているのが原因ではないでしょうか?

/src/Eccube/Application.php 785行目
            if (strpos($route, 'admin') === 0) {
                // 管理画面
                $app['eccube.event.dispatcher']->dispatch('eccube.event.admin.response', $event);
            } else {
                // フロント画面
                $app['eccube.event.dispatcher']->dispatch('eccube.event.front.response', $event);
            }

本来の仕様が分からないので、この判定が誤りなのか判断できませんが、
ルーティング名が「admin」から始まる場合のみ管理画面のレスポンスのフックを処理しているように思われます。
帳票プラグインのルーティング名は「plugin_admin_order_pdf」、「plugin_admin_order_pdf_download」なので
フロント画面のフックが処理されているのではないかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

sw_sn
投稿日時: 2018/5/25 15:49
対応状況: −−−
常連
登録日: 2018/5/25
居住地:
投稿: 49
Re: プラグインで追加した管理画面で、ページトッププラグインが機能する
私も似たような現象で困ったことがあったので共有します。
根本的な解決方法ではありませんが、CSVやPDFの時のResponseオブジェクトでは
Contentの中身がカラになるので、エラーが出るようです。
以下ファイルに2行足せば、とりあえずの解決はできると思います。

Plugin/ToTop/ToTopEvent.php

public function onRenderToTop(FilterResponseEvent $event)
{
    $response = $event->getResponse(); // ここ
    if (!$response || !$response->getContent()) return; // ここ

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,281名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.