protected void btnOK_Click(object sender, EventArgs e) { if (pt != null) { // Limit text length txtTemplateCodeName.Text = TextHelper.LimitLength(txtTemplateCodeName.Text.Trim(), 100, ""); txtTemplateDisplayName.Text = TextHelper.LimitLength(txtTemplateDisplayName.Text.Trim(), 200, ""); // finds whether required fields are not empty string result = new Validator().NotEmpty(txtTemplateDisplayName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateDisplayName")).NotEmpty(txtTemplateCodeName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateCodeName")) .IsCodeName(txtTemplateCodeName.Text, GetString("general.invalidcodename")) .Result; if (String.IsNullOrEmpty(result)) { // Check if template with given name already exists if (PageTemplateInfoProvider.PageTemplateNameExists(txtTemplateCodeName.Text)) { lblError.Text = GetString("general.codenameexists"); return; } if (pt.IsReusable == true) { // Clone template with clear pt = pt.Clone(true); } pt.CodeName = txtTemplateCodeName.Text; pt.DisplayName = txtTemplateDisplayName.Text; pt.Description = txtTemplateDescription.Text; pt.CategoryID = Convert.ToInt32(categorySelector.Value); pt.IsReusable = true; pt.PageTemplateSiteID = 0; try { PageTemplateInfoProvider.SetPageTemplateInfo(pt); int siteId = QueryHelper.GetInteger("siteid", 0); if (siteId > 0) { PageTemplateInfoProvider.AddPageTemplateToSite(pt.PageTemplateId, siteId); } ltlScript.Text = ScriptHelper.GetScript("SelectActualData(" + pt.PageTemplateId.ToString() + ", " + pt.IsPortal.ToString().ToLower() + ", " + pt.IsReusable.ToString().ToLower() + ");"); } catch (Exception ex) { lblError.Text = ex.Message; } } else { lblError.Visible = true; lblError.Text = result; } } }
protected void DocumentManager_OnSaveData(object sender, DocumentManagerEventArgs e) { e.UpdateDocument = false; string errorMessage = null; string newPageName = txtPageName.Text.Trim(); if (!String.IsNullOrEmpty(newPageName)) { // Limit length newPageName = TreePathUtils.EnsureMaxNodeNameLength(newPageName, pageClassName); } TreeNode node = e.Node; node.DocumentName = newPageName; bool updateGuidAfterInsert = false; // Same template for all language versions by default PageTemplateInfo pti = selTemplate.EnsureTemplate(node.DocumentName, node.NodeGUID, ref errorMessage); if (pti != null) { node.SetDefaultPageTemplateID(pti.PageTemplateId); // Template should by updated after document insert if (!pti.IsReusable) { updateGuidAfterInsert = true; } } // Insert node if no error if (String.IsNullOrEmpty(errorMessage)) { // Insert the document // Ensures documents consistency (blog post hierarchy etc.) DocumentManager.EnsureDocumentsConsistency(); DocumentHelper.InsertDocument(node, DocumentManager.ParentNode, DocumentManager.Tree); if (updateGuidAfterInsert) { PageTemplateInfo pageTemplateInfo = PageTemplateInfoProvider.GetPageTemplateInfo(node.NodeTemplateID); if (pageTemplateInfo != null) { // Update template's node GUID pageTemplateInfo.PageTemplateNodeGUID = node.NodeGUID; PageTemplateInfoProvider.SetPageTemplateInfo(pageTemplateInfo); } } } else { e.IsValid = false; e.ErrorMessage = errorMessage; } }
/// <summary> /// Ensures dashboard inicialization. /// </summary> public void SetupDashboard() { if (PortalPageInstance == null) { throw new Exception("[DashboardControl.SetupDashboard] Portal page instance must be set."); } // Default settings for drag and drop for dashboard manPortal.HighlightDropableAreas = HighlightDropableAreas; manPortal.ActivateZoneBorder = ActivateZoneBorder; string dashboardName = QueryHelper.GetString("DashboardName", PersonalizationInfoProvider.UNDEFINEDDASHBOARD); // Set culture CultureInfo ci = CultureHelper.PreferredUICultureInfo; Thread.CurrentThread.CurrentCulture = ci; Thread.CurrentThread.CurrentUICulture = ci; // Init the page components PortalPageInstance.PageManager = manPortal; manPortal.SetMainPagePlaceholder(plc); string templateName = QueryHelper.GetString("templatename", String.Empty); PageTemplateInfo pti = PageTemplateInfoProvider.GetPageTemplateInfo(templateName); if (pti != null) { if (pti.PageTemplateType != PageTemplateTypeEnum.Dashboard) { URLHelper.Redirect(URLHelper.ResolveUrl("~/CMSDesk/accessdenied.aspx") + "?message=" + ResHelper.GetString("dashboard.invalidpagetemplate")); } // Prepare virtual page info PageInfo pi = new PageInfo(); pi.DocumentPageTemplateID = pti.PageTemplateId; pi.PageTemplateInfo = pti; pi.ClassName = "CMS.Root"; pi.NodeAliasPath = String.Empty; pi.DocumentNamePath = "/" + templateName; pi.NodeSiteId = CMSContext.CurrentSiteID; CMSContext.CurrentPageInfo = pi; // Set the design mode PortalContext.SetRequestViewMode(ViewModeEnum.DashboardWidgets); PortalContext.DashboardName = dashboardName; ContextHelper.Add("DisplayContentInDesignMode", "0", true, false, false, DateTime.MinValue); PortalPageInstance.ManagersContainer = plcManagers; PortalPageInstance.ScriptManagerControl = manScript; } else { RedirectToInformation(GetString("dashboard.notemplate")); } }
/// <summary> /// Checks out the page template /// </summary> /// <param name="pageTemplateInfo">Page template to check out</param> private void CheckOutTemplate(PageTemplateInfo pageTemplateInfo) { var objectManager = CMSObjectManager.GetCurrent(this) ?? new CMSObjectManager(); if (CMSObjectManager.KeepNewObjectsCheckedOut) { objectManager.CheckOutObject(pageTemplateInfo); } }
/// <summary> /// Checks out the page template /// </summary> /// <param name="pageTemplateInfo">Page template to check out</param> private void CheckOutTemplate(PageTemplateInfo pageTemplateInfo) { var objectManager = CMSObjectManager.GetCurrent(Page); if ((objectManager != null) && CMSObjectManager.KeepNewObjectsCheckedOut) { objectManager.CheckOutObject(pageTemplateInfo); } }
protected override void OnInit(EventArgs e) { int classId = QueryHelper.GetInteger("classId", 0); // Load the root category of the selector DataClassInfo dci = DataClassInfoProvider.GetDataClassInfo(classId); if (dci != null) { selTemplate.RootCategory = dci.ClassPageTemplateCategoryID; if (!URLHelper.IsPostback() && (dci.ClassDefaultPageTemplateID > 0)) { PageTemplateInfo pageTemplate = PageTemplateInfoProvider.GetPageTemplateInfo(dci.ClassDefaultPageTemplateID); if ((pageTemplate != null) && PageTemplateInfoProvider.IsPageTemplateOnSite(pageTemplate.PageTemplateId, SiteContext.CurrentSiteID)) { bool setDefaultTemplate = true; // If different template categories are used if (pageTemplate.CategoryID != dci.ClassPageTemplateCategoryID) { // Get categories info PageTemplateCategoryInfo templateCategory = PageTemplateCategoryInfoProvider.GetPageTemplateCategoryInfo(pageTemplate.CategoryID); PageTemplateCategoryInfo rootCategory = PageTemplateCategoryInfoProvider.GetPageTemplateCategoryInfo(dci.ClassPageTemplateCategoryID); // Check if selected root category is same as one of parent page template categories or has no parent category if ((rootCategory.ParentId != 0) && !templateCategory.CategoryPath.Contains("/" + rootCategory.CategoryName + "/")) { setDefaultTemplate = false; } } if (setDefaultTemplate) { selTemplate.SetDefaultTemplate(dci.ClassDefaultPageTemplateID); } } } // Display footer only in dialog mode pnlFooterContent.Visible = RequiresDialog; var titleText = String.Format(GetString("content.newdocument"), dci.ClassDisplayName); // Set dialog title if (RequiresDialog) { SetTitle(HTMLHelper.HTMLEncode(titleText)); } else { titleElem.TitleText = HTMLHelper.HTMLEncode(titleText); EnsureDocumentBreadcrumbs(titleElem.Breadcrumbs, action: titleElem.TitleText); } } base.OnInit(e); }
/// <summary> /// Display info messages /// </summary> /// <param name="forceDisplay">If true, message is displayed even on postback</param> private void DisplayMessage(bool forceDisplay) { bool showMessage = editMenuElem.ObjectManager.IsObjectChecked() && (!RequestHelper.IsPostBack() || forceDisplay); // Setup Preview mode state and display shared template warning switch (EditedObjectType) { case EditedObjectTypeEnum.Template: { previewState = GetPreviewStateFromCookies(CMSPreviewControl.PAGETEMPLATELAYOUT); if (showMessage) { PageTemplateInfo pti = EditFormLayout.EditedObject as PageTemplateInfo; ShowSharedTemplateWarningMessage(pti); } } break; case EditedObjectTypeEnum.Layout: { previewState = GetPreviewStateFromCookies(CMSPreviewControl.PAGELAYOUT); LayoutInfo layoutInfo = EditFormLayout.EditedObject as LayoutInfo; if (DialogMode && ShowSharedLayoutWarnings && showMessage && (layoutInfo != null)) { ShowInformation(string.Format(GetString("layout.sharedwarning"), layoutInfo.LayoutDisplayName)); } } break; case EditedObjectTypeEnum.DeviceLayout: { previewState = GetPreviewStateFromCookies(CMSPreviewControl.DEVICELAYUOT); PageTemplateDeviceLayoutInfo deviceLayout = EditFormLayout.EditedObject as PageTemplateDeviceLayoutInfo; if ((deviceLayout != null) && showMessage) { if (DialogMode && (deviceLayout.LayoutID > 0)) { ShowInformation(GetString("layout.sharedwarning")); } else { PageTemplateInfo pti = PageTemplateInfoProvider.GetPageTemplateInfo(deviceLayout.PageTemplateID); ShowSharedTemplateWarningMessage(pti); } } } break; } if (showMessage) { codeElem.ShowMessage(); codeLayoutElem.ShowMessage(); deviceCode.ShowMessage(); } }
protected void btnOK_Click(object sender, EventArgs e) { // Limit text length txtTemplateCodeName.Text = TextHelper.LimitLength(txtTemplateCodeName.Text.Trim(), 100, ""); txtTemplateDisplayName.Text = TextHelper.LimitLength(txtTemplateDisplayName.Text.Trim(), 200, ""); // finds whether required fields are not empty string result = new Validator().NotEmpty(txtTemplateDisplayName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateDisplayName")).NotEmpty(txtTemplateCodeName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateCodeName")) .IsCodeName(txtTemplateCodeName.Text, GetString("general.invalidcodename")) .Result; if (result == "") { if (parentCategoryId > 0) { if (!PageTemplateInfoProvider.PageTemplateNameExists(txtTemplateCodeName.Text)) { //Insert page template info PageTemplateInfo pi = new PageTemplateInfo(); pi.PageTemplateType = PageTemplateTypeEnum.Portal; pi.DisplayName = txtTemplateDisplayName.Text; pi.CodeName = txtTemplateCodeName.Text; pi.IsPortal = true; pi.FileName = ""; pi.WebParts = ""; pi.Description = txtTemplateDescription.Text; pi.CategoryID = parentCategoryId; pi.IsReusable = true; //set default value for isReusable PageTemplateInfoProvider.SetPageTemplateInfo(pi); EditedObject = pi; CMSObjectManager.CheckOutNewObject(this.Page); string script = "parent.frames['pt_tree'].location.href = 'PageTemplate_Tree.aspx?templateid=" + pi.PageTemplateId + "';"; script += "this.location.href = 'PageTemplate_Edit.aspx?templateid=" + pi.PageTemplateId + "';"; ltlScript.Text += ScriptHelper.GetScript(script); } else { ShowError(GetString("Administration-PageTemplate_New.TemplateExistsAlready")); } } else { ShowError(GetString("Administration-PageTemplate_New.NoParentIdGiven")); } } else { rfvTemplateDisplayName.Visible = false; rfvTemplateCodeName.Visible = false; ShowError(result); } }
/// <summary> /// Check in event handler. /// </summary> protected void btnCheckIn_Click(object sender, EventArgs e) { LayoutInfo li = this.PagePlaceholder.LayoutInfo; PageTemplateInfo pti = this.PagePlaceholder.PageTemplateInfo; if ((li != null) || (pti != null)) { string filename = ""; string tmpFileName = ""; if (li != null) { tmpFileName = li.LayoutCheckedOutFilename; } else { tmpFileName = pti.PageTemplateLayoutCheckedOutFileName; } if (HttpContext.Current != null) { filename = HttpContext.Current.Server.MapPath(tmpFileName); } StreamReader sr = StreamReader.New(filename); // Read away the directive lines int skiplines = LayoutInfoProvider.GetLayoutDirectives().Split('\n').Length - 1; for (int i = 0; i < skiplines; i++) { sr.ReadLine(); } string newcode = sr.ReadToEnd(); sr.Close(); File.Delete(filename); if (li != null) { li.LayoutCheckedOutByUserID = 0; li.LayoutCheckedOutFilename = ""; li.LayoutCheckedOutMachineName = ""; li.LayoutCode = newcode; LayoutInfoProvider.SetLayoutInfo(li); } else { pti.PageTemplateLayoutCheckedOutByUserID = 0; pti.PageTemplateLayoutCheckedOutFileName = ""; pti.PageTemplateLayoutCheckedOutMachineName = ""; pti.PageTemplateLayout = newcode; PageTemplateInfoProvider.SetPageTemplateInfo(pti); } txtLayout.Text = newcode; } }
private PageTemplateInfo GetStorePageTemplate(string key, string pageTypeKey) { DataCommand cmd = DataCommandManager.GetDataCommand("GetStorePageTemplate"); cmd.SetParameterValue("@Key", key); cmd.SetParameterValue("@PageTypeKey", pageTypeKey); PageTemplateInfo result = cmd.ExecuteEntity <PageTemplateInfo>(); return(result); }
/// <summary> /// Deletes page template. Called when the "Delete template" button is pressed. /// Expects the CreatePageTemplate method to be run first. /// </summary> private bool DeletePageTemplate() { // Get the page template PageTemplateInfo deleteTemplate = PageTemplateInfoProvider.GetPageTemplateInfo("MyNewTemplate"); // Delete the page template PageTemplateInfoProvider.DeletePageTemplate(deleteTemplate); return(deleteTemplate != null); }
protected override void OnPreInit(EventArgs e) { WebPartInstance webPart = null; // Check permissions for web part properties UI if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerUIElement("CMS.Design", "WebPartProperties.Layout")) { RedirectToUIElementAccessDenied("CMS.Design", "WebPartProperties.Layout"); } if (webpartId != "") { // Get pageinfo PageInfo pi = GetPageInfo(aliasPath, templateId, cultureCode); if (pi == null) { return; } // Get page template PageTemplateInfo pti = pi.UsedPageTemplateInfo; if ((pti != null) && ((pti.TemplateInstance != null))) { webPart = pti.TemplateInstance.GetWebPart(instanceGuid, zoneVariantId, variantId) ?? pti.TemplateInstance.GetWebPart(webpartId); } } if (webPart != null) { WebPartInfo wpi = WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType); layoutCodeName = QueryHelper.GetString("layoutcodename", String.Empty); if (String.IsNullOrEmpty(layoutCodeName)) { // Get the current layout name layoutCodeName = ValidationHelper.GetString(webPart.GetValue("WebPartLayout"), ""); } if (wpi != null) { wpli = WebPartLayoutInfoProvider.GetWebPartLayoutInfo(wpi.WebPartName, layoutCodeName); if (wpli != null) { if ((layoutCodeName != "|default|") && (layoutCodeName != "|new|") && !QueryHelper.GetBoolean("tabmode", false)) { string url = UIContextHelper.GetElementUrl("CMS.Design", "Design.WebPartProperties.LayoutEdit", false, wpli.WebPartLayoutID); url = URLHelper.AppendQuery(url, RequestContext.CurrentQueryString); url = URLHelper.AddParameterToUrl(url, "tabmode", "1"); URLHelper.Redirect(url); } } } } base.OnPreInit(e); }
protected void btnOK_Click(object sender, EventArgs e) { // Limit text length txtTemplateCodeName.Text = TextHelper.LimitLength(txtTemplateCodeName.Text.Trim(), 100, ""); txtTemplateDisplayName.Text = TextHelper.LimitLength(txtTemplateDisplayName.Text.Trim(), 200, ""); // finds whether required fields are not empty string result = new Validator().NotEmpty(txtTemplateDisplayName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateDisplayName")).NotEmpty(txtTemplateCodeName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateCodeName")) .IsCodeName(txtTemplateCodeName.Text, GetString("general.invalidcodename")) .Result; if (result == "") { if (parentCategoryId > 0) { if (!PageTemplateInfoProvider.PageTemplateNameExists(txtTemplateCodeName.Text)) { //Insert page template info PageTemplateInfo pi = new PageTemplateInfo(); pi.PageTemplateType = PageTemplateTypeEnum.Portal; pi.DisplayName = txtTemplateDisplayName.Text; pi.CodeName = txtTemplateCodeName.Text; pi.FileName = ""; pi.WebParts = ""; pi.Description = txtTemplateDescription.Text; pi.CategoryID = parentCategoryId; pi.IsReusable = true; //set default value for isReusable PageTemplateInfoProvider.SetPageTemplateInfo(pi); EditedObject = pi; CMSObjectManager.CheckOutNewObject(this.Page); string script = "parent.frames['pt_tree'].location.href = 'PageTemplate_Tree.aspx?templateid=" + pi.PageTemplateId + "';"; script += "this.location.href = 'PageTemplate_Edit.aspx?templateid=" + pi.PageTemplateId + "';"; ltlScript.Text += ScriptHelper.GetScript(script); } else { ShowError(GetString("Administration-PageTemplate_New.TemplateExistsAlready")); } } else { ShowError(GetString("Administration-PageTemplate_New.NoParentIdGiven")); } } else { rfvTemplateDisplayName.Visible = false; rfvTemplateCodeName.Visible = false; ShowError(result); } }
public void LoadData() { if (node != null) { string layoutText = String.Empty; // get template info pti = PageTemplateInfoProvider.GetPageTemplateInfo(node.GetUsedPageTemplateId()); if ((pti == null) && (DocumentContext.CurrentPageInfo != null) && (DocumentContext.CurrentPageInfo.UsedPageTemplateInfo != null)) { pti = DocumentContext.CurrentPageInfo.UsedPageTemplateInfo; } if (pti != null) { PageTemplateLayoutTypeEnum type = PageTemplateLayoutTypeEnum.PageTemplateLayout; // Try get device layout object layoutObject = PageTemplateDeviceLayoutInfoProvider.GetLayoutObject(pti, DeviceContext.CurrentDeviceProfile, out type); layoutText = pti.PageTemplateLayout; // Set layout text with dependence on current layout type switch (type) { // Shared layouts case PageTemplateLayoutTypeEnum.SharedLayout: case PageTemplateLayoutTypeEnum.DeviceSharedLayout: case PageTemplateLayoutTypeEnum.SharedLayoutMapped: layoutText = (layoutObject as LayoutInfo).LayoutCode; break; // Custom device layout case PageTemplateLayoutTypeEnum.DeviceLayout: layoutText = (layoutObject as PageTemplateDeviceLayoutInfo).LayoutCode; break; } } ltlLayoutCode.Text = HTMLHelper.EnsureHtmlLineEndings(HTMLHelper.HighlightHTML(layoutText)); ltlLayoutCode.Text = RegexHelper.GetRegex("[ ](?![^<>]*>)").Replace(ltlLayoutCode.Text, " "); // Load node data if (!RequestHelper.IsPostBack()) { txtBodyCss.Text = node.NodeBodyElementAttributes; txtBodyScripts.Value = node.NodeBodyScripts; txtDocType.Text = node.NodeDocType; txtHeadTags.Value = node.NodeHeadTags; } } lblAfterDocType.Text = HighlightHTML("<html>") + "<br />" + AddSpaces(1) + HighlightHTML("<head>"); lblAfterHeadTags.Text = AddSpaces(1) + HighlightHTML("</head>"); lblAfterLayout.Text = AddSpaces(1) + HighlightHTML("</body>") + "<br />" + HighlightHTML("</html>"); lblBodyEnd.Text = HighlightHTML(">"); lblBodyStart.Text = AddSpaces(1) + HighlightHTML("<body " + HttpUtility.HtmlDecode(mBody)); }
/// <summary> /// Display info messages /// </summary> /// <param name="forceDisplay">If true, message is displayed even on postback</param> private void DisplayMessage(bool forceDisplay) { bool showMessage = editMenuElem.ObjectManager.IsObjectChecked() && (!RequestHelper.IsPostBack() || forceDisplay); // Display shared template warning switch (EditedObjectType) { case EditedObjectTypeEnum.Template: { if (showMessage) { PageTemplateInfo pti = EditFormTemplate.EditedObject as PageTemplateInfo; ShowSharedTemplateWarningMessage(pti); codeElem.ShowMessage(); } } break; case EditedObjectTypeEnum.Layout: { LayoutInfo layoutInfo = EditFormLayout.EditedObject as LayoutInfo; if (showMessage) { if (DialogMode && ShowSharedLayoutWarnings && (layoutInfo != null)) { ShowInformation(string.Format(GetString("layout.sharedwarning"), layoutInfo.LayoutDisplayName)); } codeLayoutElem.ShowMessage(); } } break; case EditedObjectTypeEnum.DeviceLayout: { PageTemplateDeviceLayoutInfo deviceLayout = EditFormDeviceLayout.EditedObject as PageTemplateDeviceLayoutInfo; if (showMessage) { if (deviceLayout != null) { if (DialogMode && (deviceLayout.LayoutID > 0)) { ShowInformation(GetString("layout.sharedwarning")); } else { PageTemplateInfo pti = PageTemplateInfoProvider.GetPageTemplateInfo(deviceLayout.PageTemplateID); ShowSharedTemplateWarningMessage(pti); } } deviceCode.ShowMessage(); } } break; } }
protected void Page_Load(object sender, EventArgs e) { // Check permissions for web part properties UI var currentUser = MembershipContext.AuthenticatedUser; if (!currentUser.IsAuthorizedPerUIElement("CMS.Design", "WebPartProperties.Layout")) { RedirectToUIElementAccessDenied("CMS.Design", "WebPartProperties.Layout"); } WebPartInstance webPart = null; if (webpartId != "") { // Get pageinfo PageInfo pi = GetPageInfo(aliasPath, templateId, cultureCode); if (pi != null) { // Get page template PageTemplateInfo pti = pi.UsedPageTemplateInfo; // Get web part if ((pti != null) && ((pti.TemplateInstance != null))) { webPart = pti.TemplateInstance.GetWebPart(instanceGuid, zoneVariantId, variantId) ?? pti.TemplateInstance.GetWebPart(webpartId); } } } // If the web part is not found, do not continue if (webPart != null) { WebPartInfo wpi = WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType); if (wpi != null) { // Get the current layout name if (String.IsNullOrEmpty(LayoutCodeName)) { // Get the current layout name LayoutCodeName = ValidationHelper.GetString(webPart.GetValue("WebPartLayout"), ""); } // Load the web part information if (LayoutCodeName != "") { WebPartLayoutInfo wpli = WebPartLayoutInfoProvider.GetWebPartLayoutInfo(wpi.WebPartName, LayoutCodeName); SetEditedObject(wpli, null); } } } // Set page tabs InitTabs("webpartlayoutcontent"); SetTab(0, GetString("general.general"), "webpartproperties_layout.aspx" + RequestContext.CurrentQueryString, null); }
/// <summary> /// Inserts .css and .js resources at the start of the page's block of CSS and JavaScript files. /// There can be one or more css or js resource for each page template. /// This information is found in the PageTemplateInfo object of the /// PageAssembleyContext.Current /// /// This method inserts those resources marked as "Beginning" as well as resources /// which have no location specified. /// </summary> protected virtual void InsertHeaderStyleSheetsJavascriptsReferences() { if (CurrentPageHead != null) { PageTemplateInfo pgTemplateInfo = PageAssemblyContext.Current.PageTemplateInfo; if (pgTemplateInfo != null) { StyleSheetInfo[] colCss = pgTemplateInfo.StyleSheets; JavascriptInfo[] colJs = pgTemplateInfo.Javascripts; PageResources pgResources = PageAssemblyContext.Current.PageAssemblyInstruction.GetPageResources(); if (pgResources != null) { colCss = colCss.Concat(pgResources.StyleSheets).ToArray(); colJs = colJs.Concat(pgResources.Javascripts).ToArray(); } // Capture all items marked as going at the start of the block. IEnumerable <StyleSheetInfo> firstStylesheet = System.Linq.Enumerable.Where(colCss, fcss => fcss.Beginning == "true"); IEnumerable <JavascriptInfo> firstJavaScript = System.Linq.Enumerable.Where(colJs, fjs => fjs.Beginning == "true"); // Capture all items which aren't marked for a particular location. IEnumerable <StyleSheetInfo> unspecifiedStylesheets = System.Linq.Enumerable.Where(colCss, fcss => fcss.Beginning != "true" && fcss.End != "true"); IEnumerable <JavascriptInfo> unspecifiedJavaScripts = System.Linq.Enumerable.Where(colJs, fjs => fjs.Beginning != "true" && fjs.End != "true"); //Load first Javascript foreach (JavascriptInfo jsBeginningInfo in firstJavaScript) { String url = appendFileFingerprint(jsBeginningInfo.JavascriptPath); NCI.Web.UI.WebControls.JSManager.AddExternalScript(this, url, jsBeginningInfo.Async, jsBeginningInfo.Defer); } //Load first Stylesheet foreach (StyleSheetInfo cssBeginningInfo in firstStylesheet) { String url = appendFileFingerprint(cssBeginningInfo.StyleSheetPath); NCI.Web.UI.WebControls.CssManager.AddStyleSheet(this, url, cssBeginningInfo.Media); } // Load the js and css resources with no specified location foreach (JavascriptInfo jsInfo in unspecifiedJavaScripts) { String url = appendFileFingerprint(jsInfo.JavascriptPath); NCI.Web.UI.WebControls.JSManager.AddExternalScript(this, url, jsInfo.Async, jsInfo.Defer); } foreach (StyleSheetInfo ssInfo in unspecifiedStylesheets) { String url = appendFileFingerprint(ssInfo.StyleSheetPath); NCI.Web.UI.WebControls.CssManager.AddStyleSheet(this, url, ssInfo.Media); } } } }
/// <summary> /// Determines whether the current page template is UI template. /// </summary> private static bool IsUITemplate() { PageTemplateInfo pti = DocumentContext.CurrentPageInfo.DesignPageTemplateInfo; if (pti != null) { return(pti.PageTemplateType == PageTemplateTypeEnum.UI); } return(false); }
protected override void OnPreInit(EventArgs e) { WebPartInstance webPart = null; // Check permissions for web part properties UI if (!CMSContext.CurrentUser.IsAuthorizedPerUIElement("CMS.Content", "WebPartProperties.Layout")) { RedirectToCMSDeskUIElementAccessDenied("CMS.Content", "WebPartProperties.Layout"); } if (webpartId != "") { // Get pageinfo PageInfo pi = GetPageInfo(aliasPath, templateId, cultureCode); if (pi == null) { return; } // Get page template PageTemplateInfo pti = pi.UsedPageTemplateInfo; if ((pti != null) && ((pti.TemplateInstance != null))) { webPart = pti.TemplateInstance.GetWebPart(instanceGuid, zoneVariantId, variantId) ?? pti.GetWebPart(webpartId); } } if (webPart != null) { WebPartInfo wpi = WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType); layoutCodeName = QueryHelper.GetString("layoutcodename", String.Empty); if (String.IsNullOrEmpty(layoutCodeName)) { // Get the current layout name layoutCodeName = ValidationHelper.GetString(webPart.GetValue("WebPartLayout"), ""); } if (wpi != null) { wpli = WebPartLayoutInfoProvider.GetWebPartLayoutInfo(wpi.WebPartName, layoutCodeName); if (wpli != null) { if ((layoutCodeName != "|default|") && (layoutCodeName != "|new|")) { SetEditedObject(wpli, "WebPartProperties_layout_frameset_frameset.aspx"); } } } } base.OnPreInit(e); }
/// <summary> /// Handles the Load event of the Page control. /// </summary> protected void Page_Load(object sender, EventArgs e) { // Setup the radio button texts radNonInherit.Text = GetString("InheritLevels.NonInherit"); radInheritMaster.Text = GetString("InheritLevels.InheritMaster"); treeElem.Level = Level; if (Node != null) { TreePath = GetTreePath(); radInheritAll.Text = GetString("InheritLevels.UseTemplateSettigns"); PageTemplateInfo template = PageTemplateInfoProvider.GetPageTemplateInfo(Node.DocumentPageTemplateID); if (template != null) { string resString; string levels = String.Empty; switch (template.InheritPageLevels) { case "/": resString = "InheritLevels.NoNesting"; break; case "\\": resString = "InheritLevels.InheritMaster"; break; case "": resString = "InheritLevels.InheritAll"; break; default: resString = "InheritLevels.SelectedLevels"; // Format page levels levels = template.InheritPageLevels.Trim('}', '{', '/'); levels = levels.Replace("}/{", ", "); break; } // Display page template default setting radInheritAll.Text += " (" + GetString(resString) + (!String.IsNullOrEmpty(levels) ? ": " + levels : String.Empty) + ")"; } radSelect.Text = GetString("InheritLevels.Select"); } else { // Page template setting radInheritAll.Text = GetString("InheritLevels.InheritAll"); radSelect.Text = GetString("InheritLevels.SelectTemplate"); } }
/// <summary> /// Clear web part variants from the cache and reloads them. /// </summary> /// <param name="instanceGuid">The instance GUID.</param> private void ReloadWebPartCache(string zoneId, Guid instanceGuid) { // Delete cached web part variants if (Node != null) { bool found = false; // Get page template instance and find the webpart instance. PageTemplateInfo pti = PageTemplateInfoProvider.GetPageTemplateInfo(Node.DocumentPageTemplateID); if ((pti != null) && (pti.TemplateInstance != null) && (pti.TemplateInstance.WebPartZones != null)) { // Set the CurrentDocument - will be used for detection of the VariantMode (MVT/ContentPersonalization) CMSContext.CurrentDocument = Node; foreach (WebPartZoneInstance zone in pti.TemplateInstance.WebPartZones) { if (found) { break; } // Is zone variant if (instanceGuid == Guid.Empty) { if (zoneId == zone.ZoneID) { // Reload the zone variants zone.LoadVariants(true, VariantModeEnum.ContentPersonalization); break; } } // Is web part variant else { foreach (WebPartInstance wInstance in zone.WebParts) { // Find the web part instance which is to be cleared if (wInstance.InstanceGUID == instanceGuid) { // Reload the web part variants wInstance.LoadVariants(true, VariantModeEnum.ContentPersonalization); found = true; break; } } } } } } }
private void ReloadData() { if (node != null) { // Check read permissions if (currentUser.IsAuthorizedPerDocument(node, NodePermissionsEnum.Read) == AuthorizationResultEnum.Denied) { RedirectToAccessDenied(String.Format(GetString("cmsdesk.notauthorizedtoreaddocument"), node.NodeAliasPath)); } // Check modify permissions else if (currentUser.IsAuthorizedPerDocument(node, NodePermissionsEnum.Modify) == AuthorizationResultEnum.Denied) { DisableFormEditing(); lblInfo.Visible = true; lblInfo.Text = String.Format(GetString("cmsdesk.notauthorizedtoeditdocument"), node.NodeAliasPath); } if (hasDesign) { // Show template name by template id if (node.GetValue("DocumentPageTemplateID") != null) { PageTemplateInfo pt = PageTemplateInfoProvider.GetPageTemplateInfo(Convert.ToInt32(node.GetValue("DocumentPageTemplateID"))); if (pt != null) { // Prepare the template name string templateName = null; if (pt.IsReusable) { templateName = pt.DisplayName; } else { templateName = "Ad-hoc: " + (!string.IsNullOrEmpty(node.DocumentName) ? node.DocumentName : node.DocumentNamePath); } ltlScript.Text += ScriptHelper.GetScript("SelectTemplate(" + pt.PageTemplateId + ", " + ScriptHelper.GetString(templateName) + ", " + pt.IsPortal.ToString().ToLower() + ", " + pt.IsReusable.ToString().ToLower() + "); RememberTemplate(" + ScriptHelper.GetString(pt.DisplayName) + ");"); } else { ltlScript.Text += ScriptHelper.GetScript("NoTemplateSelected();"); } btnInherit.Visible = true; } else { btnInherit_Click(null, null); } } } }
/// <summary> /// Loads the control data. /// </summary> public void LoadData() { PageTemplateInfo pti = PageTemplateInfo; if (pti != null) { txtTemplate.Text = ResHelper.LocalizeString(pti.DisplayName); } else { txtTemplate.Text = ""; } }
/// <summary> /// Ensure portal view mode for dashboards. /// </summary> public void EnsureDashboard() { if (PageTemplateId > 0) { PageTemplateInfo pti = PageTemplateInfoProvider.GetPageTemplateInfo(PageTemplateId); if ((pti != null) && (pti.PageTemplateType == PageTemplateTypeEnum.Dashboard)) { PortalContext.SetRequestViewMode(ViewModeEnum.DashboardWidgets); PortalContext.DashboardName = QueryHelper.GetString("dashboard", String.Empty); PortalContext.DashboardSiteName = QueryHelper.GetString("sitename", String.Empty); } } }
/// <summary> /// Initializes menu. /// </summary> protected void InitializeMenu() { if (webpartId != string.Empty) { // get pageinfo PageInfo pi = GetPageInfo(aliasPath, templateId, cultureCode); if (pi == null) { Visible = false; return; } PageTemplateInfo pti = pi.UsedPageTemplateInfo; if (pti != null) { // Get web part WebPartInstance webPart = pti.TemplateInstance.GetWebPart(instanceGuid, webpartId); // New webpart is loaded via WebPartID if ((webPart == null) && !isNew) { // Clone templateInstance to avoid caching of the temporary template instance loaded with CP/MVT variants var tempTemplateInstance = pti.TemplateInstance.Clone(); tempTemplateInstance.LoadVariants(false, VariantModeEnum.None); webPart = tempTemplateInstance.GetWebPart(instanceGuid, -1, 0); } WebPartInfo wi = (webPart != null) ? WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType) : WebPartInfoProvider.GetWebPartInfo(ValidationHelper.GetInteger(webpartId, 0)); if (wi != null) { type = (WebPartTypeEnum)wi.WebPartType; // Generate documentation link Literal ltr = new Literal(); string docScript = "NewWindow('" + ResolveUrl("~/CMSModules/PortalEngine/UI/WebParts/WebPartDocumentationPage.aspx") + "?webpartid=" + ScriptHelper.GetString(wi.WebPartName, false) + "', 'WebPartPropertiesDocumentation', 800, 800); return false;"; string tooltip = GetString("help.tooltip"); ltr.Text += String.Format ("<div class=\"action-button\"><a onclick=\"{0}\" href=\"#\"><span class=\"sr-only\">{1}</span><i class=\"icon-modal-question cms-icon-80\" title=\"{1}\" aria-hidden=\"true\"></i></a></div>", docScript, tooltip); pageTitle.RightPlaceHolder.Controls.Add(ltr); pageTitle.TitleText = GetString("WebpartProperties.Title") + " (" + HTMLHelper.HTMLEncode(ResHelper.LocalizeString(wi.WebPartDisplayName)) + ")"; } } } tabsElem.UrlTarget = "webpartpropertiescontent"; }
/// <summary> /// Creates new document under root and new event (booking system) document under created document. /// Called when the "Create event" button is pressed. /// </summary> private bool CreateEvent() { TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser); // Get root document TreeNode root = tree.SelectSingleNode(SiteContext.CurrentSiteName, "/", null, true); // Create a new CMS Page (menu item) document TreeNode node = TreeNode.New("CMS.MenuItem", tree); // Set values node.DocumentName = "MyNewDocument"; node.DocumentCulture = LocalizationContext.PreferredCultureCode; // Get page template PageTemplateInfo template = PageTemplateInfoProvider.GetPageTemplateInfo("cms.empty"); if (template != null) { node.SetDefaultPageTemplateID(template.PageTemplateId); } // Insert the document DocumentHelper.InsertDocument(node, root, tree); // Create new Event (booking system) document TreeNode eventNode = TreeNode.New("CMS.BookingEvent", tree); // Set values eventNode.DocumentName = "MyNewEvent"; eventNode.DocumentCulture = LocalizationContext.PreferredCultureCode; eventNode.SetValue("EventSummary", "My event summary"); eventNode.SetValue("EventDetails", "My event details"); eventNode.SetValue("EventLocation", "My location"); eventNode.SetValue("EventDate", DateTime.Now); eventNode.SetValue("EventCapacity", 100); // Get page template PageTemplateInfo eventTemplate = PageTemplateInfoProvider.GetPageTemplateInfo("cms.empty"); if (eventTemplate != null) { eventNode.SetDefaultPageTemplateID(eventTemplate.PageTemplateId); } // Insert the Event (booking system) document DocumentHelper.InsertDocument(eventNode, node, tree); return(true); }
public void GetTemplateInfoTest_DefaultCancerGovTemplate_Print() { using (HttpSimulator httpSimulator = GetStandardSimulatedRequest()) { string templateName = "DefaultCancerGovTemplate"; DisplayVersions version = DisplayVersions.Print; PageTemplateInfo expected = GetPrintPageTemplateInfo(); PageTemplateInfo actual; actual = PageTemplateResolver.GetPageTemplateInfo(string.Empty, templateName, version); Assert.AreEqual(expected, actual); } }
/// <summary> /// Initializes menu. /// </summary> protected void InitalizeMenu() { if (webpartId != string.Empty) { // get pageinfo PageInfo pi = GetPageInfo(aliasPath, templateId, cultureCode); if (pi == null) { Visible = false; return; } PageTemplateInfo pti = pi.UsedPageTemplateInfo; if (pti != null) { WebPartInfo wi = null; // Get web part WebPartInstance webPart = pti.GetWebPart(instanceGuid, webpartId); if (webPart != null) { wi = WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType); if (ValidationHelper.GetString(webPart.GetValue("WebPartCode"), string.Empty).Trim() != string.Empty) { showCodeTab = true; } if (webPart.Bindings.Count > 0) { showBindingTab = true; } } else { wi = WebPartInfoProvider.GetWebPartInfo(ValidationHelper.GetInteger(webpartId, 0)); } if (wi != null) { // Generate documentation link Literal ltr = new Literal(); PageTitle.RightPlaceHolder.Controls.Add(ltr); string docScript = "NewWindow('" + ResolveUrl("~/CMSModules/PortalEngine/UI/WebParts/WebPartDocumentationPage.aspx") + "?webpartid=" + ScriptHelper.GetString(wi.WebPartName, false) + "', 'WebPartPropertiesDocumentation', 800, 800); return false;"; ltr.Text += "<a onclick=\"" + docScript + "\" href=\"#\"><img src=\"" + ResolveUrl(GetImageUrl("General/HelpLargeDark.png")) + "\" style=\"border-width: 0px;\"></a>"; PageTitle.TitleText = GetString("WebpartProperties.Title") + " (" + HTMLHelper.HTMLEncode(ResHelper.LocalizeString(wi.WebPartDisplayName)) + ")"; } } } tabsElem.UrlTarget = "webpartpropertiescontent"; }
private void EditForm_OnBeforeSave(object sender, EventArgs e) { // Don't save shared layout object, update only necessary objects if ((EditedObjectType == EditedObjectTypeEnum.Layout) && radShared.Checked) { LayoutInfo li = EditedObject as LayoutInfo; // Get the current layout type PageTemplateLayoutTypeEnum layoutType = PageTemplateLayoutTypeEnum.PageTemplateLayout; PageTemplateDeviceLayoutInfoProvider.GetLayoutObject(PageTemplateInfo, DeviceProfileInfo, out layoutType); switch (layoutType) { case PageTemplateLayoutTypeEnum.PageTemplateLayout: case PageTemplateLayoutTypeEnum.SharedLayout: { int newLayoutId = ValidationHelper.GetInteger(drpLayout.Value, 0); // We need to save also page template if shared template is used if ((PageTemplateInfo != null) && (PageTemplateInfo.LayoutID != li.LayoutId)) { PageTemplateInfo.LayoutID = newLayoutId; PageTemplateInfo.Update(); } } break; case PageTemplateLayoutTypeEnum.DeviceSharedLayout: case PageTemplateLayoutTypeEnum.DeviceLayout: { // We need to save also template device layout if shared template is used PageTemplateDeviceLayoutInfo deviceLayout = PageTemplateDeviceLayoutInfoProvider.GetTemplateDeviceLayoutInfo(TemplateID, DeviceProfileID); if (deviceLayout != null) { deviceLayout.LayoutID = ValidationHelper.GetInteger(drpLayout.Value, 0); deviceLayout.LayoutCode = null; deviceLayout.LayoutCSS = null; deviceLayout.Update(); } } break; } ShowChangesSaved(); // Prevent from saving object EditForm.StopProcessing = true; } }
protected void btnClone_Click(object sender, EventArgs e) { int pageTemplateId = ValidationHelper.GetInteger(Request.Params["SelectedTemplateId"], 0); if (pageTemplateId == 0) { pageTemplateId = ValidationHelper.GetInteger(Request.Params["InheritedTemplateId"], 0); } if (pageTemplateId > 0) { PageTemplateInfo pt = PageTemplateInfoProvider.GetPageTemplateInfo(pageTemplateId); if (pt != null) { // Clone the info string docName = node.DocumentName; if (docName == "") { docName = "/"; } string displayName = "Ad-hoc: " + docName; PageTemplateInfo newInfo = PageTemplateInfoProvider.CloneTemplateAsAdHoc(pt, displayName, CMSContext.CurrentSite.SiteID); newInfo.Description = String.Format(GetString("PageTemplate.AdHocDescription"), node.DocumentNamePath); PageTemplateInfoProvider.SetPageTemplateInfo(newInfo); // Save the MVT/Content personalization variants of this page template if (LicenseHelper.CheckFeature(URLHelper.GetCurrentDomain(), FeatureEnum.MVTesting)) { ModuleCommands.OnlineMarketingCloneTemplateMVTVariants(pageTemplateId, newInfo.PageTemplateId); } if (LicenseHelper.CheckFeature(URLHelper.GetCurrentDomain(), FeatureEnum.ContentPersonalization)) { ModuleCommands.OnlineMarketingCloneTemplateContentPersonalizationVariants(pageTemplateId, newInfo.PageTemplateId); } ltlScript.Text += ScriptHelper.GetScript("pressedClone(" + newInfo.PageTemplateId + "); ShowButtons(" + pt.IsPortal.ToString().ToLower() + ", " + pt.IsReusable.ToString().ToLower() + ", true);"); btnSaveOnClickScript = "modalDialog('" + ResolveUrl(PORTALENGINE_UI_LAYOUTPATH + "SaveNewPageTemplate.aspx") + "?templateid=' + document.getElementById('SelectedTemplateId').value + '&siteid=" + siteid + "', 'SaveNewTemplate', 480, 360);return false;"; txtTemplate.Text = newInfo.DisplayName; cloneId = newInfo.PageTemplateId; } btnSave.Visible = true; lnkSave_Click(sender, e); } }
private static void ProcessTemplateToFS(PageTemplateInfo info) { var devices = info.Children[PortalObjectType.TEMPLATEDEVICELAYOUT]; if (devices != null) { foreach (PageTemplateDeviceLayoutInfo device in devices) { device.Generalized.SaveExternalColumns(); } } if ((info.IsPortal || info.PageTemplateType == PageTemplateTypeEnum.Dashboard) && !string.IsNullOrEmpty(info.PageTemplateLayout)) { info.Generalized.SaveExternalColumns(); } }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); dialog = QueryHelper.GetBoolean("dialog", false); lblTemplateHeader.Text = GetString("pagetemplate_header.addheader"); pnlObjectLocking.ObjectManager.OnSaveData += new EventHandler<SimpleObjectManagerEventArgs>(ObjectManager_OnSaveData); pnlObjectLocking.ObjectManager.OnAfterAction += new EventHandler<SimpleObjectManagerEventArgs>(ObjectManager_OnAfterAction); pti = PageTemplateInfoProvider.GetPageTemplateInfo(PageTemplateID); CMSContext.EditedObject = pti; if (!RequestHelper.IsPostBack()) { // Load data to form LoadData(); } }
/// <summary> /// PreInit event handler /// </summary> protected override void OnPreInit(EventArgs e) { deviceProfile = CMSContext.CurrentDeviceProfile; templateId = QueryHelper.GetInteger("templateid", 0); pti = PageTemplateInfoProvider.GetPageTemplateInfo(templateId); dialogMode = QueryHelper.GetBoolean("dialogmode", false); tabMode = QueryHelper.GetBoolean("tabmode", false); // Page template dialog in CMS Desk if (!CMSContext.CurrentUser.IsAuthorizedPerUIElement("CMS.Content", "Design.EditLayout")) { RedirectToCMSDeskUIElementAccessDenied("CMS.Content", "Design.EditLayout"); } if (dialogMode) { // Set proper master page for dialog mode MasterPageFile = "~/CMSMasterPages/UI/Dialogs/ModalSimplePage.master"; if (!tabMode) { CurrentMaster.Title.TitleText = GetTitleText(); CurrentMaster.Title.TitleImage = GetImageUrl("Objects/CMS_Layout/object.png"); CurrentMaster.Title.TitleInformation = GetTitleInformation(); CurrentMaster.Title.HelpTopicName = "CMS_Design_page_layout"; CurrentMaster.Title.HelpName = "helpTopic"; } } int layoutId = QueryHelper.GetInteger("layoutid", 0); int newSharedLayoutId = QueryHelper.GetInteger("newshared", -1); int oldSharedLayoutId = QueryHelper.GetInteger("oldshared", -1); int deviceProfileId = (deviceProfile != null) ? deviceProfile.ProfileID : 0; CMSContext.EditedObject = GetEditedObject(templateId, layoutId, newSharedLayoutId, oldSharedLayoutId, deviceProfileId); base.OnPreInit(e); }
protected void Page_Load(object sender, EventArgs e) { currentUser = CMSContext.CurrentUser; // Get current page template ID mPageTemplateId = QueryHelper.GetInteger("templateid", 0); pti = PageTemplateInfoProvider.GetPageTemplateInfo(mPageTemplateId); if (pti != null) { if (pti.IsReusable) { filterDocuments.LoadSites = true; } else { filterDocuments.SitesPlaceHolder.Visible = false; } } docElem.UniGrid.OnBeforeDataReload += new OnBeforeDataReload(UniGrid_OnBeforeDataReload); docElem.UniGrid.OnAfterDataReload += new OnAfterDataReload(UniGrid_OnAfterDataReload); string site = null; // Site selector is available for global admin if (currentUser.IsGlobalAdministrator) { site = filterDocuments.SelectedSite; } else { site = CMSContext.CurrentSiteName; } // For ad-hoc templates use all sites if (!pti.IsReusable) { site = TreeProvider.ALL_SITES; } docElem.SiteName = site; }
/// <summary> /// OnInit /// </summary> protected override void OnInit(EventArgs e) { base.OnInit(e); // Check permissions for web part properties UI CurrentUserInfo currentUser = CMSContext.CurrentUser; if (!currentUser.IsAuthorizedPerUIElement("CMS.Content", "WebPartProperties.Code")) { RedirectToCMSDeskUIElementAccessDenied("CMS.Content", "WebPartProperties.Code"); } if (webpartId != "") { // Get page info pi = GetPageInfo(aliasPath, templateId, cultureCode); if (pi == null) { Visible = false; return; } pti = pi.UsedPageTemplateInfo; if ((pti != null) && ((pti.TemplateInstance != null))) { // Get web part instance webPart = pti.TemplateInstance.GetWebPart(instanceGuid, zoneVariantId, variantId) ?? pti.GetWebPart(webpartId); if (webPart != null) { txtCode.Text = ValidationHelper.GetString(webPart.GetValue("WebPartCode"), ""); } EditedObject = webPart; } } }
private static void ProcessTemplateToFS(PageTemplateInfo info) { var devices = info.Children[PageTemplateDeviceLayoutInfo.OBJECT_TYPE]; if (devices != null) { foreach (PageTemplateDeviceLayoutInfo device in devices) { device.Generalized.SaveExternalColumns(); } } if (info.IsPortal || (info.PageTemplateType == PageTemplateTypeEnum.Dashboard) || (info.PageTemplateType == PageTemplateTypeEnum.UI)) { info.Generalized.SaveExternalColumns(); } }
protected void Page_Load(object sender, EventArgs e) { // Get and check template ID pageTemplateId = QueryHelper.GetInteger("templateid", 0); if (pageTemplateId <= 0) { return; } // Register refresh script string refreshScript = ScriptHelper.GetScript(@"function RefreshContent() { if ((parent != null) && (parent.Refresh != null)) parent.Refresh(); var txtDisplayName = document.getElementById('" + txtTemplateDisplayName.TextBox.ClientID + @"'); var wopener = parent.wopener; if ((wopener != null) && (wopener.SetTemplateName)) wopener.SetTemplateName(txtDisplayName.value); }"); ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "pageTemplateRefreshScript", refreshScript); // Hide teaser lblUploadFile.Visible = false; UploadFile.Visible = false; lblTemplateDisplayName.Text = GetString("Administration-PageTemplate_General.TemplateDisplayName"); lblTemplateCodeName.Text = GetString("Administration-PageTemplate_General.TemplateCodeName"); lblTemplateCategory.Text = GetString("Administration-PageTemplate_General.Category"); lblTemplateDescription.Text = GetString("Administration-PageTemplate_General.TemplateDescription"); lblTemplateType.Text = GetString("Administration-PageTemplate_General.Type"); lblShowAsMasterTemplate.Text = GetString("Administration-PageTemplate_General.ShowAsMasterTemplate"); lblInheritLevels.Text = GetString("Administration-PageTemplate_General.InheritLevels"); lblUploadFile.Text = GetString("Administration-PageTemplate_General.lblUpload"); rfvTemplateDisplayName.ErrorMessage = GetString("Administration-PageTemplate_General.ErrorEmptyTemplateDisplayName"); rfvTemplateCodeName.ErrorMessage = GetString("Administration-PageTemplate_General.ErrorEmptyTemplateCodeName"); // New item link string[,] actions = new string[1, 9]; actions[0, 0] = HeaderActions.TYPE_SAVEBUTTON; actions[0, 1] = GetString("general.save"); actions[0, 2] = null; actions[0, 3] = null; actions[0, 4] = null; actions[0, 5] = GetImageUrl("CMSModules/CMS_Content/EditMenu/save.png"); actions[0, 6] = "lnksave_click"; actions[0, 7] = null; actions[0, 8] = "true"; this.CurrentMaster.HeaderActions.LinkCssClass = "ContentSaveLinkButton"; this.CurrentMaster.HeaderActions.Actions = actions; this.CurrentMaster.HeaderActions.ActionPerformed += new CommandEventHandler(HeaderActions_ActionPerformed); if (!RequestHelper.IsPostBack()) { FillDropDown(); } pti = PageTemplateInfoProvider.GetPageTemplateInfo(pageTemplateId); if (pti != null) { if (!RequestHelper.IsPostBack()) { // Load the initial data LoadData(); lvlElem.Value = pti.InheritPageLevels; lvlElem.Level = 10; } else { // Load just the flags pageTemplateIsReusable = pti.IsReusable; pageTemplateWebParts = pti.WebParts; } // Show teaser if needed if (!pti.DisplayName.ToLower().StartsWith("ad-hoc")) { lblUploadFile.Visible = true; UploadFile.Visible = true; UploadFile.ObjectID = pageTemplateId; UploadFile.ObjectType = PortalObjectType.PAGETEMPLATE; UploadFile.Category = MetaFileInfoProvider.OBJECT_CATEGORY_THUMBNAIL; } FileSystemDialogConfiguration config = new FileSystemDialogConfiguration(); config.DefaultPath = "CMSTemplates"; config.AllowedExtensions = "aspx"; config.ShowFolders = false; FileSystemSelector.DialogConfig = config; FileSystemSelector.AllowEmptyValue = false; FileSystemSelector.SelectedPathPrefix = "~/CMSTemplates/"; FileSystemSelector.ValidationError = GetString("Administration-PageTemplate_General.ErrorEmptyTemplateFileName"); // Script for dynamic hiding of inherited levels string script = @" function HideOrShowInheritLevels() { var tr = document.getElementById('" + inheritLevels.ClientID + @"'); if (tr) { var checkbox = document.getElementById('" + chkShowAsMasterTemplate.ClientID + @"') ; if(checkbox != null) { if(checkbox.checked == 1) { tr.style.display = 'none'; } else { tr.style.display = ''; } } } }"; // Hide inherited levels if (chkShowAsMasterTemplate.Checked) { inheritLevels.Style.Add("display", "none"); } else { inheritLevels.Style.Clear(); } // Register script to page ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "showOrHide", ScriptHelper.GetScript(script)); chkShowAsMasterTemplate.Attributes.Add("onclick", "HideOrShowInheritLevels();"); //Page.Focus(); //Page.Form.Focus(); //ScriptHelper.RegisterStartupScript(this, typeof(string), "focus", ScriptHelper.GetScript("document.getElementById('" +Page.Form.ClientID + "').focus();")); } }
/// <summary> /// Page load event. /// </summary> /// <param name="sender">Sender</param> /// <param name="e">Arguments</param> protected void Page_Load(object sender, EventArgs e) { if (!CMSContext.CurrentUser.UserSiteManagerAdmin) { RedirectToAccessDenied(GetString("template.scopes.denied")); } // Master page settings CurrentMaster.DisplayControlsPanel = true; CurrentMaster.DisplaySiteSelectorPanel = true; // Get template id templateID = QueryHelper.GetInteger("templateid", 0); // Get template info if (templateID > 0) { template = PageTemplateInfoProvider.GetPageTemplateInfo(templateID); } if (!RequestHelper.IsPostBack()) { if (template != null) { radAllPages.Checked = template.PageTemplateForAllPages; radSelectedScopes.Checked = !template.PageTemplateForAllPages; } siteID = QueryHelper.GetInteger("siteid", 0); if (siteID > 0) { selectSite.Value = siteID; } } else { siteID = ValidationHelper.GetInteger(selectSite.Value, 0); } // Display only assigned sites selectSite.UniSelector.WhereCondition = "SiteID IN (SELECT SiteID FROM CMS_PageTemplateSite WHERE PageTemplateID = " + templateID + ") OR SiteID IN (SELECT PageTemplateScopeSiteID FROM CMS_PageTemplateScope WHERE PageTemplateScopeTemplateID = " + templateID + ")"; // Show scopes content only if option template can be used within scopes is selected if (radAllPages.Checked) { pnlContent.Visible = false; } else { pnlContent.Visible = true; // New item link string[,] actions = new string[1, 6]; actions[0, 0] = HeaderActions.TYPE_HYPERLINK; actions[0, 1] = GetString("template.scopes.newscope"); actions[0, 2] = null; actions[0, 3] = "javascript: AddNewItem()"; actions[0, 4] = null; actions[0, 5] = GetImageUrl("Objects/CMS_PageTemplateScope/add.png"); CurrentMaster.HeaderActions.Actions = actions; } // Setup unigrid unigridScopes.OnAction += new OnActionEventHandler(unigridScopes_OnAction); unigridScopes.OnExternalDataBound += new OnExternalDataBoundEventHandler(unigridScopes_OnExternalDataBound); unigridScopes.WhereCondition = GenerateWhereCondition(); unigridScopes.ZeroRowsText = GetString("general.nodatafound"); // Set site selector selectSite.DropDownSingleSelect.AutoPostBack = true; selectSite.AllowAll = false; selectSite.OnlyRunningSites = false; selectSite.UniSelector.SpecialFields = new string[1, 2] { { GetString("template.scopes.global"), "0" } }; selectSite.UniSelector.OnSelectionChanged += new EventHandler(UniSelector_OnSelectionChanged); // Register correct script for new item ScriptHelper.RegisterClientScriptBlock(this.Page, typeof(string), "AddNewItem", ScriptHelper.GetScript( "function AddNewItem() { this.window.location = '" + ResolveUrl("PageTemplateScope_Edit.aspx?templateid=" + templateID.ToString() + "&siteID=" + siteID.ToString()) + "'} ")); }
public void LoadData() { if (node != null) { string layoutText = String.Empty; // get template info pti = PageTemplateInfoProvider.GetPageTemplateInfo(node.GetUsedPageTemplateId()); if ((pti == null) && (DocumentContext.CurrentPageInfo != null) && (DocumentContext.CurrentPageInfo.UsedPageTemplateInfo != null)) { pti = DocumentContext.CurrentPageInfo.UsedPageTemplateInfo; } if (pti != null) { PageTemplateLayoutTypeEnum type = PageTemplateLayoutTypeEnum.PageTemplateLayout; // Try get device layout object layoutObject = PageTemplateDeviceLayoutInfoProvider.GetLayoutObject(pti, DeviceContext.CurrentDeviceProfile, out type); layoutText = pti.PageTemplateLayout; // Set layout text with dependence on current layout type switch (type) { // Shared layouts case PageTemplateLayoutTypeEnum.SharedLayout: case PageTemplateLayoutTypeEnum.DeviceSharedLayout: case PageTemplateLayoutTypeEnum.SharedLayoutMapped: layoutText = (layoutObject as LayoutInfo).LayoutCode; break; // Custom device layout case PageTemplateLayoutTypeEnum.DeviceLayout: layoutText = (layoutObject as PageTemplateDeviceLayoutInfo).LayoutCode; break; } } ltlLayoutCode.Text = HTMLHelper.EnsureLineEnding(HTMLHelper.HighlightHTML(layoutText), "<br />"); ltlLayoutCode.Text = RegexHelper.GetRegex("[ ](?![^<>]*>)").Replace(ltlLayoutCode.Text, " "); // Load node data if (!RequestHelper.IsPostBack()) { txtBodyCss.Text = node.NodeBodyElementAttributes; txtDocType.Text = node.NodeDocType; txtHeadTags.Value = node.NodeHeadTags; } } lblAfterDocType.Text = HighlightHTML("<html>") + "<br />" + AddSpaces(1) + HighlightHTML("<head>"); lblAfterHeadTags.Text = AddSpaces(1) + HighlightHTML("</head>"); lblAfterLayout.Text = AddSpaces(1) + HighlightHTML("</body>") + "<br />" + HighlightHTML("</html>"); lblBodyEnd.Text = HighlightHTML(">"); lblBodyStart.Text = AddSpaces(1) + HighlightHTML("<body " + HttpUtility.HtmlDecode(mBody)); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); dialog = (QueryHelper.GetBoolean("dialog", false) || QueryHelper.GetBoolean("isindialog", false)); // Initialize controls. ShowWarning(GetString("PageTemplate_WebParts.Warning"), null, null); lblWPConfig.Text = GetString("PageTemplate_WebParts.WebPartsConfiguration"); // Get 'templateid' from querystring. templateId = QueryHelper.GetInteger("templateId", 0); pnlObjectLocking.ObjectManager.OnSaveData += new EventHandler<SimpleObjectManagerEventArgs>(ObjectManager_OnSaveData); pnlObjectLocking.ObjectManager.OnAfterAction += new EventHandler<SimpleObjectManagerEventArgs>(ObjectManager_OnAfterAction); pti = PageTemplateInfoProvider.GetPageTemplateInfo(templateId); EditedObject = pti; if (!RequestHelper.IsPostBack()) { LoadData(); } }
/// <summary> /// Reloads the controls on the page to the appropriate state /// </summary> protected void ReloadControls() { node = Node; if (node.NodeAliasPath == "/") { // For root, inherit option means no page template radInherit.ResourceString = "Template.NoTemplate"; } // Get the template ID int templateId = SelectedTemplateID; string suffix = null; bool inherit = radInherit.Checked; plcUIClone.Visible = false; plcUIEdit.Visible = false; plcUISave.Visible = false; if (inherit) { // Inherited selectorEnabled = false; // Inherit templateId = GetInheritedPageTemplateId(node); if (templateId > 0) { suffix = " " + GetString("Template.Inherited"); } } else { // Standard selection selectorEnabled = true; } // Set modal dialogs string modalScript = String.Format("modalDialog('{0}?startingpath=/&templateId={1}&siteid={2}&documentid={3}&inherits={4}', 'SaveNewTemplate', 720, 430); return false;", ResolveUrl("~/CMSModules/PortalEngine/UI/Layout/SaveNewPageTemplate.aspx"), templateId, SiteContext.CurrentSiteID, Node.DocumentID, radInherit.Checked); btnSave.OnClientClick = modalScript; String url = UIContextHelper.GetElementDialogUrl("cms.design", "PageTemplate.EditPageTemplate", templateId, String.Format("aliaspath={0}", node.NodeAliasPath)); btnEditTemplateProperties.OnClientClick = "modalDialog('" + url + "', 'Template edit', '95%', '95%');return false;"; // Load the page template name pageTemplateInfo = PageTemplateInfoProvider.GetPageTemplateInfo(templateId); if (pageTemplateInfo != null) { txtTemplate.Text = ResHelper.LocalizeString(pageTemplateInfo.DisplayName); plcUISave.Visible = true; plcUIEdit.Visible = (!pageTemplateInfo.IsReusable || currentUser.IsAuthorizedPerUIElement("CMS.Content", "Template.ModifySharedTemplates")); plcUIClone.Visible = pageTemplateInfo.IsReusable || inherit; } else { txtTemplate.Text = GetString("Template.SelectorNoTemplate"); } txtTemplate.Text += suffix; }
/// <summary> /// Gets the inherited page template from the parent node /// </summary> /// <param name="currentNode">Document node</param> protected int GetInheritedPageTemplateId(TreeNode currentNode) { string aliasPath = currentNode.NodeAliasPath; // For root, there is no inheritance possible if (String.IsNullOrEmpty(aliasPath) || (aliasPath == "/")) { return 0; } aliasPath = TreePathUtils.GetParentPath(aliasPath); // Get the parent page info PageInfo pi = PageInfoProvider.GetPageInfo(currentNode.NodeSiteName, aliasPath, currentNode.DocumentCulture, null, currentNode.NodeParentID, true); if (pi == null) { return 0; } // Get template used by the page info pageTemplateInfo = pi.UsedPageTemplateInfo; return pageTemplateInfo != null ? pageTemplateInfo.PageTemplateId : 0; }
protected void btnOK_Click(object sender, EventArgs e) { if (pt != null) { // Limit text length txtTemplateDisplayName.Text = TextHelper.LimitLength(txtTemplateDisplayName.Text.Trim(), 200, ""); // finds whether required fields are not empty string result = new Validator() .NotEmpty(txtTemplateDisplayName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateDisplayName")) .NotEmpty(txtTemplateCodeName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateCodeName")) .IsCodeName(txtTemplateCodeName.Text, GetString("general.invalidcodename")) .Result; if (String.IsNullOrEmpty(result)) { // Check if template with given name already exists if (PageTemplateInfoProvider.PageTemplateNameExists(txtTemplateCodeName.Text)) { ShowError(GetString("general.codenameexists")); } bool templateCloned = false; var reusableOrInherited = pt.IsReusable || QueryHelper.GetBoolean("inherits", false); // Clone template when page template is reusable or inherited from the parent page or template shouldn't be assigned to the current page // Do not clone template when page template is ad-hoc and new template should be assigned to the current page if (reusableOrInherited || !chkKeep.Checked) { // Clone template with clear pt = pt.Clone(true); templateCloned = true; } // Moving an ad-hoc template to a reusable template if (!pt.IsReusable) { // Transfer template layout from file system to the database object to ensure that the new layout file (created afterwards) will contain the correct content pt.PageTemplateLayout = pt.PageTemplateLayout; } pt.CodeName = txtTemplateCodeName.Text; pt.DisplayName = txtTemplateDisplayName.Text; pt.Description = txtTemplateDescription.Text; pt.CategoryID = Convert.ToInt32(categorySelector.Value); // Reset the Ad-hoc status pt.IsReusable = true; pt.PageTemplateNodeGUID = Guid.Empty; pt.PageTemplateSiteID = 0; if (templateCloned) { // After all properties were set, reset object original values in order to behave as a new object. This ensures that a new layout file is created and the original one is not deleted. pt.ResetChanges(); } try { PageTemplateInfoProvider.SetPageTemplateInfo(pt); int siteId = QueryHelper.GetInteger("siteid", 0); if (siteId > 0) { PageTemplateInfoProvider.AddPageTemplateToSite(pt.PageTemplateId, siteId); } if (!chkKeep.Checked) { ShowInformation(GetString("PortalEngine.SaveNewPageTemplate.Saved")); txtTemplateCodeName.Text = pt.CodeName; pnlContent.Enabled = false; btnOk.Visible = false; } else { var documentId = QueryHelper.GetInteger("documentId", 0); if (reusableOrInherited && (documentId > 0)) { // Assign the new page template to the current document AssignNewTemplateToDocument(documentId, pt.PageTemplateId); } string script = "SelectTemplate(" + pt.PageTemplateId + ");"; ltlScript.Text = ScriptHelper.GetScript(script); } } catch (Exception ex) { ShowError(ex.Message); } } else { ShowError(result); } } }
protected void Page_Load(object sender, EventArgs e) { this.CurrentMaster.DisplaySiteSelectorPanel = true; if (webpartId != "") { // Get pageinfo pi = GetPageInfo(aliasPath, templateId); if (pi == null) { RedirectToInformation(GetString("WebPartProperties.WebPartNotFound")); return; } // Get page template pti = pi.PageTemplateInfo; if ((pti != null) && ((pti.TemplateInstance != null))) { webPart = pti.TemplateInstance.GetWebPart(instanceGuid, zoneVariantId, variantId) ?? pti.GetWebPart(webpartId); } } // If the web part is not found, do not continue if (webPart == null) { RedirectToInformation(GetString("WebPartProperties.WebPartNotFound")); return; } else { // Get the current layout name if (String.IsNullOrEmpty(LayoutCodeName)) { mLayoutCodeName = ValidationHelper.GetString(webPart.GetValue("WebPartLayout"), ""); } } // Strings lblLayouts.Text = GetString("WebPartPropertise.LayoutList"); if (!RequestHelper.IsPostBack()) { LoadLayouts(); } // Add default drop down items selectLayout.ShowDefaultItem = true; // Add new item if (SettingsKeyProvider.UsingVirtualPathProvider && CurrentUser.IsAuthorizedPerResource("CMS.Design", "EditCode")) { selectLayout.ShowNewItem = true; } webPartInfo = WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType); // Where condition selectLayout.WhereCondition = "WebPartLayoutWebPartID =" + webPartInfo.WebPartID; if (QueryHelper.GetBoolean("reload", false)) { SetContentPage(); } }
/// <summary> /// Loads the web part form. /// </summary> protected void LoadForm() { // Load settings if (!string.IsNullOrEmpty(Request.Form[hdnIsNewWebPart.UniqueID])) { IsNewWebPart = ValidationHelper.GetBoolean(Request.Form[hdnIsNewWebPart.UniqueID], false); } if (!string.IsNullOrEmpty(Request.Form[hdnInstanceGUID.UniqueID])) { InstanceGUID = ValidationHelper.GetGuid(Request.Form[hdnInstanceGUID.UniqueID], Guid.Empty); } // Indicates whether the new variant should be chosen when closing this dialog selectNewVariant = IsNewVariant; // Try to find the web part variant in the database and set its VariantID if (IsNewVariant) { Hashtable varProperties = WindowHelper.GetItem("variantProperties") as Hashtable; if (varProperties != null) { // Get the variant code name from the WindowHelper string variantName = ValidationHelper.GetString(varProperties["codename"], string.Empty); // Check if the variant exists in the database int variantIdFromDB = VariantHelper.GetVariantID(VariantMode, PageTemplateID, variantName, true); // Set the variant id from the database if (variantIdFromDB > 0) { VariantID = variantIdFromDB; IsNewVariant = false; } } } if (!String.IsNullOrEmpty(WebPartID)) { // Get the page info pi = CMSWebPartPropertiesPage.GetPageInfo(AliasPath, PageTemplateID, CultureCode); if (pi != null) { // Get template pti = pi.UsedPageTemplateInfo; // Get template instance templateInstance = pti.TemplateInstance; if (!IsNewWebPart) { // Standard zone webPartInstance = templateInstance.GetWebPart(InstanceGUID, WebPartID); // If the web part not found, try to find it among the MVT/CP variants if (webPartInstance == null) { // MVT/CP variant templateInstance.LoadVariants(false, VariantModeEnum.None); webPartInstance = templateInstance.GetWebPart(InstanceGUID, -1, 0); // Set the VariantMode according to the selected web part/zone variant if ((webPartInstance != null) && (webPartInstance.ParentZone != null)) { VariantMode = (webPartInstance.VariantMode != VariantModeEnum.None) ? webPartInstance.VariantMode : webPartInstance.ParentZone.VariantMode; } else { VariantMode = VariantModeEnum.None; } } else { // Ensure that the ZoneVariantID is not set when the web part was found in a regular zone ZoneVariantID = 0; } if ((VariantID > 0) && (webPartInstance != null) && (webPartInstance.PartInstanceVariants != null)) { // Check OnlineMarketing permissions. if (CheckPermissions("Read")) { webPartInstance = webPartInstance.FindVariant(VariantID); } else { // Not authorized for OnlineMarketing - Manage. RedirectToInformation(String.Format(GetString("general.permissionresource"), "Read", (VariantMode == VariantModeEnum.ContentPersonalization) ? "CMS.ContentPersonalization" : "CMS.MVTest")); } } if (webPartInstance == null) { UIContext.EditedObject = null; return; } } mainWebPartInstance = webPartInstance; // Keep xml version if (webPartInstance != null) { xmlVersion = webPartInstance.XMLVersion; // If data source ID set, edit the data source if (NestedWebPartID > 0) { webPartInstance = webPartInstance.NestedWebParts[NestedWebPartKey] ?? new WebPartInstance() { InstanceGUID = Guid.NewGuid() }; } } // Get the form info FormInfo fi = GetWebPartFormInfo(); // Get the form definition if (fi != null) { fi.ContextResolver.Settings.RelatedObject = templateInstance; form.AllowMacroEditing = ((WebPartTypeEnum)wpi.WebPartType != WebPartTypeEnum.Wireframe); // Get data row with required columns DataRow dr = fi.GetDataRow(); if (IsNewWebPart || (xmlVersion > 0)) { fi.LoadDefaultValues(dr); } // Load values from existing web part LoadDataRowFromWebPart(dr, webPartInstance, fi); // Set a unique WebPartControlID for the new variant if (IsNewVariant || IsNewWebPart) { // Set control ID string webPartControlId = ValidationHelper.GetCodeName(wpi.WebPartDisplayName); dr["WebPartControlID"] = WebPartZoneInstance.GetUniqueWebPartId(webPartControlId, templateInstance); } // Init the form InitForm(form, dr, fi); AddExportLink(); } else { UIContext.EditedObject = null; } } } }
protected void Page_Load(object sender, EventArgs e) { if (RequestHelper.IsPostBack()) { int currentId = ValidationHelper.GetInteger(this.hdnTemplateCode.Value, 0); pti = PageTemplateInfoProvider.GetPageTemplateInfo(currentId); } ScriptHelper.RegisterDialogScript(this.Page); WindowHelper.Add("ShowOnlySiteTemplates", ShowOnlySiteTemplates); ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "SelectTemplate", ScriptHelper.GetScript( "function OpenSelectTemplateDialog (selectorId){modalDialog('" + ResolveUrl("~/CMSModules/PortalEngine/UI/Layout/PageTemplateSelector.aspx") + "?selectorid=' + selectorId + '&selectedPageTemplateId=' + document.getElementById(selectorId + '_hdnTemplateCode').value, 'PageTemplateSelection', '90%', '85%'); return false;} \n" + "function OnSelectPageTemplate(templateID, templateName, selectorId) { if (document.getElementById(selectorId + '_txtTemplate') != null) document.getElementById(selectorId + '_txtTemplate').value = templateName; if (document.getElementById(selectorId + '_hdnTemplateCode') != null) document.getElementById(selectorId + '_hdnTemplateCode').value = templateID; if ((templateName != null)&&(templateName != '')) setTimeout('BTN_Enable(\"' + selectorId + '_btnClear\");', 0);} \n" + "function ClearTemplate(selectorId) { document.getElementById(selectorId + '_txtTemplate').value = ''; document.getElementById(selectorId + '_hdnTemplateCode').value = 0; return false;} \n" )); btnSelect.OnClientClick = "return OpenSelectTemplateDialog('" + this.ClientID + "');"; btnClear.Attributes.Add("onclick", "return ClearTemplate('" + this.ClientID + "');"); btnSelect.Text = GetString("general.select"); btnClear.Text = GetString("general.clear"); }
/// <summary> /// Select button click /// </summary> protected void btnSelect_Click(object sender, EventArgs e) { pti = null; }
/// <summary> /// Ensures the template from the selection and returns the template ID. /// </summary> /// <param name="documentName">Document name for the ad-hoc template</param> /// <param name="nodeGuid">Owner node GUID in case of ad-hoc template</param> /// <param name="errorMessage">Returns the error message</param> public PageTemplateInfo EnsureTemplate(string documentName, Guid nodeGuid, ref string errorMessage) { bool cloneAsAdHoc = false; bool masterOnly = false; PageTemplateInfo templateInfo = null; // Template selection if (radUseTemplate.Checked) { // Template page int templateId = ValidationHelper.GetInteger(templateSelector.SelectedItem, 0); if (templateId > 0) { // Get the template and check if it should be cloned templateInfo = PageTemplateInfoProvider.GetPageTemplateInfo(templateId); if (templateInfo != null) { cloneAsAdHoc = templateInfo.PageTemplateCloneAsAdHoc; } } else { errorMessage = GetString("NewPage.TemplateError"); // Reload template selector to show correct subtree templateSelector.ResetToDefault(); } } else if (radInherit.Checked) { // Inherited page } else if (radCreateBlank.Checked || radCreateEmpty.Checked) { // Create custom template info for the page templateInfo = new PageTemplateInfo(); if (radCreateBlank.Checked) { // Blank page with layout int layoutId = ValidationHelper.GetInteger(layoutSelector.SelectedItem, 0); if (layoutId > 0) { templateInfo.LayoutID = layoutId; // Copy layout to selected template if (chkLayoutPageTemplate.Checked) { templateInfo.LayoutID = 0; LayoutInfo li = LayoutInfoProvider.GetLayoutInfo(layoutId); if (li != null) { templateInfo.PageTemplateLayout = li.LayoutCode; templateInfo.PageTemplateLayoutType = li.LayoutType; } else { errorMessage = GetString("NewPage.LayoutError"); } } } else { errorMessage = GetString("NewPage.LayoutError"); } } else if (radCreateEmpty.Checked) { // Empty template templateInfo.LayoutID = 0; templateInfo.PageTemplateLayout = "<cms:CMSWebPartZone ZoneID=\"zoneA\" runat=\"server\" />"; templateInfo.PageTemplateLayoutType = LayoutTypeEnum.Ascx; } if (String.IsNullOrEmpty(errorMessage)) { cloneAsAdHoc = true; masterOnly = true; } } if (cloneAsAdHoc) { // Prepare ad-hoc template name string displayName = "Ad-hoc: " + documentName; // Create ad-hoc template templateInfo = PageTemplateInfoProvider.CloneTemplateAsAdHoc(templateInfo, displayName, SiteContext.CurrentSiteID, nodeGuid); // Set inherit only master if (masterOnly) { templateInfo.InheritPageLevels = "\\"; } PageTemplateInfoProvider.SetPageTemplateInfo(templateInfo); if (SiteContext.CurrentSite != null) { PageTemplateInfoProvider.AddPageTemplateToSite(templateInfo.PageTemplateId, SiteContext.CurrentSiteID); } CheckOutTemplate(templateInfo); } // Assign owner node GUID if ((templateInfo != null) && !templateInfo.IsReusable) { templateInfo.PageTemplateNodeGUID = nodeGuid; } // Reload the template selector in case of error if (!String.IsNullOrEmpty(errorMessage)) { if (radUseTemplate.Checked) { templateSelector.ReloadData(); } } return templateInfo; }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); CurrentMaster.DisplaySiteSelectorPanel = true; if (webpartId != "") { // Get pageinfo pi = GetPageInfo(aliasPath, templateId, cultureCode); if (pi == null) { RedirectToInformation(GetString("WebPartProperties.WebPartNotFound")); return; } // Get page template pti = pi.UsedPageTemplateInfo; if ((pti != null) && ((pti.TemplateInstance != null))) { webPart = pti.TemplateInstance.GetWebPart(instanceGuid, zoneVariantId, variantId) ?? pti.TemplateInstance.GetWebPart(webpartId); } } bool hide = false; // If the web part is not found, do not continue // Redirect to information is in main window, just hide selector if (webPart == null) { hide = true; } else { webPartInfo = WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType); if (webPartInfo == null) { hide = true; } // Get the current layout name if (String.IsNullOrEmpty(LayoutCodeName)) { mLayoutCodeName = ValidationHelper.GetString(webPart.GetValue("WebPartLayout"), ""); } } if (hide) { pnlContent.Visible = false; return; } // Strings lblLayouts.Text = GetString("WebPartPropertise.LayoutList"); // Add default drop down items selectLayout.ShowDefaultItem = true; // Add new item if (CurrentUser.IsAuthorizedPerResource("CMS.Design", "EditCode")) { selectLayout.ShowNewItem = true; } // Set where condition selectLayout.WhereCondition = "WebPartLayoutWebPartID =" + webPartInfo.WebPartID; // Hide loader, it appears on wrong position because of small frame selectLayout.UniSelector.OnBeforeClientChanged = "if (window.Loader) { window.Loader.hide(); }"; // Load layouts if (!RequestHelper.IsPostBack() && (LayoutCodeName != "")) { selectLayout.Value = LayoutCodeName; } // Reload the content page if required if (!RequestHelper.IsPostBack() || QueryHelper.GetBoolean("reload", false)) { LoadContentPage(); } }
/// <summary> /// Creates page template. Called when the "Create template" button is pressed. /// </summary> private bool CreatePageTemplate() { // Get the page template category PageTemplateCategoryInfo category = PageTemplateCategoryInfoProvider.GetPageTemplateCategoryInfo("MyNewCategory"); if (category != null) { // Create new page template object PageTemplateInfo newTemplate = new PageTemplateInfo(); // Set the properties newTemplate.DisplayName = "My new template"; newTemplate.CodeName = "MyNewTemplate"; newTemplate.Description = "This is page template created by API Example"; newTemplate.PageTemplateSiteID = SiteContext.CurrentSiteID; newTemplate.FileName = " "; newTemplate.ShowAsMasterTemplate = false; newTemplate.IsPortal = true; newTemplate.InheritPageLevels = ""; // inherits all newTemplate.IsReusable = true; newTemplate.CategoryID = category.CategoryId; // Save the page template PageTemplateInfoProvider.SetPageTemplateInfo(newTemplate); return true; } return false; }
/// <summary> /// OnInit event (BasicForm initialization). /// </summary> protected override void OnInit(EventArgs e) { base.OnInit(e); string zoneId = QueryHelper.GetString("zoneid", ""); string aliasPath = QueryHelper.GetString("aliaspath", ""); int templateId = QueryHelper.GetInteger("templateid", 0); string culture = QueryHelper.GetString("culture", LocalizationContext.PreferredCultureCode); mZoneVariantID = QueryHelper.GetInteger("variantid", 0); mIsNewVariant = QueryHelper.GetBoolean("isnewvariant", false); variantMode = VariantModeFunctions.GetVariantModeEnum(QueryHelper.GetString("variantmode", string.Empty)); // When displaying an existing variant of a web part, get the variant mode for its original web part if (ZoneVariantID > 0) { PageTemplateInfo pti = PageTemplateInfoProvider.GetPageTemplateInfo(templateId); if ((pti != null) && ((pti.TemplateInstance != null))) { // Get the original webpart and retrieve its variant mode WebPartZoneInstance zoneInstance = pti.TemplateInstance.GetZone(zoneId); if ((zoneInstance != null) && (zoneInstance.VariantMode != VariantModeEnum.None)) { variantMode = zoneInstance.VariantMode; } } } // Try to find the zone variant in the database and set its VariantID if (IsNewVariant) { Hashtable properties = WindowHelper.GetItem("variantProperties") as Hashtable; if (properties != null) { // Get the variant code name from the WindowHelper string variantName = ValidationHelper.GetString(properties["codename"], string.Empty); // Check if the variant exists in the database int variantIdFromDB = VariantHelper.GetVariantID(variantMode, templateId, variantName, true); // Set the variant id from the database if (variantIdFromDB > 0) { mZoneVariantID = variantIdFromDB; mIsNewVariant = false; } } } if (!String.IsNullOrEmpty(zoneId)) { // Get page info pi = CMSWebPartPropertiesPage.GetPageInfo(aliasPath, templateId, culture); if (pi == null) { ShowInformation(GetString("webpartzone.notfound")); pnlFormArea.Visible = false; return; } // Get template pti = pi.UsedPageTemplateInfo; if (pti != null) { // Get web part zone pti.TemplateInstance.EnsureZone(zoneId); webPartZone = pti.TemplateInstance.GetZone(zoneId); if ((ZoneVariantID > 0) && (webPartZone != null) && (webPartZone.ZoneInstanceVariants != null)) { // Check OnlineMarketing permissions if (CheckPermissions("Read")) { webPartZone = webPartZone.ZoneInstanceVariants.Find(v => v.VariantID.Equals(ZoneVariantID)); } else { // Not authorized for OnlineMarketing - Manage. RedirectToInformation(String.Format(GetString("general.permissionresource"), "Read", (variantMode == VariantModeEnum.ContentPersonalization) ? "CMS.ContentPersonalization" : "CMS.MVTest")); } } if (webPartZone == null) { ShowInformation(GetString("webpartzone.notfound")); pnlFormArea.Visible = false; return; } FormInfo fi = BuildFormInfo(webPartZone); // Get the DataRow and fill the data row with values DataRow dr = fi.GetDataRow(); foreach (DataColumn column in dr.Table.Columns) { try { DataHelper.SetDataRowValue(dr, column.ColumnName, webPartZone.GetValue(column.ColumnName)); } catch { } } // Initialize Form formElem.DataRow = dr; formElem.MacroTable = webPartZone.MacroTable; formElem.SubmitButton.Visible = false; formElem.SiteName = SiteContext.CurrentSiteName; formElem.FormInformation = fi; formElem.ShowPrivateFields = true; formElem.OnAfterDataLoad += formElem_OnAfterDataLoad; // HTML editor toolbar if (fi.UsesHtmlArea()) { plcToolbarPadding.Visible = true; plcToolbar.Visible = true; pnlFormArea.Height = 285; } } } }
/// <summary> /// Gets and bulk updates page templates. Called when the "Get and bulk update templates" button is pressed. /// Expects the CreatePageTemplate method to be run first. /// </summary> private bool GetAndBulkUpdatePageTemplates() { // Prepare the parameters string where = "PageTemplateCodeName LIKE N'MyNewTemplate%'"; // Get the data DataSet templates = PageTemplateInfoProvider.GetTemplates().Where(where); if (!DataHelper.DataSourceIsEmpty(templates)) { // Loop through the individual items foreach (DataRow templateDr in templates.Tables[0].Rows) { // Create object from DataRow PageTemplateInfo modifyTemplate = new PageTemplateInfo(templateDr); // Update the properties modifyTemplate.DisplayName = modifyTemplate.DisplayName.ToUpper(); // Save the changes PageTemplateInfoProvider.SetPageTemplateInfo(modifyTemplate); } return true; } return false; }
protected void Page_Load(object sender, EventArgs e) { pageTemplateId = QueryHelper.GetInteger("templateid", 0); if (pageTemplateId > 0) { pt = PageTemplateInfoProvider.GetPageTemplateInfo(pageTemplateId); } categorySelector.StartingPath = QueryHelper.GetString("startingpath", String.Empty); // Check the authorization per UI element var currentUser = MembershipContext.AuthenticatedUser; if (!currentUser.IsAuthorizedPerUIElement("CMS.Content", new[] { "Properties", "Properties.Template", "Template.SaveAsNew" }, SiteContext.CurrentSiteName)) { RedirectToUIElementAccessDenied("CMS.Content", "Properties;Properties.Template;Template.SaveAsNew"); } PageTitle.TitleText = GetString("PortalEngine.SaveNewPageTemplate.PageTitle"); // Set category selector if (!RequestHelper.IsPostBack() && (pt != null)) { categorySelector.Value = pt.CategoryID.ToString(); } }
/// <summary> /// Gets the inherited page template from the parent node /// </summary> /// <param name="node">Document node</param> protected int GetInheritedPageTemplateId(TreeNode node) { string aliasPath = node.NodeAliasPath; // For root, there is no inheritance possible if (String.IsNullOrEmpty(aliasPath) || (aliasPath == "/")) { return 0; } aliasPath = TreePathUtils.GetParentPath(aliasPath); // Get the page info PageInfo pi = PageInfoProvider.GetPageInfo(node.NodeSiteName, aliasPath, node.DocumentCulture, node.DocumentUrlPath, node.NodeParentID, true); if (pi != null) { // Get template used by the page info pti = pi.UsedPageTemplateInfo; if (pti != null) { return pti.PageTemplateId; } } return 0; }
/// <summary> /// Handles form's after data load event. /// </summary> protected void EditForm_OnAfterDataLoad(object sender, EventArgs e) { etaCode.Language = LanguageEnum.HTML; cssLayoutEditor.Editor.Language = LanguageEnum.CSS; cssLayoutEditor.Editor.ShowBookmarks = true; // Do not check changes DocumentManager.RegisterSaveChangesScript = false; EditForm.OnBeforeSave += EditForm_OnBeforeSave; etaCode.Language = LanguageEnum.HTML; wpli = UIContext.EditedObject as WebPartLayoutInfo; layoutID = QueryHelper.GetInteger("layoutid", 0); isSiteManager = ((MembershipContext.AuthenticatedUser.IsGlobalAdministrator && layoutID != 0) || QueryHelper.GetBoolean("sitemanager", false)); isNew = (LayoutCodeName == "|new|"); isDefault = (LayoutCodeName == "|default|") || (!isSiteManager && string.IsNullOrEmpty(LayoutCodeName)); if ((wpli == null) || (wpli.WebPartLayoutID <= 0)) { isNew |= isSiteManager; editMenuElem.ObjectManager.ObjectType = WebPartLayoutInfo.OBJECT_TYPE; } ScriptHelper.RegisterClientScriptBlock(Page, typeof(string), "PreviewHierarchyPerformAction", ScriptHelper.GetScript("function actionPerformed(action) { if (action == 'saveandclose') { document.getElementById('" + hdnClose.ClientID + "').value = '1'; } " + editMenuElem.ObjectManager.GetJSFunction(ComponentEvents.SAVE, null, null) + "; }")); currentUser = MembershipContext.AuthenticatedUser; // Get web part instance (if edited in CMSDesk) if ((webpartId != "") && !isSiteManager) { // Get page info pi = CMSWebPartPropertiesPage.GetPageInfo(aliasPath, templateId, culture); if (pi == null) { ShowInformation(GetString("WebPartProperties.WebPartNotFound"), persistent: false); } else { // Get page template pti = pi.UsedPageTemplateInfo; if ((pti != null) && ((pti.TemplateInstance != null))) { webPart = pti.TemplateInstance.GetWebPart(instanceGuid, zoneVariantId, variantId) ?? pti.TemplateInstance.GetWebPart(webpartId); } } } // If the web part is not found, try web part ID if (webPart == null) { wpi = WebPartInfoProvider.GetWebPartInfo(ValidationHelper.GetInteger(webpartId, 0)); if (wpi == null) { ShowError(GetString("WebPartProperties.WebPartNotFound")); startWithFullScreen = false; return; } } else { // CMS desk wpi = WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType); if (string.IsNullOrEmpty(LayoutCodeName)) { // Get the current layout name LayoutCodeName = ValidationHelper.GetString(webPart.GetValue("WebPartLayout"), ""); } } if (wpi != null) { // Load the web part information webPartInfo = wpi; bool loaded = false; if (!RequestHelper.IsPostBack()) { if (wpli != null) { editMenuElem.MenuPanel.Visible = true; // Read-only code text area etaCode.Editor.ReadOnly = false; loaded = true; } if (!loaded) { string fileName = webPartInfo.WebPartFileName; if (webPartInfo.WebPartParentID > 0) { WebPartInfo pwpi = WebPartInfoProvider.GetWebPartInfo(webPartInfo.WebPartParentID); if (pwpi != null) { fileName = pwpi.WebPartFileName; } } if (!fileName.StartsWithCSafe("~")) { fileName = "~/CMSWebparts/" + fileName; } // Check if filename exist if (!FileHelper.FileExists(fileName)) { ShowError(GetString("WebPartProperties.FileNotExist")); pnlContent.Visible = false; editMenuElem.ObjectEditMenu.Visible = false; } else { // Load default web part layout code etaCode.Text = File.ReadAllText(Server.MapPath(fileName)); // Load default web part CSS cssLayoutEditor.Text = wpi.WebPartCSS; startWithFullScreen = false; } } } } if (((wpli == null) || (wpli.WebPartLayoutID <= 0)) && isSiteManager) { editMenuElem.Title.Breadcrumbs.AddBreadcrumb(new BreadcrumbItem { Text = GetString("WebParts.Layout"), RedirectUrl = String.Format("{0}&parentobjectid={1}&displaytitle={2}", UIContextHelper.GetElementUrl("CMS.Design", "WebPart.Layout"), QueryHelper.GetInteger("webpartid", 0), false) }); editMenuElem.Title.Breadcrumbs.AddBreadcrumb(new BreadcrumbItem { Text = GetString("webparts_layout_newlayout"), }); } ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "ApplyButton", ScriptHelper.GetScript( "function SetRefresh(refreshpage) { document.getElementById('" + hidRefresh.ClientID + @"').value = refreshpage; } function OnApplyButton(refreshpage) { SetRefresh(refreshpage); actionPerformed('save');refreshPreview(); } function OnOKButton(refreshpage) { SetRefresh(refreshpage); actionPerformed('saveandclose'); } ")); InitLayoutForm(); }
protected void Page_Load(object sender, EventArgs e) { pageTemplateId = QueryHelper.GetInteger("templateid", 0); if (pageTemplateId > 0) { pt = PageTemplateInfoProvider.GetPageTemplateInfo(pageTemplateId); } // Check the authorization per UI element CurrentUserInfo currentUser = CMSContext.CurrentUser; if (!currentUser.IsAuthorizedPerUIElement("CMS.Content", new string[] { "Properties", "Properties.Template", "Template.SaveAsNew" }, CMSContext.CurrentSiteName)) { RedirectToCMSDeskUIElementAccessDenied("CMS.Content", "Properties;Properties.Template;Template.SaveAsNew"); } CurrentMaster.Title.TitleText = GetString("PortalEngine.SaveNewPageTemplate.PageTitle"); CurrentMaster.Title.TitleImage = GetImageUrl("CMSModules/CMS_Content/Template/save.png"); lblTemplateDisplayName.Text = GetString("PortalEngine.SaveNewPageTemplate.DisplayName"); lblTemplateDescription.Text = GetString("PortalEngine.SaveNewPageTemplate.Description"); lblTemplateCategory.Text = GetString("PortalEngine.SaveNewPageTemplate.Category"); lblTemplateCodeName.Text = GetString("PortalEngine.SaveNewPageTemplate.CodeName"); btnOk.Text = GetString("general.ok"); btnCancel.Text = GetString("general.cancel"); rfvTemplateDisplayName.ErrorMessage = GetString("PortalEngine.SaveNewPageTemplate.rfvDisplayNameMsg"); rfvTemplateCodeName.ErrorMessage = GetString("PortalEngine.SaveNewPageTemplate.rfvCodeNameMsg"); // Preset category if (!RequestHelper.IsPostBack()) { if (pt != null) { categorySelector.Value = pt.CategoryID.ToString(); } } }
/// <summary> /// Init event handler. /// </summary> protected override void OnInit(EventArgs e) { base.OnInit(e); // Setup basic form on live site formCustom.AllowMacroEditing = false; formCustom.IsLiveSite = IsLiveSite; // Load settings if (!String.IsNullOrEmpty(Request.Form[hdnIsNewWebPart.UniqueID])) { IsNewWidget = ValidationHelper.GetBoolean(Request.Form[hdnIsNewWebPart.UniqueID], false); } if (!String.IsNullOrEmpty(Request.Form[hdnInstanceGUID.UniqueID])) { InstanceGUID = ValidationHelper.GetGuid(Request.Form[hdnInstanceGUID.UniqueID], Guid.Empty); } // Try to find the widget variant in the database and set its VariantID if (IsNewVariant) { Hashtable properties = WindowHelper.GetItem("variantProperties") as Hashtable; if (properties != null) { // Get the variant code name from the WindowHelper string variantName = ValidationHelper.GetString(properties["codename"], string.Empty); // Check if the variant exists in the database int variantIdFromDB = 0; if (VariantMode == VariantModeEnum.MVT) { variantIdFromDB = ModuleCommands.OnlineMarketingGetMVTVariantId(PageTemplateId, variantName); } else if (VariantMode == VariantModeEnum.ContentPersonalization) { variantIdFromDB = ModuleCommands.OnlineMarketingGetContentPersonalizationVariantId(PageTemplateId, variantName); } // Set the variant id from the database if (variantIdFromDB > 0) { VariantID = variantIdFromDB; IsNewVariant = false; } } } EnsureDashboard(); if (!String.IsNullOrEmpty(WidgetId) && !IsInline) { // Get pageinfo try { pi = CMSWebPartPropertiesPage.GetPageInfo(AliasPath, PageTemplateId); } catch (PageNotFoundException) { // Do not throw exception if page info not found (e.g. bad alias path) } if (pi == null) { lblInfo.Text = GetString("Widgets.Properties.aliasnotfound"); lblInfo.Visible = true; pnlFormArea.Visible = false; return; } // Get template pti = pi.PageTemplateInfo; // Get template instance templateInstance = CMSPortalManager.GetTemplateInstanceForEditing(pi); if (!IsNewWidget) { // Get the instance of widget widgetInstance = templateInstance.GetWebPart(InstanceGUID, WidgetId); if (widgetInstance == null) { lblInfo.Text = GetString("Widgets.Properties.WidgetNotFound"); lblInfo.Visible = true; pnlFormArea.Visible = false; return; } if ((VariantID > 0) && (widgetInstance != null) && (widgetInstance.PartInstanceVariants != null)) { // Check OnlineMarketing permissions. if (CheckPermissions("Read")) { widgetInstance = pi.DocumentTemplateInstance.GetWebPart(InstanceGUID, WidgetId); widgetInstance = widgetInstance.PartInstanceVariants.Find(v => v.VariantID.Equals(VariantID)); // Set the widget variant mode if (widgetInstance != null) { VariantMode = widgetInstance.VariantMode; } } else { // Not authorised for OnlineMarketing - Manage. RedirectToInformation(String.Format(GetString("general.permissionresource"), "Read", (VariantMode == VariantModeEnum.ContentPersonalization) ? "CMS.ContentPersonalization" : "CMS.MVTest")); } } // Get widget info by widget name(widget type) wi = WidgetInfoProvider.GetWidgetInfo(widgetInstance.WebPartType); } // Widget instance hasn't created yet else { wi = WidgetInfoProvider.GetWidgetInfo(ValidationHelper.GetInteger(WidgetId, 0)); } CMSPage.EditedObject = wi; zoneType = ZoneType; // Get the zone to which it inserts WebPartZoneInstance zone = templateInstance.GetZone(ZoneId); if ((zoneType == WidgetZoneTypeEnum.None) && (zone != null)) { zoneType = zone.WidgetZoneType; } // Check security CurrentUserInfo currentUser = CMSContext.CurrentUser; switch (zoneType) { // Group zone => Only group widgets and group admin case WidgetZoneTypeEnum.Group: // Should always be, only group widget are allowed in group zone if (!wi.WidgetForGroup || (!currentUser.IsGroupAdministrator(pi.NodeGroupId) && ((CMSContext.ViewMode != ViewModeEnum.Design) || ((CMSContext.ViewMode == ViewModeEnum.Design) && (!currentUser.IsAuthorizedPerResource("CMS.Design", "Design")))))) { if (OnNotAllowed != null) { OnNotAllowed(this, null); } } break; // Widget must be allowed for editor zones case WidgetZoneTypeEnum.Editor: if (!wi.WidgetForEditor) { if (OnNotAllowed != null) { OnNotAllowed(this, null); } } break; // Widget must be allowed for user zones case WidgetZoneTypeEnum.User: if (!wi.WidgetForUser) { if (OnNotAllowed != null) { OnNotAllowed(this, null); } } break; // Widget must be allowed for dasboard zones case WidgetZoneTypeEnum.Dashboard: if (!wi.WidgetForDashboard) { if (OnNotAllowed != null) { OnNotAllowed(this, null); } } break; } // Check security if ((zoneType != WidgetZoneTypeEnum.Group) && !WidgetRoleInfoProvider.IsWidgetAllowed(wi, currentUser.UserID, currentUser.IsAuthenticated())) { if (OnNotAllowed != null) { OnNotAllowed(this, null); } } // Get form schemas wpi = WebPartInfoProvider.GetWebPartInfo(wi.WidgetWebPartID); FormInfo zoneTypeDefinition = PortalHelper.GetPositionFormInfo(zoneType); string widgetProperties = FormHelper.MergeFormDefinitions(wpi.WebPartProperties, wi.WidgetProperties); FormInfo fi = FormHelper.GetWidgetFormInfo(wi.WidgetName, Enum.GetName(typeof(WidgetZoneTypeEnum), zoneType), widgetProperties, zoneTypeDefinition, true); if (fi != null) { // Check if there are some editable properties FormFieldInfo[] ffi = fi.GetFields(true, false); if ((ffi == null) || (ffi.Length == 0)) { lblInfo.Visible = true; lblInfo.Text = GetString("widgets.emptyproperties"); } // Get datarows with required columns DataRow dr = CombineWithDefaultValues(fi, wi); // Load default values for new widget if (IsNewWidget) { fi.LoadDefaultValues(dr, FormResolveTypeEnum.Visible); // Overide default value and set title as widget display name DataHelper.SetDataRowValue(dr, "WidgetTitle", ResHelper.LocalizeString(wi.WidgetDisplayName)); } // Load values from existing widget LoadDataRowFromWidget(dr); // Init HTML toolbar if exists InitHTMLToobar(fi); // Init the form InitForm(formCustom, dr, fi); // Set the context name formCustom.ControlContext.ContextName = CMS.SiteProvider.ControlContext.WIDGET_PROPERTIES; } } if (IsInline) { //Load text definition from session string definition = ValidationHelper.GetString(SessionHelper.GetValue("WidgetDefinition"), string.Empty); if (String.IsNullOrEmpty(definition)) { definition = Request.Form[hdnWidgetDefinition.UniqueID]; } else { hdnWidgetDefinition.Value = definition; } Hashtable parameters = null; if (IsNewWidget) { // new wdiget - load widget info by id if (!String.IsNullOrEmpty(WidgetId)) { wi = WidgetInfoProvider.GetWidgetInfo(ValidationHelper.GetInteger(WidgetId, 0)); } else { // Try to get widget from codename mName = QueryHelper.GetString("WidgetName", String.Empty); wi = WidgetInfoProvider.GetWidgetInfo(mName); } } else { if (definition == null) { ShowError("widget.failedtoload"); return; } //parse defininiton parameters = CMSDialogHelper.GetHashTableFromString(definition); //trim control name if (parameters["name"] != null) { mName = parameters["name"].ToString(); } wi = WidgetInfoProvider.GetWidgetInfo(mName); } if (wi == null) { ShowError("widget.failedtoload"); return; } //If widget cant be used asi inline if (!wi.WidgetForInline) { ShowError("widget.cantbeusedasinline"); return; } //Test permission for user CurrentUserInfo currentUser = CMSContext.CurrentUser; if (!WidgetRoleInfoProvider.IsWidgetAllowed(wi, currentUser.UserID, currentUser.IsAuthenticated())) { mIsValidWidget = false; OnNotAllowed(this, null); } //If user is editor, more properties are shown WidgetZoneTypeEnum zoneType = WidgetZoneTypeEnum.User; if (currentUser.IsEditor) { zoneType = WidgetZoneTypeEnum.Editor; } WebPartInfo wpi = WebPartInfoProvider.GetWebPartInfo(wi.WidgetWebPartID); string widgetProperties = FormHelper.MergeFormDefinitions(wpi.WebPartProperties, wi.WidgetProperties); FormInfo zoneTypeDefinition = PortalHelper.GetPositionFormInfo(zoneType); FormInfo fi = FormHelper.GetWidgetFormInfo(wi.WidgetName, Enum.GetName(typeof(WidgetZoneTypeEnum), zoneType), widgetProperties, zoneTypeDefinition, true); if (fi != null) { // Check if there are some editable properties mFields = fi.GetFields(true, true); if ((mFields == null) || (mFields.Length == 0)) { lblInfo.Visible = true; lblInfo.Text = GetString("widgets.emptyproperties"); } // Get datarows with required columns DataRow dr = CombineWithDefaultValues(fi, wi); if (IsNewWidget) { // Load default values for new widget fi.LoadDefaultValues(dr, FormResolveTypeEnum.Visible); } else { foreach (string key in parameters.Keys) { string value = parameters[key].ToString(); // Test if given property exists if (dr.Table.Columns.Contains(key) && !String.IsNullOrEmpty(value)) { try { dr[key] = value; } catch { } } } } // Overide default value and set title as widget display name DataHelper.SetDataRowValue(dr, "WidgetTitle", wi.WidgetDisplayName); // Init HTML toolbar if exists InitHTMLToobar(fi); // Init the form InitForm(formCustom, dr, fi); // Set the context name formCustom.ControlContext.ContextName = CMS.SiteProvider.ControlContext.WIDGET_PROPERTIES; } } }