New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

管理画面CSV出力の処理にフックポイントを追加 #1944

Merged
merged 3 commits into from Feb 20, 2017

Conversation

Projects
None yet
5 participants
@dayamashita
Copy link

dayamashita commented Nov 25, 2016

プラグインで商品等に情報を追加した際、
CSV出力に、容易に追加した項目を反映できるようフックポイントを追加しました。

実装例)

dtb_product と1対1に紐づく情報を追加した場合、
以下のような感じでCSVに項目を追加出力できる。
その他テーブルでも同様。

  • フックポイント
    admin.product.csv.export

  • DB(dtb_csv)

csv_type entity_name field_name reference_field_name disp_name
1 Plugin\\PluginName\\Entity\\PluginEntityName name (null) 名称
1 Plugin\\PluginName\\Entity\\PluginEntityName content (null) 内容
  • ロジック
public function exportAdminProductCsvExport(EventArgs $event)
{
    $app = $this->app;

    $ExportCsvRow = $event->getArgument('ExportCsvRow');
    if ($ExportCsvRow->isDataNull()) {

        $csvService = $event->getArgument('csvService');
        $ProductClass = $event->getArgument('ProductClass');
        $Product = $ProductClass->getProduct();
        $Csv = $event->getArgument('Csv');

        $entity =  $app['plugin.repository.xxxxx']->find($Product->getId());

        if (isset($entity)) {
            $ExportCsvRow->setData($csvService->getData($Csv, $entity));
        }
    }
}

@dayamashita dayamashita force-pushed the dayamashita:201611_csv_export_hookpoint branch from 555eee2 to 1e6caa6 Nov 25, 2016

@dayamashita dayamashita force-pushed the dayamashita:201611_csv_export_hookpoint branch from 1e6caa6 to f80aff8 Nov 25, 2016

@Yangsin Yangsin added this to the 3.0.x milestone Nov 28, 2016

@chihiro-adachi

This comment has been minimized.

Copy link
Contributor

chihiro-adachi commented Dec 19, 2016

@dayamashita
ありがとうございます。こちらでプラグイン作成し動作することを確認できました。
影響が大きいため、ユニットテスト作成いただければありがたいですが可能でしょうか。

@Yangsin Yangsin modified the milestones: 3.0.14, 3.0.x Dec 19, 2016

@ryo-endo

This comment has been minimized.

Copy link
Contributor

ryo-endo commented Jan 26, 2017

@dayamashita
使いやすそうなフックポイントですね👍

ユニットテスト作成、その後いかがでしょうか?
具体的には、以下のようなテストコードの追加を想定しています。

  • tests/Eccube/Tests/Pluginでの新規フックポイントのテストの追加
  • tests/Eccube/Tests/Web/AdminでのCSV出力結果を確認するテストの追加

もしお時間取れなさそうでしたら、テストコード作成だけ別のコミッターの方にお願いするようなことも考えています。
お返事いただけると幸いです。よろしくお願いします。

@ryo-endo

This comment has been minimized.

Copy link
Contributor

ryo-endo commented Feb 13, 2017

@dayamashita
こちらユニットテスト作成、別のコミッターに依頼させていただきましたので、ご報告いたします。

@t-nagahashi

This comment has been minimized.

Copy link
Contributor

t-nagahashi commented Feb 17, 2017

mysql, Postgresともに、プラグインを作成し、フックできていることを確認しました。

テストコードに関しては、本PR取込後作成しているものを追って取り込みます。

@ryo-endo ryo-endo merged commit e39dc37 into EC-CUBE:master Feb 20, 2017

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

@Yangsin Yangsin referenced this pull request Feb 20, 2017

Closed

3.0.14 リリース計画 #1994

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment