public function FeaturesEditForm::submitForm in Features 8.3
Same name and namespace in other branches
- 8.4 modules/features_ui/src/Form/FeaturesEditForm.php \Drupal\features_ui\Form\FeaturesEditForm::submitForm()
Form submission handler.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Overrides FormInterface::submitForm
File
- modules/
features_ui/ src/ Form/ FeaturesEditForm.php, line 966
Class
- FeaturesEditForm
- Defines the features settings form.
Namespace
Drupal\features_ui\FormCode
public function submitForm(array &$form, FormStateInterface $form_state) {
$bundle = $this->assigner
->getBundle($this->bundle);
$this->assigner
->assignConfigPackages();
$this->package
->setName($form_state
->getValue('name'));
$this->package
->setMachineName($form_state
->getValue('machine_name'));
$this->package
->setDescription($form_state
->getValue('description'));
$this->package
->setVersion($form_state
->getValue('version'));
$this->package
->setDirectory($form_state
->getValue('directory'));
$this->package
->setBundle($bundle
->getMachineName());
// Save it first just to create it in case it's a new package.
$this->featuresManager
->setPackage($this->package);
$config = $this
->updatePackageConfig($form_state);
$this->featuresManager
->assignConfigPackage($this->package
->getMachineName(), $config, TRUE);
$this->package
->setExcluded($this
->updateExcluded());
if ($form_state
->getValue('require_all')) {
$this->package
->setRequired(TRUE);
}
else {
$required = $this
->updateRequired();
$this->package
->setRequired($required);
}
// Now save it with the selected config data.
$this->featuresManager
->setPackage($this->package);
$method_id = NULL;
$trigger = $form_state
->getTriggeringElement();
$op = $form_state
->getValue('op');
if (!empty($trigger) && empty($op)) {
$method_id = $trigger['#name'];
}
// Set default redirect, but allow generators to change it later.
$form_state
->setRedirect('features.edit', [
'featurename' => $this->package
->getMachineName(),
]);
if ($method_id == 'import_missing') {
$this
->importMissing();
}
elseif (!empty($method_id)) {
$packages = [
$this->package
->getMachineName(),
];
$this->generator
->generatePackages($method_id, $bundle, $packages);
$this->generator
->applyExportFormSubmit($method_id, $form, $form_state);
}
$this->assigner
->setCurrent($bundle);
}