1

I am using sp 2010. I have an old library which is using a contenttype. This contenttype is comming from a content type hub.

I created a new library. I set the same content type on this library. I see some differance between these 2 library settings. See printscreens below:

enter image description here

1

You can view the hidden fields using SharePoint Designer. Navigate to your Library and click edit list columns in library using designer. Refer the below screenshots: enter image description here

enter image description here

  • I dont ask for a workaround. I would like to know why I dont see the hidden fields in the list settings? When I click on the contenttype I dont see them. When I click on the parent (site collection content type level) of the contenttype I can see them. – Ola Sep 17 '14 at 9:00
  • thats the behaviour now. through browser we don't see hidden fields – Hardik Kothari Sep 17 '14 at 9:01
  • It's because the columns are hidden in the content type. Probably the columns were hidden after adding the content type to the old library. – Peter Deleu May 29 at 11:43
0

I found that even though a site can receive published hidden content type columns from the content type hub, unfortunately for some reason these columns do not seem to appear within list content types.

I have found this really frustrating.

It seems to be a SharePoint bug that has not been fixed in subsequent SharePoint versions.

I know you aren't asking for a workaround, but for the sake of providing one anyway I will post my findings here.

Essentially, I am not hiding the columns, but setting them not to appear in specific forms.

I first set all columns (that I want to hide) in the content type hub as "Optional".

I then run the attached PowerShell script to change some of the internal settings of specific columns (These settings are not available in the UI, but have the desired effect of hiding the columns in some places (like new form, edit form), but allowing them to be visible elsewhere (like display form, list settings, etc.):

  • Set field property ReadOnlyField to False
  • Set field property Hidden to False
  • Set field property ShowInDisplayForm to True
  • Set field property ShowInEditForm to False
  • Set field property ShowInNewForm to False
  • Set field property ShowInListSettings to True

The PowerShell script then republishes the Content Type, and starts the necessary timer jobs to push the changes out.

Here is the script:

Add-PSSnapin "*sharepoint*"

$HubWebAppUrl = "https://CTHUB-WEBAPPLICATION"
$HubSite = Get-SPSite -Identity "https://CTHUB-SITECOLLECTION"
$HubWeb = Get-SPWeb -Identity "https://CTHUB-WEB"

$ContentTypeName = "Document"

#Target Specific Fields
$Fields = @(    
            "COLUMN1",
            "COLUMN2",
            "COLUMN3"
            )

#Set Fields Read Only (True / False)
foreach ($Field in $Fields)
{
    $HubWeb.Fields[$Field].ReadOnlyField = $false
    $HubWeb.Fields[$Field].Hidden = $false
    $HubWeb.Fields[$Field].ShowInDisplayForm = $true
    $HubWeb.Fields[$Field].ShowInEditForm = $false
    $HubWeb.Fields[$Field].ShowInNewForm = $false
    $HubWeb.Fields[$Field].ShowInListSettings = $true
    $HubWeb.Fields[$Field].Update()
}


#Content Type Publishing
$ContentType = $HubSite.RootWeb.ContentTypes | Where {$_.Name -eq $ContentTypeName}
$Publisher = New-Object Microsoft.SharePoint.Taxonomy.ContentTypeSync.ContentTypePublisher($HubSite)
$Publisher.Publish($ContentType)

#Run the Content Type Hub timer job
$ctHubTJ = Get-SPTimerJob "MetadataHubTimerJob"
$ctHubTJ.RunNow()

#Run the Content Type Subscriber timer job for a specific Web Application
$ctSubTJ = Get-SPTimerJob "MetadataSubscriberTimerJob" -WebApplication $HubWebAppUrl
$ctSubTJ.RunNow()

$HubWeb.Dispose()
$HubSite.Dispose()

I hope this helps someone!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.