First, we need to provision a new calendar with our custom Feature:
<?xml version="1.0" encoding="utf-8" ?>
<Feature
Id="AF8444FE-65D9-4ae2-BAD7-C39917871474"
Title="Calendar without Workspace Link"
Description="Installs a new calendar without workspace link."
Version="1.0.0.0"
Scope="Web"
Hidden="FALSE"
ImageUrl="Meteoriitti/Feature.gif"
ReceiverAssembly="..."
ReceiverClass="CalendarFeatureReceiver"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="Lists.xml"/>
</ElementManifests>
</Feature>
Lists.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<ListInstance
Title="Events"
Description="Event calendar..."
Url="Lists/Events"
TemplateType="106"
OnQuickLaunch="True"
FeatureId="00BFEA71-EC85-4903-972D-EBE475780106">
</ListInstance>
</Elements>
And the most important part of it, the Feature Receiver:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
var web = properties.Feature.Parent as SPWeb;
if (web == null) return;
using (web)
{
var list = web.Lists["Events"];
var field = list.Fields[SPBuiltInFieldId.WorkspaceLink];
field.Hidden = true;
field.Update();
}
}
You can use the code for example in a PowerShell too, if you need to modify existing calendar. It seems like you can edit sealed content types’ fields’ Hidden property without errors. I also tried deletion, but it didn’t work. ShowInNewForm property didn’t have any effect either. Finally the Hidden property worked just fine.
I took this concept and turned it into a PowerShell script to make the column hidden.
http://blog.salamandersoft.co.uk/index.php/2011/03/using-powershell-to-remove-the-use-a-meeting-workspace-option-from-sharepoint-calendars/
http://blog.salamandersoft.co.uk/index.php/2011/03/using-powershell-to-remove-the-use-a-meeting-workspace-option-from-sharepoint-calendars/
Having then done that I realised that you could edit the Event content type to make it hidden across the entire site collection
http://blog.salamandersoft.co.uk/index.php/2011/03/removing-the-use-a-meeting-workspace-option-from-all-existing-and-new-sharepoint-calendars-in-a-site-collection/
http://blog.salamandersoft.co.uk/index.php/2011/03/removing-the-use-a-meeting-workspace-option-from-all-existing-and-new-sharepoint-calendars-in-a-site-collection/
Comments
Post a Comment