@@ -366,15 +366,6 @@ protected function _initElement(
366
366
$ data = $ this ->getConfigValue ($ path );
367
367
}
368
368
}
369
- $ fieldRendererClass = $ field ->getFrontendModel ();
370
- if ($ fieldRendererClass ) {
371
- $ fieldRenderer = $ this ->_layout ->getBlockSingleton ($ fieldRendererClass );
372
- } else {
373
- $ fieldRenderer = $ this ->_fieldRenderer ;
374
- }
375
-
376
- $ fieldRenderer ->setForm ($ this );
377
- $ fieldRenderer ->setConfigData ($ this ->_configData );
378
369
379
370
$ elementName = $ this ->_generateElementName ($ field ->getPath (), $ fieldPrefix );
380
371
$ elementId = $ this ->_generateElementId ($ field ->getPath ($ fieldPrefix ));
@@ -420,7 +411,7 @@ protected function _initElement(
420
411
if ($ field ->hasOptions ()) {
421
412
$ formField ->setValues ($ field ->getOptions ());
422
413
}
423
- $ formField ->setRenderer ($ fieldRenderer );
414
+ $ formField ->setRenderer ($ this -> resolveFieldRenderer ( $ field ) );
424
415
}
425
416
426
417
/**
@@ -791,4 +782,23 @@ private function getAppConfigDataValue($path)
791
782
}
792
783
return $ data ->getData ($ path );
793
784
}
785
+
786
+ /**
787
+ * @param \Magento\Config\Model\Config\Structure\Element\Field $field
788
+ * @return Form\Field|\Magento\Framework\View\Element\BlockInterface
789
+ * @throws \Magento\Framework\Exception\LocalizedException
790
+ */
791
+ private function resolveFieldRenderer (\Magento \Config \Model \Config \Structure \Element \Field $ field )
792
+ {
793
+ $ fieldRendererClass = $ field ->getFrontendModel ();
794
+ if ($ fieldRendererClass ) {
795
+ $ fieldRenderer = $ this ->_layout ->getBlockSingleton ($ fieldRendererClass );
796
+ } else {
797
+ $ fieldRenderer = $ this ->_fieldRenderer ;
798
+ }
799
+
800
+ $ fieldRenderer ->setForm ($ this );
801
+ $ fieldRenderer ->setConfigData ($ this ->_configData );
802
+ return $ fieldRenderer ;
803
+ }
794
804
}
0 commit comments