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, biapar, Willr, Ingo, simon_w

accesing to sitetree link from template


Reply


4 Posts   3330 Views

Avatar
nomen

Community Member, 52 Posts

18 January 2008 at 1:23am

Hello:

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 "http://www.mysite.com/who-we-are".
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.

Avatar
cevic

Community Member, 5 Posts

17 March 2008 at 7:58am

I'm trying to solve a problem similar to your (see my post http://www.silverstripe.com/site-builders-forum/flat/45018). Have you found a way around?

Avatar
Fuzz10

Community Member, 787 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;
}

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