バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

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

サイト内検索

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

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2017/6/19 15:30
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 306
拡張フォームを特定のページにだけ反映させたい
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
居住地:
投稿: 135
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
居住地: 愛媛県
投稿: 306
Re: 拡張フォームを特定のページにだけ反映させたい
nyoraiさん

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


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

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

 



ログイン


EC-CUBEペイメント

クレジットカード情報の非保持化対応

統計情報

総メンバー数は19,785名です
総投稿数は82,478件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1633
4
yuh
1390
5
red
1064
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
784
10
umebius
712
11
tao_s
651
12 sumida 638
13
homan
633
14
468
630
15 karin 609
16 DELIGHT 571
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

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