Skip to content

Commit 4c65632

Browse files
committed
NEW Add extension points for getURL methods
1 parent dff9677 commit 4c65632

6 files changed

Lines changed: 34 additions & 9 deletions

File tree

src/Models/EmailLink.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,11 @@ public function getDescription(): string
5050

5151
public function getURL(): string
5252
{
53-
return $this->Email ? sprintf('mailto:%s', $this->Email) : '';
53+
$this->beforeExtending('updateURL', function (string &$url): void {
54+
$url = $this->Email ? sprintf('mailto:%s', $this->Email) : '';
55+
});
56+
57+
return parent::getURL();
5458
}
5559

5660
/**

src/Models/ExternalLink.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ public function getDescription(): string
5151

5252
public function getURL(): string
5353
{
54-
return $this->ExternalUrl ?: '';
54+
$this->beforeExtending('updateURL', function (string &$url) {
55+
$url = $this->ExternalUrl ?: '';
56+
});
57+
58+
return parent::getURL();
5559
}
5660

5761
/**

src/Models/FileLink.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,13 @@ public function getDescription(): string
5555

5656
public function getURL(): string
5757
{
58-
$file = $this->File();
59-
return $file->exists() ? (string) $file->getURL() : '';
58+
$this->beforeExtending('updateURL', function (string &$url): void {
59+
$file = $this->File();
60+
61+
$url = $file->exists() ? (string) $file->getURL() : '';
62+
});
63+
64+
return parent::getURL();
6065
}
6166

6267
/**

src/Models/Link.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,11 @@ public function getDescription(): string
113113
*/
114114
public function getURL(): string
115115
{
116-
return '';
116+
$url = '';
117+
118+
$this->extend('updateURL', $url);
119+
120+
return $url;
117121
}
118122

119123
/**

src/Models/PhoneLink.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,11 @@ public function getDescription(): string
4545

4646
public function getURL(): string
4747
{
48-
return $this->Phone ? sprintf('tel:%s', $this->Phone) : '';
48+
$this->beforeExtending('updateURL', function (string &$url): void {
49+
$url = $this->Phone ? sprintf('tel:%s', $this->Phone) : '';
50+
});
51+
52+
return parent::getURL();
4953
}
5054

5155
/**

src/Models/SiteTreeLink.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,17 @@ public function getDescription(): string
120120
public function getURL(): string
121121
{
122122
$page = $this->Page();
123-
$url = $page->exists() ? $page->Link() : '';
123+
$urlSegment = $page->exists() ? $page->Link() : '';
124124
$anchorSegment = $this->Anchor ? '#' . $this->Anchor : '';
125125
$queryStringSegment = $this->QueryString ? '?' . $this->QueryString : '';
126126

127-
$this->extend('updateGetURLBeforeAnchor', $url);
127+
$this->extend('updateGetURLBeforeAnchor', $urlSegment);
128128

129-
return Controller::join_links($url, $anchorSegment, $queryStringSegment);
129+
$this->beforeExtending('updateURL', function (string &$url) use ($urlSegment, $anchorSegment, $queryStringSegment): void {
130+
$url = Controller::join_links($urlSegment, $anchorSegment, $queryStringSegment);
131+
});
132+
133+
return parent::getURL();
130134
}
131135

132136
/**

0 commit comments

Comments
 (0)