Issue #3067196 by Berdir, alexpott: Properly deprecate LinkGeneratorTrait
							parent
							
								
									c12498bd9e
								
							
						
					
					
						commit
						942682afb9
					
				| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
namespace Drupal\Core;
 | 
			
		||||
 | 
			
		||||
use Drupal\Core\Render\RenderableInterface;
 | 
			
		||||
use Drupal\Core\Routing\LinkGeneratorTrait;
 | 
			
		||||
use Drupal\Core\Utility\LinkGeneratorInterface;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Defines an object that holds information about a link.
 | 
			
		||||
| 
						 | 
				
			
			@ -11,9 +11,11 @@ use Drupal\Core\Routing\LinkGeneratorTrait;
 | 
			
		|||
class Link implements RenderableInterface {
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * @deprecated in Drupal 8.0.x-dev, will be removed before Drupal 9.0.0.
 | 
			
		||||
   * The link generator.
 | 
			
		||||
   *
 | 
			
		||||
   * @var \Drupal\Core\Utility\LinkGeneratorInterface
 | 
			
		||||
   */
 | 
			
		||||
  use LinkGeneratorTrait;
 | 
			
		||||
  protected $linkGenerator;
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * The text of the link.
 | 
			
		||||
| 
						 | 
				
			
			@ -147,4 +149,31 @@ class Link implements RenderableInterface {
 | 
			
		|||
    ];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Returns the link generator.
 | 
			
		||||
   *
 | 
			
		||||
   * @return \Drupal\Core\Utility\LinkGeneratorInterface
 | 
			
		||||
   *   The link generator
 | 
			
		||||
   */
 | 
			
		||||
  protected function getLinkGenerator() {
 | 
			
		||||
    if (!isset($this->linkGenerator)) {
 | 
			
		||||
      $this->linkGenerator = \Drupal::service('link_generator');
 | 
			
		||||
    }
 | 
			
		||||
    return $this->linkGenerator;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Sets the link generator service.
 | 
			
		||||
   *
 | 
			
		||||
   * @param \Drupal\Core\Utility\LinkGeneratorInterface $generator
 | 
			
		||||
   *   The link generator service.
 | 
			
		||||
   *
 | 
			
		||||
   * @return $this
 | 
			
		||||
   */
 | 
			
		||||
  public function setLinkGenerator(LinkGeneratorInterface $generator) {
 | 
			
		||||
    $this->linkGenerator = $generator;
 | 
			
		||||
 | 
			
		||||
    return $this;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@ use Symfony\Component\HttpFoundation\RequestStack;
 | 
			
		|||
 * @see \Psr\Log\LoggerInterface
 | 
			
		||||
 * @see \Drupal\Core\Logger\\LoggerChannelFactoryInterface
 | 
			
		||||
 * @see \Drupal\Core\Utility\LinkGeneratorInterface
 | 
			
		||||
 * @see \Drupal\Core\Routing\LinkGeneratorTrait::l()
 | 
			
		||||
 * @see \Drupal\Core\Link::fromTextAndUrl()
 | 
			
		||||
 * @see \Drupal\Core\Entity\EntityInterface::link()
 | 
			
		||||
 */
 | 
			
		||||
interface LoggerChannelInterface extends LoggerInterface {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,13 +37,14 @@ trait LinkGeneratorTrait {
 | 
			
		|||
   *   A GeneratedLink object containing a link to the given route and
 | 
			
		||||
   *   parameters and bubbleable metadata.
 | 
			
		||||
   *
 | 
			
		||||
   * @deprecated in Drupal 8.0.0 and will be removed before Drupal 9.0.0.
 | 
			
		||||
   *   Use \Drupal\Core\Link instead.
 | 
			
		||||
   * @deprecated in drupal:8.0.0 and is removed from drupal:9.0.0. Use
 | 
			
		||||
   *   \Drupal\Core\Link::fromTextAndUrl() instead.
 | 
			
		||||
   *
 | 
			
		||||
   * @see https://www.drupal.org/node/2614344
 | 
			
		||||
   * @see \Drupal\Core\Utility\LinkGeneratorInterface::generate()
 | 
			
		||||
   */
 | 
			
		||||
  protected function l($text, Url $url) {
 | 
			
		||||
    @trigger_error(__NAMESPACE__ . "\LinkGeneratorTrait::l() is deprecated in drupal:8.0.0 and is removed from drupal:9.0.0. Use \Drupal\Core\Link::fromTextAndUrl() instead. See https://www.drupal.org/node/2614344", E_USER_DEPRECATED);
 | 
			
		||||
    return $this->getLinkGenerator()->generate($text, $url);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -52,8 +53,14 @@ trait LinkGeneratorTrait {
 | 
			
		|||
   *
 | 
			
		||||
   * @return \Drupal\Core\Utility\LinkGeneratorInterface
 | 
			
		||||
   *   The link generator
 | 
			
		||||
   *
 | 
			
		||||
   * @deprecated in drupal:8.0.0 and is removed from drupal:9.0.0. Inject the
 | 
			
		||||
   *   'link_generator' service or use \Drupal\Core\Link instead
 | 
			
		||||
   *
 | 
			
		||||
   * @see https://www.drupal.org/node/2614344
 | 
			
		||||
   */
 | 
			
		||||
  protected function getLinkGenerator() {
 | 
			
		||||
    @trigger_error(__NAMESPACE__ . "\LinkGeneratorTrait::getLinkGenerator() is deprecated in drupal:8.0.0 and is removed from drupal:9.0.0. Inject the 'link_generator' service or use \Drupal\Core\Link instead. See https://www.drupal.org/node/2614344", E_USER_DEPRECATED);
 | 
			
		||||
    if (!isset($this->linkGenerator)) {
 | 
			
		||||
      $this->linkGenerator = \Drupal::service('link_generator');
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -67,8 +74,14 @@ trait LinkGeneratorTrait {
 | 
			
		|||
   *   The link generator service.
 | 
			
		||||
   *
 | 
			
		||||
   * @return $this
 | 
			
		||||
   *
 | 
			
		||||
   * @deprecated in drupal:8.0.0 and is removed from drupal:9.0.0. Inject the
 | 
			
		||||
   *   'link_generator' service or use \Drupal\Core\Link instead
 | 
			
		||||
   *
 | 
			
		||||
   * @see https://www.drupal.org/node/2614344
 | 
			
		||||
   */
 | 
			
		||||
  public function setLinkGenerator(LinkGeneratorInterface $generator) {
 | 
			
		||||
    @trigger_error(__NAMESPACE__ . "\LinkGeneratorTrait::setLinkGenerator() is deprecated in drupal:8.0.0 and is removed from drupal:9.0.0. Inject the 'link_generator' service or use \Drupal\Core\Link instead. See https://www.drupal.org/node/2614344", E_USER_DEPRECATED);
 | 
			
		||||
    $this->linkGenerator = $generator;
 | 
			
		||||
 | 
			
		||||
    return $this;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,7 @@ namespace Drupal\aggregator;
 | 
			
		|||
 | 
			
		||||
use Drupal\Core\Entity\ContentEntityForm;
 | 
			
		||||
use Drupal\Core\Form\FormStateInterface;
 | 
			
		||||
use Drupal\Core\Link;
 | 
			
		||||
use Drupal\Core\Url;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -26,7 +27,7 @@ class FeedForm extends ContentEntityForm {
 | 
			
		|||
      $form_state->setRedirectUrl($feed->toUrl('canonical'));
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
      $this->logger('aggregator')->notice('Feed %feed added.', ['%feed' => $feed->label(), 'link' => $this->l($this->t('View'), new Url('aggregator.admin_overview'))]);
 | 
			
		||||
      $this->logger('aggregator')->notice('Feed %feed added.', ['%feed' => $feed->label(), 'link' => Link::fromTextAndUrl($this->t('View'), new Url('aggregator.admin_overview'))->toString()]);
 | 
			
		||||
      $this->messenger()->addStatus($this->t('The feed %feed has been added.', ['%feed' => $view_link]));
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,6 +5,7 @@ namespace Drupal\book\Controller;
 | 
			
		|||
use Drupal\book\BookExport;
 | 
			
		||||
use Drupal\book\BookManagerInterface;
 | 
			
		||||
use Drupal\Core\Controller\ControllerBase;
 | 
			
		||||
use Drupal\Core\Link;
 | 
			
		||||
use Drupal\Core\Render\RendererInterface;
 | 
			
		||||
use Drupal\Core\Url;
 | 
			
		||||
use Drupal\node\NodeInterface;
 | 
			
		||||
| 
						 | 
				
			
			@ -84,7 +85,7 @@ class BookController extends ControllerBase {
 | 
			
		|||
        $url->setOptions($book['options']);
 | 
			
		||||
      }
 | 
			
		||||
      $row = [
 | 
			
		||||
        $this->l($book['title'], $url),
 | 
			
		||||
        Link::fromTextAndUrl($book['title'], $url),
 | 
			
		||||
      ];
 | 
			
		||||
      $links = [];
 | 
			
		||||
      $links['edit'] = [
 | 
			
		||||
| 
						 | 
				
			
			@ -116,7 +117,7 @@ class BookController extends ControllerBase {
 | 
			
		|||
  public function bookRender() {
 | 
			
		||||
    $book_list = [];
 | 
			
		||||
    foreach ($this->bookManager->getAllBooks() as $book) {
 | 
			
		||||
      $book_list[] = $this->l($book['title'], $book['url']);
 | 
			
		||||
      $book_list[] = Link::fromTextAndUrl($book['title'], $book['url']);
 | 
			
		||||
    }
 | 
			
		||||
    return [
 | 
			
		||||
      '#theme' => 'item_list',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,6 +13,7 @@ use Drupal\Core\Entity\EntityFieldManagerInterface;
 | 
			
		|||
use Drupal\Core\Entity\EntityRepositoryInterface;
 | 
			
		||||
use Drupal\Core\Entity\EntityTypeBundleInfoInterface;
 | 
			
		||||
use Drupal\Core\Form\FormStateInterface;
 | 
			
		||||
use Drupal\Core\Link;
 | 
			
		||||
use Drupal\Core\Render\RendererInterface;
 | 
			
		||||
use Drupal\Core\Session\AccountInterface;
 | 
			
		||||
use Symfony\Component\DependencyInjection\ContainerInterface;
 | 
			
		||||
| 
						 | 
				
			
			@ -379,7 +380,7 @@ class CommentForm extends ContentEntityForm {
 | 
			
		|||
      // Add a log entry.
 | 
			
		||||
      $logger->notice('Comment posted: %subject.', [
 | 
			
		||||
          '%subject' => $comment->getSubject(),
 | 
			
		||||
          'link' => $this->l(t('View'), $comment->toUrl()->setOption('fragment', 'comment-' . $comment->id())),
 | 
			
		||||
          'link' => Link::fromTextAndUrl(t('View'), $comment->toUrl()->setOption('fragment', 'comment-' . $comment->id()))->toString(),
 | 
			
		||||
        ]);
 | 
			
		||||
 | 
			
		||||
      // Explain the approval queue if necessary.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,7 @@ use Drupal\Core\Controller\ControllerBase;
 | 
			
		|||
use Drupal\Core\Entity\ContentEntityInterface;
 | 
			
		||||
use Drupal\Core\Entity\EntityFieldManagerInterface;
 | 
			
		||||
use Drupal\Core\Language\LanguageInterface;
 | 
			
		||||
use Drupal\Core\Link;
 | 
			
		||||
use Drupal\Core\Routing\RouteMatchInterface;
 | 
			
		||||
use Drupal\Core\Url;
 | 
			
		||||
use Symfony\Component\DependencyInjection\ContainerInterface;
 | 
			
		||||
| 
						 | 
				
			
			@ -189,7 +190,7 @@ class ContentTranslationController extends ControllerBase {
 | 
			
		|||
          $link = isset($links->links[$langcode]['url']) ? $links->links[$langcode] : ['url' => $entity->toUrl()];
 | 
			
		||||
          if (!empty($link['url'])) {
 | 
			
		||||
            $link['url']->setOption('language', $language);
 | 
			
		||||
            $row_title = $this->l($label, $link['url']);
 | 
			
		||||
            $row_title = Link::fromTextAndUrl($label, $link['url'])->toString();
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          if (empty($link['url'])) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -188,14 +188,14 @@ class DbLogController extends ControllerBase {
 | 
			
		|||
        $log_text = Unicode::truncate($title, 56, TRUE, TRUE);
 | 
			
		||||
        // The link generator will escape any unsafe HTML entities in the final
 | 
			
		||||
        // text.
 | 
			
		||||
        $message = $this->l($log_text, new Url('dblog.event', ['event_id' => $dblog->wid], [
 | 
			
		||||
        $message = Link::fromTextAndUrl($log_text, new Url('dblog.event', ['event_id' => $dblog->wid], [
 | 
			
		||||
          'attributes' => [
 | 
			
		||||
            // Provide a title for the link for useful hover hints. The
 | 
			
		||||
            // Attribute object will escape any unsafe HTML entities in the
 | 
			
		||||
            // final text.
 | 
			
		||||
            'title' => $title,
 | 
			
		||||
          ],
 | 
			
		||||
        ]));
 | 
			
		||||
        ]))->toString();
 | 
			
		||||
      }
 | 
			
		||||
      $username = [
 | 
			
		||||
        '#theme' => 'username',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
namespace Drupal\forum\Form;
 | 
			
		||||
 | 
			
		||||
use Drupal\Core\Form\FormStateInterface;
 | 
			
		||||
use Drupal\Core\Link;
 | 
			
		||||
use Drupal\Core\Url;
 | 
			
		||||
use Drupal\taxonomy\TermForm;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -78,7 +79,7 @@ class ForumForm extends TermForm {
 | 
			
		|||
 | 
			
		||||
    $route_name = $this->urlStub == 'container' ? 'entity.taxonomy_term.forum_edit_container_form' : 'entity.taxonomy_term.forum_edit_form';
 | 
			
		||||
    $route_parameters = ['taxonomy_term' => $term->id()];
 | 
			
		||||
    $link = $this->l($this->t('Edit'), new Url($route_name, $route_parameters));
 | 
			
		||||
    $link = Link::fromTextAndUrl($this->t('Edit'), new Url($route_name, $route_parameters))->toString();
 | 
			
		||||
    $view_link = $term->toLink($term->getName())->toString();
 | 
			
		||||
    switch ($status) {
 | 
			
		||||
      case SAVED_NEW:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,6 +7,7 @@ use Drupal\Core\Controller\ControllerBase;
 | 
			
		|||
use Drupal\Core\Datetime\DateFormatterInterface;
 | 
			
		||||
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
 | 
			
		||||
use Drupal\Core\Entity\EntityRepositoryInterface;
 | 
			
		||||
use Drupal\Core\Link;
 | 
			
		||||
use Drupal\Core\Render\RendererInterface;
 | 
			
		||||
use Drupal\Core\Url;
 | 
			
		||||
use Drupal\node\NodeStorageInterface;
 | 
			
		||||
| 
						 | 
				
			
			@ -211,7 +212,7 @@ class NodeController extends ControllerBase implements ContainerInjectionInterfa
 | 
			
		|||
        // this case.
 | 
			
		||||
        $is_current_revision = $vid == $default_revision || (!$current_revision_displayed && $revision->wasDefaultRevision());
 | 
			
		||||
        if (!$is_current_revision) {
 | 
			
		||||
          $link = $this->l($date, new Url('entity.node.revision', ['node' => $node->id(), 'node_revision' => $vid]));
 | 
			
		||||
          $link = Link::fromTextAndUrl($date, new Url('entity.node.revision', ['node' => $node->id(), 'node_revision' => $vid]))->toString();
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
          $link = $node->toLink($date)->toString();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,7 @@ namespace Drupal\path\Controller;
 | 
			
		|||
 | 
			
		||||
use Drupal\Component\Utility\Unicode;
 | 
			
		||||
use Drupal\Core\Controller\ControllerBase;
 | 
			
		||||
use Drupal\Core\Link;
 | 
			
		||||
use Drupal\Core\Path\AliasStorageInterface;
 | 
			
		||||
use Drupal\Core\Path\AliasManagerInterface;
 | 
			
		||||
use Drupal\Core\Url;
 | 
			
		||||
| 
						 | 
				
			
			@ -84,13 +85,13 @@ class PathController extends ControllerBase {
 | 
			
		|||
      $row = [];
 | 
			
		||||
      // @todo Should Path module store leading slashes? See
 | 
			
		||||
      //   https://www.drupal.org/node/2430593.
 | 
			
		||||
      $row['data']['alias'] = $this->l(Unicode::truncate($data->alias, 50, FALSE, TRUE), Url::fromUserInput($data->source, [
 | 
			
		||||
      $row['data']['alias'] = Link::fromTextAndUrl(Unicode::truncate($data->alias, 50, FALSE, TRUE), Url::fromUserInput($data->source, [
 | 
			
		||||
        'attributes' => ['title' => $data->alias],
 | 
			
		||||
      ]));
 | 
			
		||||
      $row['data']['source'] = $this->l(Unicode::truncate($data->source, 50, FALSE, TRUE), Url::fromUserInput($data->source, [
 | 
			
		||||
      ]))->toString();
 | 
			
		||||
      $row['data']['source'] = Link::fromTextAndUrl(Unicode::truncate($data->source, 50, FALSE, TRUE), Url::fromUserInput($data->source, [
 | 
			
		||||
        'alias' => TRUE,
 | 
			
		||||
        'attributes' => ['title' => $data->source],
 | 
			
		||||
      ]));
 | 
			
		||||
      ]))->toString();
 | 
			
		||||
      if ($multilanguage) {
 | 
			
		||||
        $row['data']['language_name'] = $this->languageManager()->getLanguageName($data->langcode);
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,6 +5,7 @@ namespace Drupal\update\Form;
 | 
			
		|||
use Drupal\Core\Extension\ModuleHandlerInterface;
 | 
			
		||||
use Drupal\Core\Form\FormBase;
 | 
			
		||||
use Drupal\Core\Form\FormStateInterface;
 | 
			
		||||
use Drupal\Core\Link;
 | 
			
		||||
use Drupal\Core\State\StateInterface;
 | 
			
		||||
use Drupal\Core\Url;
 | 
			
		||||
use Symfony\Component\DependencyInjection\ContainerInterface;
 | 
			
		||||
| 
						 | 
				
			
			@ -108,7 +109,7 @@ class UpdateManagerUpdate extends FormBase {
 | 
			
		|||
      // The project name to display can vary based on the info we have.
 | 
			
		||||
      if (!empty($project['title'])) {
 | 
			
		||||
        if (!empty($project['link'])) {
 | 
			
		||||
          $project_name = $this->l($project['title'], Url::fromUri($project['link']));
 | 
			
		||||
          $project_name = Link::fromTextAndUrl($project['title'], Url::fromUri($project['link']))->toString();
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
          $project_name = $project['title'];
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
namespace Drupal\views_ui\Controller;
 | 
			
		||||
 | 
			
		||||
use Drupal\Core\Controller\ControllerBase;
 | 
			
		||||
use Drupal\Core\Link;
 | 
			
		||||
use Drupal\Core\Url;
 | 
			
		||||
use Drupal\views\ViewExecutable;
 | 
			
		||||
use Drupal\views\ViewEntityInterface;
 | 
			
		||||
| 
						 | 
				
			
			@ -86,7 +87,7 @@ class ViewsUIController extends ControllerBase {
 | 
			
		|||
    foreach ($fields as $field_name => $views) {
 | 
			
		||||
      $rows[$field_name]['data'][0]['data']['#plain_text'] = $field_name;
 | 
			
		||||
      foreach ($views as $view) {
 | 
			
		||||
        $rows[$field_name]['data'][1][] = $this->l($view, new Url('entity.view.edit_form', ['view' => $view]));
 | 
			
		||||
        $rows[$field_name]['data'][1][] = Link::fromTextAndUrl($view, new Url('entity.view.edit_form', ['view' => $view]))->toString();
 | 
			
		||||
      }
 | 
			
		||||
      $item_list = [
 | 
			
		||||
        '#theme' => 'item_list',
 | 
			
		||||
| 
						 | 
				
			
			@ -120,7 +121,7 @@ class ViewsUIController extends ControllerBase {
 | 
			
		|||
      $views = [];
 | 
			
		||||
      // Link each view name to the view itself.
 | 
			
		||||
      foreach ($row['views'] as $row_name => $view) {
 | 
			
		||||
        $views[] = $this->l($view, new Url('entity.view.edit_form', ['view' => $view]));
 | 
			
		||||
        $views[] = Link::fromTextAndUrl($view, new Url('entity.view.edit_form', ['view' => $view]))->toString();
 | 
			
		||||
      }
 | 
			
		||||
      unset($row['views']);
 | 
			
		||||
      $row['views']['data'] = [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,7 @@ use Drupal\Core\Ajax\HtmlCommand;
 | 
			
		|||
use Drupal\Core\Ajax\ReplaceCommand;
 | 
			
		||||
use Drupal\Core\Datetime\DateFormatterInterface;
 | 
			
		||||
use Drupal\Core\Form\FormStateInterface;
 | 
			
		||||
use Drupal\Core\Link;
 | 
			
		||||
use Drupal\Core\Render\ElementInfoManagerInterface;
 | 
			
		||||
use Drupal\Core\Url;
 | 
			
		||||
use Drupal\Core\TempStore\SharedTempStoreFactory;
 | 
			
		||||
| 
						 | 
				
			
			@ -1062,13 +1063,13 @@ class ViewEditForm extends ViewFormBase {
 | 
			
		|||
      if ($handler->broken()) {
 | 
			
		||||
        $build['fields'][$id]['#class'][] = 'broken';
 | 
			
		||||
        $field_name = $handler->adminLabel();
 | 
			
		||||
        $build['fields'][$id]['#link'] = $this->l($field_name, new Url('views_ui.form_handler', [
 | 
			
		||||
        $build['fields'][$id]['#link'] = Link::fromTextAndUrl($field_name, new Url('views_ui.form_handler', [
 | 
			
		||||
          'js' => 'nojs',
 | 
			
		||||
          'view' => $view->id(),
 | 
			
		||||
          'display_id' => $display['id'],
 | 
			
		||||
          'type' => $type,
 | 
			
		||||
          'id' => $id,
 | 
			
		||||
        ], ['attributes' => ['class' => ['views-ajax-link']]]));
 | 
			
		||||
        ], ['attributes' => ['class' => ['views-ajax-link']]]))->toString();
 | 
			
		||||
        continue;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1085,33 +1086,33 @@ class ViewEditForm extends ViewFormBase {
 | 
			
		|||
        // Add a [hidden] marker, if the field is excluded.
 | 
			
		||||
        $link_text .= ' [' . $this->t('hidden') . ']';
 | 
			
		||||
      }
 | 
			
		||||
      $build['fields'][$id]['#link'] = $this->l($link_text, new Url('views_ui.form_handler', [
 | 
			
		||||
      $build['fields'][$id]['#link'] = Link::fromTextAndUrl($link_text, new Url('views_ui.form_handler', [
 | 
			
		||||
        'js' => 'nojs',
 | 
			
		||||
        'view' => $view->id(),
 | 
			
		||||
        'display_id' => $display['id'],
 | 
			
		||||
        'type' => $type,
 | 
			
		||||
        'id' => $id,
 | 
			
		||||
      ], ['attributes' => $link_attributes]));
 | 
			
		||||
      ], ['attributes' => $link_attributes]))->toString();
 | 
			
		||||
      $build['fields'][$id]['#class'][] = Html::cleanCssIdentifier($display['id'] . '-' . $type . '-' . $id);
 | 
			
		||||
 | 
			
		||||
      if ($executable->display_handler->useGroupBy() && $handler->usesGroupBy()) {
 | 
			
		||||
        $build['fields'][$id]['#settings_links'][] = $this->l(new FormattableMarkup('<span class="label">@text</span>', ['@text' => $this->t('Aggregation settings')]), new Url('views_ui.form_handler_group', [
 | 
			
		||||
        $build['fields'][$id]['#settings_links'][] = Link::fromTextAndUrl(new FormattableMarkup('<span class="label">@text</span>', ['@text' => $this->t('Aggregation settings')]), new Url('views_ui.form_handler_group', [
 | 
			
		||||
          'js' => 'nojs',
 | 
			
		||||
          'view' => $view->id(),
 | 
			
		||||
          'display_id' => $display['id'],
 | 
			
		||||
          'type' => $type,
 | 
			
		||||
          'id' => $id,
 | 
			
		||||
        ], ['attributes' => ['class' => ['views-button-configure', 'views-ajax-link'], 'title' => $this->t('Aggregation settings')]]));
 | 
			
		||||
        ], ['attributes' => ['class' => ['views-button-configure', 'views-ajax-link'], 'title' => $this->t('Aggregation settings')]]))->toString();
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if ($handler->hasExtraOptions()) {
 | 
			
		||||
        $build['fields'][$id]['#settings_links'][] = $this->l(new FormattableMarkup('<span class="label">@text</span>', ['@text' => $this->t('Settings')]), new Url('views_ui.form_handler_extra', [
 | 
			
		||||
        $build['fields'][$id]['#settings_links'][] = Link::fromTextAndUrl(new FormattableMarkup('<span class="label">@text</span>', ['@text' => $this->t('Settings')]), new Url('views_ui.form_handler_extra', [
 | 
			
		||||
          'js' => 'nojs',
 | 
			
		||||
          'view' => $view->id(),
 | 
			
		||||
          'display_id' => $display['id'],
 | 
			
		||||
          'type' => $type,
 | 
			
		||||
          'id' => $id,
 | 
			
		||||
        ], ['attributes' => ['class' => ['views-button-configure', 'views-ajax-link'], 'title' => $this->t('Settings')]]));
 | 
			
		||||
        ], ['attributes' => ['class' => ['views-button-configure', 'views-ajax-link'], 'title' => $this->t('Settings')]]))->toString();
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if ($grouping) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue