Friday, February 1, 2008

Swapping files in Sharpoint and My Site

I needed to swap the default page for new one with different webparts.

Obviously change the site definition template was out of the question.

And naturally finding out why this:

SPFile standardDefaultPage = curWeb.GetFile(SHAREPOINTDEFAULTPAGE);
SPFile newDefaultPage = curWeb.GetFile(MYSITENEWDEFAULTPAGE);

standardDefaultPage = newDefaultPage

does not work, just made no sense. Then I realized that sharepoint sometimes knows the default page even if its renamed.

So then I tried this.

The procedure is called from a custom feature activated in the My Site creation.

const string SHAREPOINTDEFAULTPAGE = "default.aspx";
const string MYSITENEWDEFAULTPAGE = "defaultNew.aspx";

public void SwapDefaultPages(SPFeatureReceiverProperties properties, SPWeb curWeb)

SPFile newDefaultPage = curWeb.GetFile(MYSITENEWDEFAULTPAGE);

newDefaultPage.CopyTo(SHAREPOINTDEFAULTPAGE, true);
catch (Exception ex)
UpdateLog(ex.Message + ex.StackTrace + ex.Source, EventLogEntryType.Error);

UpdateLog("done SwapDefaultPages");

and it worked.

No comments: