@@ -70,16 +70,33 @@ public function createField(BundleFieldDefinition $field_definition, $lock = TRU
7070 ]);
7171 $ field ->save ();
7272
73+ $ modes = [];
7374 // Show the field on default entity displays, if specified.
7475 if ($ view_display_options = $ field_definition ->getDisplayOptions ('view ' )) {
75- $ view_display = commerce_get_entity_display ($ entity_type_id , $ bundle , 'view ' );
76- $ view_display ->setComponent ($ field_name , $ view_display_options );
77- $ view_display ->save ();
76+ $ modes ['view ' ]['default ' ] = $ view_display_options ;
7877 }
7978 if ($ form_display_options = $ field_definition ->getDisplayOptions ('form ' )) {
80- $ form_display = commerce_get_entity_display ($ entity_type_id , $ bundle , 'form ' );
81- $ form_display ->setComponent ($ field_name , $ form_display_options );
82- $ form_display ->save ();
79+ $ modes ['form ' ]['default ' ] = $ view_display_options ;
80+ }
81+ $ this ->configureFieldDisplayModes ($ field_definition , $ modes );
82+ }
83+
84+ /**
85+ * {@inheritdoc}
86+ */
87+ public function configureFieldDisplayModes (BundleFieldDefinition $ field_definition , $ modes ) {
88+ $ field_name = $ field_definition ->getName ();
89+ $ entity_type_id = $ field_definition ->getTargetEntityTypeId ();
90+ $ bundle = $ field_definition ->getTargetBundle ();
91+ if (empty ($ field_name ) || empty ($ entity_type_id ) || empty ($ bundle )) {
92+ throw new \InvalidArgumentException ('The passed $field_definition is incomplete. ' );
93+ }
94+ foreach ($ modes as $ display => $ mode ) {
95+ foreach ($ mode as $ name => $ view_display_options ) {
96+ $ view_display = commerce_get_entity_display ($ entity_type_id , $ bundle , $ display , $ name );
97+ $ view_display ->setComponent ($ field_name , $ view_display_options );
98+ $ view_display ->save ();
99+ }
83100 }
84101 }
85102
0 commit comments