@@ -217,31 +217,6 @@ public function buildForm(array $form, FormStateInterface $form_state) {
217217 public function submitForm (array &$ form , FormStateInterface $ form_state ) {
218218 $ values = $ form_state ->getValues ();
219219
220- $ field_map = $ this ->entityFieldManager ()->getFieldMap ();
221-
222- $ field_type = [
223- "entity_reference " ,
224- "entity_reference_revisions " ,
225- "entity_reference_entity_modify " ,
226- ];
227-
228- $ fields = [];
229- foreach ($ field_map as $ entity => $ entity_field_data ) {
230- foreach ($ entity_field_data as $ field_id => $ field_data ) {
231- if (in_array ($ field_data ['type ' ], $ field_type )) {
232-
233- $ field_storage_defs = $ this ->entityFieldManager ()->getFieldStorageDefinitions ($ entity );
234-
235- if (isset ($ field_storage_defs [$ field_id ])) {
236- $ field_storage_settings = $ field_storage_defs [$ field_id ]->getSettings ();
237- if ($ field_storage_settings ['target_type ' ] == $ values ['entity_type ' ]) {
238- $ fields [$ field_data ['type ' ]][$ entity ][$ field_id ] = $ field_data ;
239- }
240- }
241- }
242- }
243- }
244-
245220 $ batch = [
246221 'title ' => $ this ->t ('Searching... ' ),
247222 'operations ' => [
@@ -253,6 +228,8 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
253228 'finished ' => [$ this , 'finishedCallback ' ],
254229 ];
255230
231+ $ fields = EntityReferenceFieldSearch::findFields ($ form_state );
232+
256233 foreach ($ fields as $ field_type => $ field_data ) {
257234 foreach ($ field_data as $ entity_type => $ fields2 ) {
258235 foreach ($ fields2 as $ f => $ fdata ) {
@@ -286,6 +263,45 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
286263 batch_set ($ batch );
287264 }
288265
266+ /**
267+ * Run the process, to look for viable fields to search.
268+ *
269+ * @param \Drupal\Core\Form\FormStateInterface $form_state
270+ * Drupal's forms tate obj.
271+ *
272+ * @return array
273+ */
274+ public static function findFields (FormStateInterface $ form_state ): array {
275+
276+ $ entity_field_manager = \Drupal::service ('entity_field.manager ' ); // phpcs:ignore
277+ $ field_map = $ entity_field_manager ->getFieldMap ();
278+
279+ $ field_type = [
280+ "entity_reference " ,
281+ "entity_reference_revisions " ,
282+ "entity_reference_entity_modify " ,
283+ ];
284+
285+ $ fields = [];
286+ foreach ($ field_map as $ entity => $ entity_field_data ) {
287+ foreach ($ entity_field_data as $ field_id => $ field_data ) {
288+ if (in_array ($ field_data ['type ' ], $ field_type )) {
289+
290+ $ field_storage_defs = $ entity_field_manager ->getFieldStorageDefinitions ($ entity );
291+
292+ if (isset ($ field_storage_defs [$ field_id ])) {
293+ $ field_storage_settings = $ field_storage_defs [$ field_id ]->getSettings ();
294+ if ($ field_storage_settings ['target_type ' ] == $ values ['entity_type ' ]) {
295+ $ fields [$ field_data ['type ' ]][$ entity ][$ field_id ] = $ field_data ;
296+ }
297+ }
298+ }
299+ }
300+ }
301+
302+ return $ fields ;
303+ }
304+
289305 /**
290306 * Batch process to setup the $context array.
291307 */
0 commit comments