/** * {@inheritdoc} */ public function save(array $form, FormStateInterface $form_state) { if (!$form_state->hasValue('context')) { $form_state->setValue('context', xmlsitemap_get_current_context()); } if ($form_state->hasValue(['context', 'language'])) { $language = $form_state->getValue(['context', 'language']); if ($language == LanguageInterface::LANGCODE_NOT_SPECIFIED) { $form_state->unsetValue(['context', 'language']); } } $context = $form_state->getValue('context'); $this->entity->context = $context; $this->entity->label = $form_state->getValue('label'); $this->entity->id = xmlsitemap_sitemap_get_context_hash($context); try { $status = $this->entity->save(); if ($status == SAVED_NEW) { drupal_set_message($this->t('Saved the %label sitemap.', array('%label' => $this->entity->label()))); } else { if ($status == SAVED_UPDATED) { drupal_set_message($this->t('Updated the %label sitemap.', array('%label' => $this->entity->label()))); } } } catch (EntityStorageException $ex) { drupal_set_message($this->t('There is another sitemap saved with the same context.'), 'error'); } $form_state->setRedirect('xmlsitemap.admin_search'); }
/** * {@inheritdoc} */ public function loadByContext(array $context = NULL) { if (!isset($context)) { $context = xmlsitemap_get_current_context(); } $sitemaps = $this->loadMultiple(); foreach ($sitemaps as $sitemap) { if ($sitemap->context == $context) { return $sitemap; } } return NULL; }