In the Silverstripe templating syntax $AbsoluteLink
returns the full URL of a page/object, including the protocol and host:
http://www.example.com/event/ics
I want to be able to call a full URL with a different protocol:
webcal://www.example.com/event/ics
What is the best way to achieve this?
Define a custom link method that replaces the current website protocol with your desired one. ie.
public function WebCalLink()
{
return str_replace(Director::protocol(), 'webcal://', Director::protocolAndHost()) . $this->Link();
}
Make a new getter function on your page:
public function WebcalLink() {
$absolute = $this->AbsoluteLink();
$webcal = str_replace(Director::protocol(), "webcal://", $absolute);
return $webcal;
}
You can call it from your template using $WebcalLink
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With