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've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

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

Tagfield - Get link to page


Go to End


1478 Views

Avatar
Nobrainer Web

Community Member, 138 Posts

3 October 2010 at 10:08am

Hello,

I have a tagfield on my pages, where content editors can tag pages with words and sentences that is relevant to the content on a page.
I need to print out each Tag of child pages as a <li> and add a link to the tag, that on click will take the visitor to the page that holds the tag.

The below code lets me add tags to pages and also prints them to html, but i dont know how to add the link for the related page - please help.

In my Page.php i have:
static $many_many = array(
'RelationTags' => 'Tag'
);
and
$fields->addFieldToTab('Root.Content.Tags', new TagField('RelationTags', null, null, 'Page'));

Tag.php is:
<?php
class Tag extends DataObject {
static $db = array(
'Title' => 'Varchar(200)',
);

static $belongs_many_many = array(
'Pages' => 'Page'
);
}
?>

In template
<% control Children %>
<% if RelationTags %>
<ul id="tags">
<% control RelationTags %>
<li><a href="$Link">$Title</a></li>
<% end_control %>
</ul>
<% end_if %>
<% end_control %>