I am trying to customise the links shown on My Site using a stapled feature that runs when the site is created. The links I am trying to change are the top two in the quick launch, but I can't work out where they're coming from.

The master page is showing the links using the following control:

<SharePoint:AspMenu id="QuickLaunchMenu" DataSourceId="QuickLaunchSiteMap"...`

But the following code only pulls out the quick launch links starting at the second header.

foreach (SPNavigationNode node in web.Navigation.QuickLaunch.Parent.Children)
    foreach (SPNavigationNode subnode in node.Children)
        html.InnerText += "<p>" + subnode.Title + ": " + subnode.Url + "</p>";
    html.InnerText += "<p>" + node.Title + ": " + node.Url + "</p>";

what I am trying to change is the top two links in this section:

My Profile (change title to 'edit my profile, and the url of this to the edit profile page)
Details (delete this one)

1 Answer 1


There are some other controls in play for those pages so as you have found, these links are not in the QuickLanch menu. It sounds like your best bet would be to remove the control and replace it with your own.

With that said, I would be careful about the types of customizations you do to the MySites at this point since it can complicate an upgrade to 2010.

A second option that wouldn't impact an upgrade is to manipulate the rendered HTML with jQuery. While I haven't done it to solve this particular problem, I have for other areas on the MySites/MyProfile sites. You could create a script in a hidden web part that selects those nodes and replaces the HTML.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.