Say you are migrating sites, o nthe landing page you have a CEWP. Inside the content are links, it was not possible to make them relative.
The code finds the default page, open it, get the web part. loads the web part content, changes it and saves changes.
private static void UpdateCEWPForlandingPageIPLinks(SPWeb updateWebPartWed)
{
SPFile file = updateWebPartWed.GetFile("default.aspx");
SPLimitedWebPartManager webPartManager = file.GetLimitedWebPartManager(PersonalizationScope.Shared);
SPLimitedWebPartCollection webParts = webPartManager.WebParts;
foreach (Microsoft.SharePoint.WebPartPages.WebPart webPart in webParts)
{
if (((object)webPart).GetType().ToString() == "Microsoft.SharePoint.WebPartPages.ContentEditorWebPart")
{
if (webPart.Title == "New BCM Form")
{
string newIPURL = "";
ContentEditorWebPart contentEditorWebPartWorking = new ContentEditorWebPart();
// Create an XmlElement to hold the value of the Content property.
XmlDocument xmlDocument = new XmlDocument();
XmlElement xmlElement = xmlDocument.CreateElement("Content");
xmlElement.InnerText = ((ContentEditorWebPart)webPart).Content.InnerText.ToString();
//BIRA
newIPURL = GetNewBCMLinksList(updateWebPartWed.Site.Url, updateWebPartWed.ServerRelativeUrl, "BIRA");
xmlElement.InnerText = xmlElement.InnerText.ToString().Replace("BIRAurl", newIPURL);
//BCS
newIPURL = GetNewBCMLinksList(updateWebPartWed.Site.Url, updateWebPartWed.ServerRelativeUrl, "BCS");
xmlElement.InnerText = xmlElement.InnerText.ToString().Replace("BCSurl", newIPURL);
//BCP
newIPURL = GetNewBCMLinksList(updateWebPartWed.Site.Url, updateWebPartWed.ServerRelativeUrl, "BCP");
xmlElement.InnerText = xmlElement.InnerText.ToString().Replace("BCPurl", newIPURL);
//BCIT
newIPURL = GetNewBCMLinksList(updateWebPartWed.Site.Url, updateWebPartWed.ServerRelativeUrl, "BCIT");
xmlElement.InnerText = xmlElement.InnerText.ToString().Replace("BCITurl", newIPURL);
//BCT
newIPURL = GetNewBCMLinksList(updateWebPartWed.Site.Url, updateWebPartWed.ServerRelativeUrl, "BCT");
xmlElement.InnerText = xmlElement.InnerText.ToString().Replace("BCTurl", newIPURL);
contentEditorWebPartWorking.Content = xmlElement;
((ContentEditorWebPart)webPart).Content = contentEditorWebPartWorking.Content;
updateWebPartWed.AllowUnsafeUpdates = true;
webPartManager.SaveChanges(webPart);
file.Update();
updateWebPartWed.Update();
updateWebPartWed.AllowUnsafeUpdates = false;
}
}
}
}