BaronGrivet BaronGrivet - 5 months ago 16
PHP Question

How to use a different protocol with $AbsoluteLink in Silverstripe

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?

Answer

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

Comments