You are here

trait ContentTranslationRedirectFormTrait in Content Translation Redirect 8

Provides code for redirect settings form.

Hierarchy

File

src/Form/ContentTranslationRedirectFormTrait.php, line 8

Namespace

Drupal\content_translation_redirect\Form
View source
trait ContentTranslationRedirectFormTrait {

  /**
   * Form elements for redirect settings.
   *
   * @param array $settings
   *   The redirect settings.
   * @param bool $default
   *   Is default settings (TRUE) or bundle settings (FALSE).
   *
   * @return array
   *   The form structure.
   */
  protected function redirectSettingsForm(array $settings, $default = FALSE) {

    // Is default settings.
    if ($default) {
      $status_code_options = $this
        ->getStatusCodeOptions();
      $message_description = $this
        ->t('Leave blank to not display the message. You can use <i>%language</i> to display the name of the language.');
    }
    else {
      $status_code_options = [
        '' => $this
          ->t('- Use default -'),
      ] + $this
        ->getStatusCodeOptions();
      $message_description = $this
        ->t('Leave blank to use the default value. You can use <i>%language</i> to display the name of the language.');
    }

    // Redirect status code.
    $form['code'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Redirect status'),
      '#options' => $status_code_options,
      '#default_value' => isset($settings['code']) ? $settings['code'] : '',
    ];

    // Message after redirection.
    $form['message'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Message after redirection'),
      '#description' => $message_description,
      '#default_value' => isset($settings['message']) ? $settings['message'] : '',
    ];
    return $form;
  }

  /**
   * Redirect status codes.
   *
   * @return array
   *   Redirect status codes.
   */
  protected function getStatusCodeOptions() {
    return [
      300 => $this
        ->t('300 Multiple Choices'),
      301 => $this
        ->t('301 Moved Permanently'),
      302 => $this
        ->t('302 Found'),
      303 => $this
        ->t('303 See Other'),
      304 => $this
        ->t('304 Not Modified'),
      305 => $this
        ->t('305 Use Proxy'),
      307 => $this
        ->t('307 Temporary Redirect'),
    ];
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ContentTranslationRedirectFormTrait::getStatusCodeOptions protected function Redirect status codes.
ContentTranslationRedirectFormTrait::redirectSettingsForm protected function Form elements for redirect settings.