Sunday, August 3, 2014

Programmatically modify Library/List Page

hi dear yavuz


bellow is complete code for your needs



PublishingPage newPage = ProvisionPage(web, "Blank Web Part Page", "Home", "Page Description", "Default.aspx");
SPFile pageFile = newPage.ListItem.File;
ContentByQueryWebPart cqwp = new ContentByQueryWebPart(string.Empty, string.Empty, "");
cqwp.Title = "cqwp";
SPLimitedWebPartManager wpm = web.Web.GetLimitedWebPartManager(pageFile.Url, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);

wpm.AddWebPart(cqwp, "Top", 0);
wpm.SaveChanges(cqwp);
if (pageFile.CheckOutType != SPFile.SPCheckOutType.None)
{
pageFile.CheckIn("Checked by system.");
pageFile.Publish("Published by system.");
}


public static PublishingPage ProvisionPage(PublishingWeb publishingWeb, string pageLayoutName, string pageTitle, string pageDescription, string pageFileName)
{
PageLayout[] layouts = publishingWeb.GetAvailablePageLayouts();
Dictionary<string, PageLayout> pageLayouts = new Dictionary<string, PageLayout>();
foreach (PageLayout item in layouts)
{
string cID = item.Title.ToString();
string name = item.Name;
if (!pageLayouts.ContainsKey(cID.ToUpper()))
pageLayouts.Add(cID.ToUpper(), item);
}

PageLayout layout = pageLayouts[pageLayoutName.ToUpper()];
PublishingPage newPage2 = null;
SPListItem prevpage = PageExists(publishingWeb, pageFileName);
if (prevpage!=null)
{
prevpage.Delete();
}
newPage2 = publishingWeb.GetPublishingPages().Add(pageFileName, layout);

newPage2.Description = pageDescription;
newPage2.Title = pageTitle;
newPage2.Update();
return newPage2;
}


public static SPListItem PageExists(PublishingWeb publishingWeb, string pageFileName)
{
bool pageExists = false;
SPList pageList = publishingWeb.PagesList;
foreach (SPListItem li in pageList.Items)
{
if (li.Name.ToLower() == pageFileName.ToLower())
{
pageExists = true;
return li;
}
}
return null;
}







yaşamak bir eylemdir



No comments:

Post a Comment