バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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
居住地:
投稿: 1275
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
居住地:
投稿: 1743
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
居住地:
投稿: 30
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.co

統計情報

総メンバー数は44,766名です
総投稿数は91,590件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1889
4
468
1743
5
yuh
1584
6
umebius
1296
7
red
1275
8
fukap
907
9
tsuji
837
10
shutta
827
11 ramrun 789
12
tao_s
742
13
h_tanaka
720
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.