A question came up in last night’s MVP Experts chat about a problem using the Enterprise Metadata and Keywords Settings in a Blank site. We suggested various solutions like not having a Managed Metadata service application configured or the fact that the Enterprise Keywords column is not available for Metadata based navigation. But the questioner said that his problem was that the link didn’t appear in his document library settings page like it should. For a while that had all of the MVPs stumped because none of us had seen a site that didn’t contain the setting. I quickly created a new site based on the Blank Site template in my test image and as I expected the link was there. So I told the questioner that we were all stumped on what might be causing the his problem.
The Enterprise Metadata and Keywords Settings link contains two checkboxes. The first adds a Managed Metadata column called Enterprise Keywords to the document library. The second adds Enterprise Keywords and other Managed Metadata to your My Site profile. You can see the two links in the screenshot below.
The questioner came back later to say that he had found a solution to his problem by activating a hidden Feature that he found in some Blog posts. The Feature ID he used was “73EF14B1-13A9-416b-A9B5-ECECA2B0604C”. I was happy that he found his solution, but decided that some further investigation was warranted to figure out what was happening and why?
It turns out that the Feature he was activating is Site scoped Feature called TaxonomyFieldAdded. The Feature adds two links called Term store management and Content type publishing to the Site Settings page. It also adds the Enterprise Metadata and Keywords Settings link to the Library Settings page. There is also a Feature receiver assembly defined to handle events when the feature is installed, activated, deactivated, or uninstalled. This Feature adds support for Managed metadata field support to an entire site collection. But since the feature is hidden it leaves us with several questions:
- What normally activates this feature?
- Why was it active in the Blank site I created but not the one the questioner created?
- Is it safe to activate the feature manually?
- Why isn’t the feature activated in a Blank Site?
So I decided to take some time last night after the chat to track down answers to these questions and share them on my blog this morning.
What normally activates the TaxonomyFieldAdded Feature?
The answer to this is pretty straightforward. There is another feature called TaxonomyFeatureStapler that “staples” the TaxonomyFieldAdded Feature to most of the site definitions used in SharePoint, including the Global site definition. You can see the Elements file from the feature below. The one glaring omission from the list is “STS#1”, which is of course the site definition for a Blank Site.
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) Microsoft Corporation. All rights reserved. -->
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="GLOBAL" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="STS#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="STS#2" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="MPS#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="MPS#1" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="MPS#2" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="MPS#3" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="MPS#4" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="WIKI#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="BLOG#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SGS#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="BDR#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="OFFILE#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="OFFILE#1" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPS#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSPERS#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSMSITE#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSNEWS#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSNHOME#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSSITES#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSREPORTCENTER#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSPORTAL#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SRCHCEN#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="PROFILES#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="CMSPUBLISHING#0" />
</Elements>
Why was it active in my Blank site but not the questioner’s?
After looking at the contents of the TaxonomyFieldAdded Feature itself and the Feature that staples it to most site definitions the answer to this question is pretty clear. As a Site scoped feature this feature is only activated when creating a top level site for a new site collection. The questioner had created his Blank site as the root of a new site collection while I had created mine as a sub site in a site collection with a Team site as the root. So in my site collection the TaxonomyFieldAdded Feature was activated when I built the root Team site while the questioner never got the Feature by building their root site as a Blank site.
Is it safe to activate theTaxonomyFieldAdded Feature manually?
This question is a little harder to answer, but it would appear that the answer is yes its safe. There are several points that lead me to believe that it is safe to activate manually:
- The TaxonomyFeatureStapler Feature adds it to most of the other site definitions, including the Global template that everything else inherits from. Its therefore likely that the Feature doesn’t depend on a particular site definition’s capabilities.
- The TaxonomyFieldAdded Feature itself is self contained and doesn’t have any additional Feature dependencies.
- The Feature works normally in a sub-site created from the Blank Site template if the root site was created with one of the other “stapled” templates.
So it would appear to be safe to activate this hidden feature on any site collection, including those built with a Blank site at the root. You can use the command line below to activate the feature using STSADM:
STSADM -o activatefeature -n TaxonomyFieldAdded -url <URL of Root Site>
Why isn’t the feature activated in a Blank Site based Site Collection?
I can’t give you a definitive answer for this one since I’m not on the SharePoint product team that developed the definitions. But I think the answer can be found in the purpose of the Blank Site template. This template is designed to be a completely blank slate to which you can add whatever you want. Very few but the most basic Features are automatically activated when creating a Blank Site. Even the Basic Standard and Enterprise Site Features are left deactivated. So I think the TaxonomyFieldAdded Feature is left out for the same reason, to keep the Blank Site as bare as possible.
I hope this little exercise clears up the mystery and helps teach all of us a bit more about Features in SharePoint 2010.