class ConfirmFormHelper

Same name in other branches
  1. 9 core/lib/Drupal/Core/Form/ConfirmFormHelper.php \Drupal\Core\Form\ConfirmFormHelper
  2. 8.9.x core/lib/Drupal/Core/Form/ConfirmFormHelper.php \Drupal\Core\Form\ConfirmFormHelper
  3. 11.x core/lib/Drupal/Core/Form/ConfirmFormHelper.php \Drupal\Core\Form\ConfirmFormHelper

Provides common functionality to confirmation forms.

Hierarchy

Expanded class hierarchy of ConfirmFormHelper

3 files declare their use of ConfirmFormHelper
ConfirmFormHelperTest.php in core/tests/Drupal/Tests/Core/Form/ConfirmFormHelperTest.php
ContentEntityConfirmFormBase.php in core/lib/Drupal/Core/Entity/ContentEntityConfirmFormBase.php
EntityConfirmFormBase.php in core/lib/Drupal/Core/Entity/EntityConfirmFormBase.php

File

core/lib/Drupal/Core/Form/ConfirmFormHelper.php, line 12

Namespace

Drupal\Core\Form
View source
class ConfirmFormHelper {
    
    /**
     * Builds the cancel link for a confirmation form.
     *
     * @param \Drupal\Core\Form\ConfirmFormInterface $form
     *   The confirmation form.
     * @param \Symfony\Component\HttpFoundation\Request $request
     *   The current request.
     *
     * @return array
     *   The link render array for the cancel form.
     */
    public static function buildCancelLink(ConfirmFormInterface $form, Request $request) {
        // Prepare cancel link.
        $query = $request->query;
        $url = NULL;
        // If a destination is specified, that serves as the cancel link.
        if ($query->has('destination')) {
            $options = UrlHelper::parse($query->get('destination'));
            // @todo Revisit this in https://www.drupal.org/node/2418219.
            try {
                $url = Url::fromUserInput('/' . ltrim($options['path'], '/'), $options);
            } catch (\InvalidArgumentException $e) {
                // Suppress the exception and fall back to the form's cancel URL.
            }
        }
        // Check for a route-based cancel link.
        if (!$url) {
            $url = $form->getCancelUrl();
        }
        return [
            '#type' => 'link',
            '#title' => $form->getCancelText(),
            '#attributes' => [
                'class' => [
                    'button',
                    'dialog-cancel',
                ],
            ],
            '#url' => $url,
            '#cache' => [
                'contexts' => [
                    'url.query_args:destination',
                ],
            ],
        ];
    }

}

Members

Title Sort descending Modifiers Object type Summary
ConfirmFormHelper::buildCancelLink public static function Builds the cancel link for a confirmation form.

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