public function Subscriptions::submitForm in Message Subscribe 8
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
- message_subscribe_ui/
src/ Plugin/ Block/ Subscriptions.php, line 241
Class
- Subscriptions
- An entity subscriptions block.
Namespace
Drupal\message_subscribe_ui\Plugin\BlockCode
public function submitForm(array &$form, FormStateInterface $form_state) {
foreach ($form_state
->getValue('subscriptions') as $entity_type => $entities) {
foreach ($entities as $entity_id => $subscribe) {
/** @var \Drupal\flag\FlagInterface[] $flags */
$flags = $form['subscriptions'][$entity_type][$entity_id]['#flags'];
$entity = $form['subscriptions'][$entity_type][$entity_id]['#entity'];
foreach ($flags as $flag) {
try {
if ($subscribe) {
$this->flagService
->flag($flag, $entity, $this->currentUser);
}
else {
$this->flagService
->unflag($flag, $entity, $this->currentUser);
}
} catch (\LogicException $e) {
// User was either already unsubscribed, or subscribed.
}
}
}
}
}