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.

Was it helpful?

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:

http://blog.qumsieh.ca/2010/10/07/how-to-attach-an-event-receiver-to-the-web-added-event-and-for-what-purpose/

OTHER TIPS

SPWebProvisioned Event Handler

Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange
scroll top