Activating a feature after an SPWeb has been created
-
10-12-2019 - |
Question
I am trying to ensure that a custom feature that I have written is activated when an SPWeb is created, and it has to be activated after all lists/libraries have been created (specifically the document library).
The feature's purpose is to hide the document libraries and deactivate the document library feature (dont ask). It throws an exception if its included in the WebFeatures tag in the onet.xml and from what I remember the feature stapling events fire before the lists are created.
Can anyone tell me what my options are regarding this?
Thanks.
Solution
You basically have to create a custom SPWebEventReceiver and activate your mandatory feature under "WebProvisioned" method, like this:
public class YourWebEventReceiver : SPWebEventReceiver
{
public override void WebProvisioned(SPWebEventProperties properties)
{
base.WebProvisioned(properties);
// Activate your mandatory feature here
// site.Features.Add(featureId) #pseudo-code.
}
}
If you need a step-by-step instruction to create a custom SPWebEventReceiver and deploy it, I found the following post helpful:
OTHER TIPS
SPWebProvisioned Event Handler