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.

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   3939 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.