ShortcutSetForm.php

Same filename in other branches
  1. 9 core/modules/shortcut/src/ShortcutSetForm.php
  2. 8.9.x core/modules/shortcut/src/ShortcutSetForm.php
  3. 10 core/modules/shortcut/src/ShortcutSetForm.php

Namespace

Drupal\shortcut

File

core/modules/shortcut/src/ShortcutSetForm.php

View source
<?php

namespace Drupal\shortcut;

use Drupal\Core\Entity\BundleEntityFormBase;
use Drupal\Core\Form\FormStateInterface;

/**
 * Form handler for the shortcut set entity edit forms.
 *
 * @internal
 */
class ShortcutSetForm extends BundleEntityFormBase {
    
    /**
     * {@inheritdoc}
     */
    public function form(array $form, FormStateInterface $form_state) {
        $form = parent::form($form, $form_state);
        $entity = $this->entity;
        $form['label'] = [
            '#type' => 'textfield',
            '#title' => $this->t('Set name'),
            '#description' => $this->t('The new set is created by copying links from your default shortcut set.'),
            '#required' => TRUE,
            '#default_value' => $entity->label(),
        ];
        $form['id'] = [
            '#type' => 'machine_name',
            '#machine_name' => [
                'exists' => '\\Drupal\\shortcut\\Entity\\ShortcutSet::load',
                'source' => [
                    'label',
                ],
                'replace_pattern' => '[^a-z0-9-]+',
                'replace' => '-',
            ],
            '#default_value' => $entity->id(),
            // This id could be used for menu name.
'#maxlength' => 23,
        ];
        $form['actions']['submit']['#value'] = $this->t('Create new set');
        return $this->protectBundleIdElement($form);
    }
    
    /**
     * {@inheritdoc}
     */
    public function save(array $form, FormStateInterface $form_state) {
        $entity = $this->entity;
        $is_new = !$entity->getOriginalId();
        $entity->save();
        if ($is_new) {
            $this->messenger()
                ->addStatus($this->t('The %set_name shortcut set has been created. You can edit it from this page.', [
                '%set_name' => $entity->label(),
            ]));
        }
        else {
            $this->messenger()
                ->addStatus($this->t('Updated set name to %set-name.', [
                '%set-name' => $entity->label(),
            ]));
        }
        $form_state->setRedirectUrl($this->entity
            ->toUrl('customize-form'));
    }

}

Classes

Title Deprecated Summary
ShortcutSetForm Form handler for the shortcut set entity edit forms.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.