using System; using System.Data; using CMS.CMSHelper; using CMS.GlobalHelper; using CMS.PortalEngine; using CMS.SettingsProvider; using CMS.SiteProvider; using CMS.DocumentEngine; using CMS.UIControls; public partial class CMSModules_ImportExport_Controls_SelectMasterTemplate : CMSUserControl { /// /// Template ID. /// public int MasterTemplateId { get { return ucSelector.SelectedId; } } /// /// Site name. /// public string SiteName { get { return ValidationHelper.GetString(ViewState["SiteName"], ""); } set { ViewState["SiteName"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!StopProcessing) { ReloadData(); } } public void ReloadData() { // Load the data DataSet templates = PageTemplateInfoProvider.GetAllMasterTemplates(); ucSelector.DataSource = templates; ucSelector.IDColumn = "PageTemplateID"; ucSelector.DisplayNameColumn = "PageTemplateDisplayName"; ucSelector.DescriptionColumn = "PageTemplateDescription"; ucSelector.ThumbnailGUIDColumn = "PageTemplateThumbnailGUID"; ucSelector.ObjectType = PortalObjectType.PAGETEMPLATE; ucSelector.DataBind(); if (ucSelector.SelectedId == 0) { if (!DataHelper.DataSourceIsEmpty(templates)) { int firstTemplateId = ValidationHelper.GetInteger(templates.Tables[0].Rows[0]["PageTemplateID"], 0); ucSelector.SelectedId = firstTemplateId; } } } /// /// Apply control settings. /// public bool ApplySettings() { if (MasterTemplateId <= 0) { lblError.Text = GetString("TemplateSelection.SelectTemplate"); return false; } else { // Update all culture versions TreeProvider tree = new TreeProvider(CMSContext.CurrentUser); DataSet ds = tree.SelectNodes(SiteName, "/", TreeProvider.ALL_CULTURES, false, "CMS.Root", null, null, -1, false); if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { // Update the document TreeNode node = TreeNode.New(dr, "CMS.Root", tree); node.SetDefaultPageTemplateID(MasterTemplateId); node.Update(); // Update search index for node if ((node.PublishedVersionExists) && (SearchIndexInfoProvider.SearchEnabled)) { SearchTaskInfoProvider.CreateTask(SearchTaskTypeEnum.Update, PredefinedObjectType.DOCUMENT, SearchHelper.ID_FIELD, node.GetSearchID()); } } } } return true; } protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); lblError.Visible = (lblError.Text != ""); } }