バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > 開発について > 商品CSV登録のカスタマイズ方法

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2017/9/19 11:37
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1638
商品CSV登録のカスタマイズ方法
EC-CUBE3.0.15

EC-CUBE3の商品CSV登録をプラグインで機能拡張したいと思っています。

こちらの質問で、商品CSV登録にはフックポイントがないため関数をオーバーライドするしか方法がないという回答をいただきました。
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=19140&forum=17

しかし、実際にどう実装して良いのかがわかりません。
クラスを継承すればよいのかと思って次のように実装してみたのですが、エラーになりました。

どうすれば商品CSV登録の処理をカスタマイズできるのでしょうか?

app/Plugin/Test/ServiceProvider/TestServiceProvider.php
class TestServiceProvider implements ServiceProviderInterface
{
    public function register(BaseApplication $app)
    {
        // 商品CSV登録(継承)
        $app->match('/' . $app['config']['admin_route'] . '/product/product_csv_upload',
                '\Plugin\Test\Controller\CsvImportControllerEx::csvProduct'
            )
            ->bind('admin_product_csv_import');
    }
}


app/Plugin/Test/Controller/CsvImportControllerEx.php
<?php
namespace Plugin\Test\Controller;

use Eccube\Application;
use Eccube\Controller\Admin\Product\CsvImportController;

class CsvImportControllerEx extends CsvImportController
{
    /**
     * 商品登録CSVアップロード
     */
    public function csvProduct(Application $app, Request $request)
    {
        echo "OK";
        die;
        
        parent::csvProduct($app, $request);
    }
}


■エラー
Runtime Notice: Declaration of Plugin\Test\Controller\CsvImportControllerEx::csvProduct() should be compatible with Eccube\Controller\Admin\Product\CsvImportController::csvProduct(Eccube\Application $app, Symfony\Component\HttpFoundation\Request $request)


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

h_tanaka
投稿日時: 2017/9/19 14:46
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1638
Re: 商品CSV登録のカスタマイズ方法
自己解決しました。

引数に使用しているクラスの宣言が抜けていたみたいで、
use Symfony\Component\HttpFoundation\Request;
を追記することでエラーは発生しなくなりました。

クラスの継承もうまくいきました。
CsvImportController の中身をまるごとプラグイン側の新規Controllerファイルにコピーし、namespace と クラス名を変更し、継承元をuseすることで問題なくクラスの関数を継承して呼び出すことができました。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

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


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1569
9
mcontact
1279
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.