function SessionExampleForm::buildForm

Same name in other branches
  1. 8.x-1.x session_example/src/Form/SessionExampleForm.php \Drupal\session_example\Form\SessionExampleForm::buildForm()
  2. 4.0.x modules/session_example/src/Form/SessionExampleForm.php \Drupal\session_example\Form\SessionExampleForm::buildForm()

Overrides FormInterface::buildForm

File

modules/session_example/src/Form/SessionExampleForm.php, line 75

Class

SessionExampleForm
Form to allow the user to store information in their session.

Namespace

Drupal\session_example\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
    $form['description'] = [
        '#type' => 'item',
        '#title' => $this->t('Session Data Form'),
        '#markup' => $this->t('In this example form, data that you enter into the form will be saved into your session data, which persists until you log out of Drupal.'),
    ];
    $form['name'] = [
        '#type' => 'textfield',
        '#title' => $this->t('Name'),
        '#placeholder' => $this->t('Your name.'),
        '#default_value' => $this->session
            ->get('session_example.name', ''),
    ];
    $form['email'] = [
        '#type' => 'textfield',
        '#title' => $this->t('Email'),
        '#placeholder' => $this->t('Your email address.'),
        '#default_value' => $this->session
            ->get('session_example.email', ''),
    ];
    $form['quest'] = [
        '#type' => 'textfield',
        '#title' => $this->t('Quest'),
        '#placeholder' => $this->t('What is your quest?'),
        '#default_value' => $this->session
            ->get('session_example.quest', ''),
    ];
    $form['color'] = [
        '#type' => 'select',
        '#title' => $this->t('Favorite Color'),
        '#options' => [
            '' => $this->t('--'),
            'red' => $this->t('Red'),
            'blue' => $this->t('Blue'),
            'yellow' => $this->t('Yellow'),
            'argggh' => $this->t('Argggghhh!!'),
        ],
        '#default_value' => $this->session
            ->get('session_example.color', ''),
        '#description' => $this->t('What is your favorite color?'),
    ];
    $form['save'] = [
        '#type' => 'submit',
        '#value' => $this->t('Save'),
    ];
    $form['reset'] = [
        '#type' => 'submit',
        '#value' => $this->t('Clear Session'),
        '#submit' => [
            '::submitClearSession',
        ],
    ];
    return $form;
}