You are here

public function XmlSitemapEntitiesSettingsForm::submitForm in XML sitemap 2.x

Same name and namespace in other branches
  1. 8 src/Form/XmlSitemapEntitiesSettingsForm.php \Drupal\xmlsitemap\Form\XmlSitemapEntitiesSettingsForm::submitForm()

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 ConfigFormBase::submitForm

File

src/Form/XmlSitemapEntitiesSettingsForm.php, line 184

Class

XmlSitemapEntitiesSettingsForm
Configure what entities will be included in sitemap.

Namespace

Drupal\xmlsitemap\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  $bundles = $this->entityTypeBundleInfo
    ->getAllBundleInfo();
  $values = $form_state
    ->getValues();
  $entity_values = $values['entity_types'];
  foreach ($entity_values as $key => $value) {
    if ($value) {
      foreach ($bundles[$key] as $bundle_key => $bundle_value) {
        if (!$values['settings'][$key]['types'][$bundle_key]) {
          xmlsitemap_link_bundle_delete($key, $bundle_key, TRUE);
        }
        elseif (!xmlsitemap_link_bundle_check_enabled($key, $bundle_key)) {
          xmlsitemap_link_bundle_enable($key, $bundle_key);
        }
      }
    }
    else {
      foreach ($bundles[$key] as $bundle_key => $bundle_value) {
        xmlsitemap_link_bundle_delete($key, $bundle_key, TRUE);
      }
    }
  }
  $this->state
    ->set('xmlsitemap_regenerate_needed', TRUE);
  parent::submitForm($form, $form_state);
}