3 namespace Drupal\search_api_synonym\Form;
5 use Drupal\Core\Entity\ContentEntityForm;
6 use Drupal\Core\Form\FormStateInterface;
9 * Form controller for Synonym edit forms.
11 * @ingroup search_api_synonym
13 class SynonymForm extends ContentEntityForm {
18 public function buildForm(array $form, FormStateInterface $form_state) {
19 // Trim whitespaces from synonyms and save back into the form state.
20 /* @var \Drupal\search_api_synonym\SynonymInterface $entity */
21 $entity = $this->entity;
22 $synonyms = $entity->getSynonymsFormatted();
23 if (!empty($synonyms)) {
24 $entity->setSynonyms($synonyms);
27 return parent::buildForm($form, $form_state);
33 public function save(array $form, FormStateInterface $form_state) {
34 // Trim whitespaces from synonyms and save back into the form state.
35 /* @var \Drupal\search_api_synonym\SynonymInterface $entity */
36 $entity = $this->entity;
37 $trimmed = array_map('trim', explode(',', $entity->getSynonyms()));
38 $entity->setSynonyms(implode(',', $trimmed));
41 $status = parent::save($form, $form_state);
45 drupal_set_message($this->t('Created the %label Synonym.', [
46 '%label' => $entity->label(),
51 drupal_set_message($this->t('Saved the %label Synonym.', [
52 '%label' => $entity->label(),
56 $form_state->setRedirect($entity->toUrl('collection')->getRouteName());