Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

Archive /

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo

accesing to sitetree link from template

Go to End

4 Posts   3968 Views


Community Member, 52 Posts

18 January 2008 at 1:23am


I defined a new page. This page includes a link to another sitetree page.

	static $has_one = array
			"LinkTo" => "SiteTree",

The user can create the link in the CMS without problems because in getCMSFields i have
			$fields->addFieldToTab("Root.Content.Main", new TreeDropdownField('LinkToID', "Link", "SiteTree"),'Content');	

The problem comes with the template usage.
I can access to LinkToID value without problem. It returns a numeric value (for example 5).
But i´m not interested in the ID. I´m interested in his URL: for example, the link with the ID 5 is "".
How can i obtain this link?
Another question is, if i have a multilanguage site, this link will be correct with the current language of the site?

Thanks in advance, and excuse me for my poor english.


Community Member, 5 Posts

17 March 2008 at 7:58am

I'm trying to solve a problem similar to your (see my post Have you found a way around?


Community Member, 791 Posts

18 March 2008 at 12:19am

There's probably some internal function for this ,but I could not find it as well...
A workaround is creating a method on your class which gets and returns the page..

Something like this :

function get_Hyperlink_URLSegment() {
		$oTmpDataObject = DataObject::get_by_id("Page",$this->iSiteTreeID);
		return $oTmpDataObject->URLSegment;

Shane Garelja

Community Member, 18 Posts

5 October 2008 at 1:19am

Edited: 05/10/2008 1:20am

@nomen - you would access it like this in your template:

<a href="$LinkTo.Link">Link to my page</a>

... as "LinkTo" is the relationship name (as defined in your has_one array) for the Page object that you've linked to (or saved). "LinkToID" is just the foreign key column hence you only get an integer.