public function ObjectAttributesAddFormBase::submitForm in Ubercart 8.4
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
2 calls to ObjectAttributesAddFormBase::submitForm()
- ProductAttributesAddForm::submitForm in uc_attribute/
src/ Form/ ProductAttributesAddForm.php - Form submission handler.
- ProductClassAttributesAddForm::submitForm in uc_attribute/
src/ Form/ ProductClassAttributesAddForm.php - Form submission handler.
2 methods override ObjectAttributesAddFormBase::submitForm()
- ProductAttributesAddForm::submitForm in uc_attribute/
src/ Form/ ProductAttributesAddForm.php - Form submission handler.
- ProductClassAttributesAddForm::submitForm in uc_attribute/
src/ Form/ ProductClassAttributesAddForm.php - Form submission handler.
File
- uc_attribute/
src/ Form/ ObjectAttributesAddFormBase.php, line 98
Class
- ObjectAttributesAddFormBase
- Defines the class/product attributes add form.
Namespace
Drupal\uc_attribute\FormCode
public function submitForm(array &$form, FormStateInterface $form_state) {
foreach (array_filter($form_state
->getValue('add_attributes')) as $aid) {
// Enable all options for added attributes.
$attribute = uc_attribute_load($aid);
$oid = 0;
if (isset($attribute->options)) {
foreach ($attribute->options as $option) {
$option->{$this->idField} = $this->idValue;
unset($option->name);
unset($option->aid);
\Drupal::database()
->insert($this->optionTable)
->fields((array) $option)
->execute();
}
// Make the first option (if any) the default.
if ($option = reset($attribute->options)) {
$oid = $option->oid;
}
}
$select = \Drupal::database()
->select('uc_attributes', 'a')
->condition('aid', $aid);
$select
->addExpression(':id', $this->idField, [
':id' => $this->idValue,
]);
$select
->addField('a', 'aid');
$select
->addField('a', 'label');
$select
->addField('a', 'ordering');
$select
->addExpression(':oid', 'default_option', [
':oid' => $oid,
]);
$select
->addField('a', 'required');
$select
->addField('a', 'display');
\Drupal::database()
->insert($this->attributeTable)
->from($select)
->execute();
}
$num = count(array_filter($form_state
->getValue('add_attributes')));
if ($num > 0) {
$this
->attributesAdded();
$this
->messenger()
->addMessage($this
->formatPlural($num, '1 attribute has been added.', '@count attributes have been added.'));
}
}