public function PluginConfiguration::buildInlineForm in Commerce Core 8.2
Builds the inline form.
Parameters
array $inline_form: The inline form, containing the following basic properties:
- #parents: Identifies the location of the field values in $form_state.
\Drupal\Core\Form\FormStateInterface $form_state: The form state of the complete form.
Return value
array The built inline form.
Overrides InlineFormBase::buildInlineForm
File
- src/
Plugin/ Commerce/ InlineForm/ PluginConfiguration.php, line 88
Class
- PluginConfiguration
- Provides a plugin configuration inline form.
Namespace
Drupal\commerce\Plugin\Commerce\InlineFormCode
public function buildInlineForm(array $inline_form, FormStateInterface $form_state) {
assert(!empty($this->configuration['plugin_type']));
assert(!empty($this->configuration['plugin_id']));
assert(is_array($this->configuration['plugin_configuration']));
$inline_form['form'] = [];
$inline_form = parent::buildInlineForm($inline_form, $form_state);
// NestedArray::setValue() crashes when switching between two plugins
// that share a configuration element of the same name, but not the
// same type (e.g. "amount" of type number/commerce_price).
// Configuration must be keyed by plugin ID in $form_state to prevent
// that, either on this level, or in a parent form element.
if ($this->configuration['enforce_unique_parents']) {
$inline_form['form']['#parents'] = array_merge($inline_form['#parents'], [
$this->configuration['plugin_id'],
]);
}
$plugin = $this->pluginManager
->createInstance($this->configuration['plugin_id'], $this->configuration['plugin_configuration']);
$inline_form['form'] = $plugin
->buildConfigurationForm($inline_form['form'], $form_state);
return $inline_form;
}