_optionsInterpreter = $optionsInterpreter; } /** * Prepare form before rendering HTML * * @return $this */ protected function _prepareForm() { /** @var \Magento\Framework\Data\Form $form */ $form = $this->_formFactory->create(); foreach ($this->getData('fields') as $itemId => $item) { $this->_prepareFormItem($item); $form->addField($itemId, $item['type'], $item); } $this->setForm($form); return $this; } /** * Prepare form item * * @param array &$item * @return void */ protected function _prepareFormItem(array &$item) { if ($item['type'] == 'select' && is_string($item['values'])) { $modelClass = $item['values']; $item['values'] = $this->_optionsInterpreter->evaluate(['model' => $modelClass]); } $item['class'] = isset($item['class']) ? $item['class'] . ' absolute-advice' : 'absolute-advice'; } }