From 3b559f852abb98b38d6aa286f03a5f21d1ae2945 Mon Sep 17 00:00:00 2001 From: Ammonite Digital <95317376+ammonitedigital@users.noreply.github.com> Date: Tue, 14 May 2024 13:02:18 +0100 Subject: [PATCH 1/4] [5.x] Handle entries in Link field with `is_external_url` modifier --- src/Modifiers/CoreModifiers.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Modifiers/CoreModifiers.php b/src/Modifiers/CoreModifiers.php index f55e31a0e9..bc25906ee7 100644 --- a/src/Modifiers/CoreModifiers.php +++ b/src/Modifiers/CoreModifiers.php @@ -10,6 +10,7 @@ use Illuminate\Support\Facades\Date; use Statamic\Contracts\Assets\Asset as AssetContract; use Statamic\Contracts\Data\Augmentable; +use Statamic\Contracts\Entries\Entry; use Statamic\Facades\Antlers; use Statamic\Facades\Asset; use Statamic\Facades\Compare; @@ -1268,6 +1269,10 @@ public function isExternalUrl($value) $value = $value->value(); } + if ($value instanceof Entry) { + $value = $value->absoluteUrl(); + } + return Str::isUrl($value) && URL::isExternal($value); } From e1906f6d88903e0379e3a3840eca08f6faa957bd Mon Sep 17 00:00:00 2001 From: Ammonite Digital <95317376+ammonitedigital@users.noreply.github.com> Date: Tue, 14 May 2024 15:40:09 +0100 Subject: [PATCH 2/4] [5.x] Use `url` to retrieve `ArrayableLink` value --- src/Modifiers/CoreModifiers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Modifiers/CoreModifiers.php b/src/Modifiers/CoreModifiers.php index bc25906ee7..6177bad2d1 100644 --- a/src/Modifiers/CoreModifiers.php +++ b/src/Modifiers/CoreModifiers.php @@ -1266,7 +1266,7 @@ public function isUrl($value) public function isExternalUrl($value) { if ($value instanceof ArrayableLink) { - $value = $value->value(); + $value = $value->url(); } if ($value instanceof Entry) { From 462768ea1f598cf87f5cb5f2778f8ea4aa9aec2e Mon Sep 17 00:00:00 2001 From: Ammonite Digital <95317376+ammonitedigital@users.noreply.github.com> Date: Tue, 14 May 2024 15:49:28 +0100 Subject: [PATCH 3/4] [5.x] Remove redundant check --- src/Modifiers/CoreModifiers.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/Modifiers/CoreModifiers.php b/src/Modifiers/CoreModifiers.php index 6177bad2d1..5024b225fe 100644 --- a/src/Modifiers/CoreModifiers.php +++ b/src/Modifiers/CoreModifiers.php @@ -10,7 +10,6 @@ use Illuminate\Support\Facades\Date; use Statamic\Contracts\Assets\Asset as AssetContract; use Statamic\Contracts\Data\Augmentable; -use Statamic\Contracts\Entries\Entry; use Statamic\Facades\Antlers; use Statamic\Facades\Asset; use Statamic\Facades\Compare; @@ -1268,11 +1267,7 @@ public function isExternalUrl($value) if ($value instanceof ArrayableLink) { $value = $value->url(); } - - if ($value instanceof Entry) { - $value = $value->absoluteUrl(); - } - + return Str::isUrl($value) && URL::isExternal($value); } From bc598ea1e9f69ac1b3d48e833a3f31969a75beb1 Mon Sep 17 00:00:00 2001 From: Ammonite Digital <95317376+ammonitedigital@users.noreply.github.com> Date: Tue, 14 May 2024 15:51:58 +0100 Subject: [PATCH 4/4] [5.x] Remove whitespace --- src/Modifiers/CoreModifiers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Modifiers/CoreModifiers.php b/src/Modifiers/CoreModifiers.php index 5024b225fe..680ddae6a2 100644 --- a/src/Modifiers/CoreModifiers.php +++ b/src/Modifiers/CoreModifiers.php @@ -1267,7 +1267,7 @@ public function isExternalUrl($value) if ($value instanceof ArrayableLink) { $value = $value->url(); } - + return Str::isUrl($value) && URL::isExternal($value); }