protected function SubscriptionsFormBase::actions in Simplenews 8
Same name and namespace in other branches
- 8.2 src/Form/SubscriptionsFormBase.php \Drupal\simplenews\Form\SubscriptionsFormBase::actions()
- 3.x src/Form/SubscriptionsFormBase.php \Drupal\simplenews\Form\SubscriptionsFormBase::actions()
Returns an array of supported actions for the current entity form.
This function generates a list of Form API elements which represent actions supported by the current entity form.
@todo Consider introducing a 'preview' action here, since it is used by many entity types.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
array An array of supported Form API action elements keyed by name.
Overrides EntityForm::actions
2 calls to SubscriptionsFormBase::actions()
- SubscriptionsBlockForm::actions in src/
Form/ SubscriptionsBlockForm.php - Returns an array of supported actions for the current entity form.
- SubscriptionsPageForm::actions in src/
Form/ SubscriptionsPageForm.php - Returns an array of supported actions for the current entity form.
2 methods override SubscriptionsFormBase::actions()
- SubscriptionsBlockForm::actions in src/
Form/ SubscriptionsBlockForm.php - Returns an array of supported actions for the current entity form.
- SubscriptionsPageForm::actions in src/
Form/ SubscriptionsPageForm.php - Returns an array of supported actions for the current entity form.
File
- src/
Form/ SubscriptionsFormBase.php, line 156
Class
- SubscriptionsFormBase
- Entity form for Subscriber with common routines.
Namespace
Drupal\simplenews\FormCode
protected function actions(array $form, FormStateInterface $form_state) {
// There are two main cases of subscriptions forms:
// - An authenticated subscriber updating existing subscriptions. The main
// case is a logged in user, but it could also be an anonymous
// subscription authenticated by means of a hash. In both cases, the
// email address is set.
// - An unauthenticated user who enters an email address in the form and
// requests to subscribe or unsubscribe. In this case the email address
// is not set.
$has_widget = !$this
->getSubscriptionWidget($form_state)
->isHidden();
$has_mail = (bool) $this->entity
->getMail();
$actions = parent::actions($form, $form_state);
if ($has_mail && $has_widget) {
// When authenticated with a widget, show a single update button. The
// user can check or uncheck newsletters then submit.
$actions[static::SUBMIT_UPDATE] = $actions['submit'];
$actions[static::SUBMIT_UPDATE]['#submit'][] = '::submitUpdate';
}
else {
// When not authenticated, show subscribe and unsubscribe buttons. The
// user can check which newsletters to alter.
//
// The final case is when authenticated with no widget which is for a
// form that applies to a single newsletter. In this case there will be a
// single button either subscribe or unsubscribe depending on the current
// subscription state.
if ($has_widget || !$this->entity
->isSubscribed($this
->getOnlyNewsletterId())) {
// Subscribe button.
$actions[static::SUBMIT_SUBSCRIBE] = $actions['submit'];
$actions[static::SUBMIT_SUBSCRIBE]['#value'] = t('Subscribe');
$actions[static::SUBMIT_SUBSCRIBE]['#submit'][] = '::submitSubscribe';
}
if ($has_widget || $this->entity
->isSubscribed($this
->getOnlyNewsletterId())) {
// Unsubscribe button.
$actions[static::SUBMIT_UNSUBSCRIBE] = $actions['submit'];
$actions[static::SUBMIT_UNSUBSCRIBE]['#value'] = t('Unsubscribe');
$actions[static::SUBMIT_UNSUBSCRIBE]['#submit'][] = '::submitUnsubscribe';
}
}
unset($actions['submit']);
if (!$this->allowDelete) {
unset($actions['delete']);
}
return $actions;
}