Commit bb864861 authored by mcaddz's avatar mcaddz Committed by dpi
Browse files

Issue #3266493 by mcaddy: Fixed query from being stripped from entity links

parent ba5aa0ba
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -98,8 +98,9 @@ class LinkyEntityUtility implements LinkyEntityUtilityInterface {
          $entityTypeId = $this->entityRouteContextRouteHelper->getAllRouteNames()[$routeName] ?? NULL;
          $entityId = $url->getRouteParameters()[$entityTypeId] ?? NULL;
          if ($entityTypeId && $entityId) {
            $query = $url->getOption('query') ? sprintf('?%s', http_build_query($url->getOption('query'))) : NULL;
            $fragment = $url->getOption('fragment') ? sprintf('#%s', $url->getOption('fragment')) : NULL;
            $href = sprintf('entity:%s/%s%s', $entityTypeId, $entityId, $fragment);
            $href = sprintf('entity:%s/%s%s%s', $entityTypeId, $entityId, $query, $fragment);
          }
          else {
            $href = 'internal:' . $url->toString();
+12 −1
Original line number Diff line number Diff line
@@ -294,11 +294,22 @@ class LinkyReplacerTest extends KernelTestBase {

    $this->setSupportsInternal();
    $entity2->save();

    $entity3 = EntityTest::create();
    $entity3->testfield->value = '<a href="' . $alias . '">Link 3</a><a href="' . $alias . '?language=fr">Link 3</a>';
    $entity3->save();

    $entity4 = EntityTest::create();
    $entity4->testfield->value = '<a href="' . $alias . '">Link 4</a><a href="' . $alias . '?language=es#foo">Link 4</a>';
    $entity4->save();

    $this->assertEquals('<a href="/admin/content/linky/1">Link 1</a><a href="/admin/content/linky/2">Link 2</a>', $entity2->testfield->value);
    $linkys = Linky::loadMultiple();
    $this->assertCount(2, $linkys);
    $this->assertCount(4, $linkys);
    $this->assertEquals('entity:entity_test/1', $linkys[1]->link->uri);
    $this->assertEquals('entity:entity_test/1#foo', $linkys[2]->link->uri);
    $this->assertEquals('entity:entity_test/1?language=fr', $linkys[3]->link->uri);
    $this->assertEquals('entity:entity_test/1?language=es#foo', $linkys[4]->link->uri);
  }

  /**