You are here

public static function WebformMessage::setClosed in Webform 8.5

Same name and namespace in other branches
  1. 6.x src/Element/WebformMessage.php \Drupal\webform\Element\WebformMessage::setClosed()

Set message closed via User Data, State API, or Custom.

Parameters

string $storage: The storage mechanism save message closed.

string $id: The ID of the message.

See also

\Drupal\webform\Controller\WebformElementController::close

1 call to WebformMessage::setClosed()
WebformElementController::close in src/Controller/WebformElementController.php
Returns response for message close using user or state storage.

File

src/Element/WebformMessage.php, line 205

Class

WebformMessage
Provides a render element for message.

Namespace

Drupal\webform\Element

Code

public static function setClosed($storage, $id) {
  $account = \Drupal::currentUser();
  $namespace = 'webform.element.message';
  switch ($storage) {
    case static::STORAGE_STATE:

      /** @var \Drupal\Core\State\StateInterface $state */
      $state = \Drupal::service('state');
      $values = $state
        ->get($namespace, []);
      $values[$id] = TRUE;
      $state
        ->set($namespace, $values);
      break;
    case static::STORAGE_USER:

      /** @var \Drupal\user\UserDataInterface $user_data */
      $user_data = \Drupal::service('user.data');
      $values = $user_data
        ->get('webform', $account
        ->id(), $namespace) ?: [];
      $values[$id] = TRUE;
      $user_data
        ->set('webform', $account
        ->id(), $namespace, $values);
      break;
    case static::STORAGE_CUSTOM:
      \Drupal::moduleHandler()
        ->invokeAll('webform_message_custom', [
        'close',
        $id,
      ]);
      break;
  }
}