You are here

public function CampaignMonitorNodeSettingsForm::submitForm in Campaign Monitor 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

modules/campaignmonitor_campaign/src/Form/CampaignMonitorNodeSettingsForm.php, line 93

Class

CampaignMonitorNodeSettingsForm
Node Access settings form.

Namespace

Drupal\campaignmonitor_campaign\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  $values = $form_state
    ->getValues();
  $storage = $form_state
    ->getStorage();
  $node_type = $storage['node_type'];

  // Update content access settings.
  $settings = campaignmonitor_campaign_get_node_settings('all', $node_type);
  foreach (campaignmonitor_campaign_available_settings() as $setting) {
    if (isset($values[$setting])) {
      $settings[$setting] = is_array($values[$setting]) ? array_keys(array_filter($values[$setting])) : $values[$setting];
    }
  }
  campaignmonitor_campaign_set_node_settings($settings, $node_type);
  $caches = [
    'cache.menu',
    'cache.render',
  ];
  $module_handler = \Drupal::moduleHandler();

  // Flush entity and render persistent caches.
  $module_handler
    ->invokeAll('cache_flush');
  foreach (Cache::getBins() as $service_id => $cache_backend) {
    if (in_array($cache_backend->_serviceId, $caches)) {
      $cache_backend
        ->deleteAll();
    }
  }
  drupal_set_message(t('Your changes have been saved.'));
}