バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

プラグイン > 開発について > 拡張フォームを特定のページにだけ反映させたい

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2017/6/19 15:30
対応状況: −−−
長老
登録日: 2016/7/22
居住地: 愛媛県
投稿: 275
拡張フォームを特定のページにだけ反映させたい
EC-CUBE 3.0.14

管理画面の会員検索ページに項目を追加するために、admin_search_customer のFormTypeを拡張しました。

app/Plugin/Test/Form/Extension/Admin/SearchCustomerTypeExtension.php

class SearchCustomerTypeExtension extends AbstractTypeExtension
{
    public $app;

    public function __construct($app)
    {
        $this->app = $app;
    }

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $app = $this->app;
        if (!$app->isGranted('ROLE_ADMIN')) {
            return;
        }

        // フォームを追加するためにイベントリスナーを追加
       $builder->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event) use ($app) {

            $choices = array();

            $form->add('plg_test_id', 'choice', array(
                'label' => 'テスト',
                'mapped' => true,
                'required' => false,
                'choices' => $choices,
                'empty_value' => '選択してください',
            ));
       });
    }

    public function getExtendedType()
    {
        return 'admin_search_customer';
    }
}


するとこのFormTypeを使用している他のページ(受注登録の会員検索など)にも拡張項目が表示されてしまいました。

拡張フォームを特定のページにだけ反映させることは可能でしょうか?
nyorai
投稿日時: 2017/6/20 11:01
対応状況: −−−
一人前
登録日: 2015/8/21
居住地:
投稿: 98
Re: 拡張フォームを特定のページにだけ反映させたい
FormExtensionだと、admin_search_customer自体が書き換わるので、全体に影響しちゃいますね。

「admin.customer.index.initialize」のフックポイントを使って実装すれば、影響箇所は限定できるかと思います。
引数としてSearchCustomerTypeのbuilderが渡ってくるので、そこで項目を追加すれば良いかと思います。


    public function onAdminCustomerIndexInit(EventArgs $event)
    {
        $builder = $event->getArgument('builder');
        $builder->add('plg_xxx'
            ...
            
        );
    }
h_tanaka
投稿日時: 2017/6/20 11:18
対応状況: −−−
長老
登録日: 2016/7/22
居住地: 愛媛県
投稿: 275
Re: 拡張フォームを特定のページにだけ反映させたい
nyoraiさん

ご指定の方法で見事に解決しました!
ありがとうございます♪


----------------
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

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

 



ログイン


EC-CUBEガイドブック

統計情報

総メンバー数は19,515名です
総投稿数は81,788件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1623
4
yuh
1346
5
red
1052
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
782
10
umebius
671
11
tao_s
646
12 sumida 638
13
homan
633
14 karin 609
15 DELIGHT 571
16
468
570
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

EC-CUBEガイドブック
Copyright© LOCKON CO.,LTD. All Rights Reserved.