/// <summary> /// Control ID validation. /// </summary> private void formElem_OnItemValidation(object sender, ref string errorMessage) { Control ctrl = (Control)sender; if (ctrl.ID.ToLowerCSafe() == "webpartcontrolid") { FormEngineUserControl ctrlTextbox = (FormEngineUserControl)ctrl; string newId = ValidationHelper.GetString(ctrlTextbox.Value, null); // Validate unique ID WebPartInstance existingPart = pti.GetWebPart(newId); if ((existingPart != null) && ((webPartInstance == null) || (existingPart.InstanceGUID != webPartInstance.InstanceGUID))) { // Error - duplicity IDs errorMessage = GetString("WebPartProperties.ErrorUniqueID"); } else { string uniqueId = WebPartZoneInstance.GetUniqueWebPartId(newId, pi.TemplateInstance); if (!uniqueId.EqualsCSafe(newId, true)) { // Check if there is already a widget with the same id in the page existingPart = pi.TemplateInstance.GetWebPart(newId); if ((existingPart != null) && existingPart.IsWidget) { // Error - the ID collide with another widget which is already in the page errorMessage = ResHelper.GetString("WidgetProperties.ErrorUniqueID"); } } } } }
/// <summary> /// Initializes menu. /// </summary> protected void InitalizeMenu() { if (webpartId != "") { // get pageinfo PageInfo pi = GetPageInfo(aliasPath, templateId); if (pi == null) { this.Visible = false; return; } PageTemplateInfo pti = pi.PageTemplateInfo; 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"), "").Trim() != "") { 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 = "<table cellpadding=\"0\" cellspacing=\"0\"><tr><td>"; ltr.Text += "<a onclick=\"" + docScript + "\" href=\"#\"><img src=\"" + ResolveUrl(GetImageUrl("CMSModules/CMS_PortalEngine/Documentation.png")) + "\" style=\"border-width: 0px;\"></a>"; ltr.Text += "</td>"; ltr.Text += "<td>"; ltr.Text += "<a onclick=\"" + docScript + "\" href=\"#\">" + GetString("WebPartPropertie.DocumentationLink") + "</a>"; ltr.Text += "</td></tr></table>"; PageTitle.TitleText = GetString("WebpartProperties.Title") + " (" + HTMLHelper.HTMLEncode(ResHelper.LocalizeString(wi.WebPartDisplayName)) + ")"; } } } CurrentUserInfo currentUser = CMSContext.CurrentUser; tabsElem.UrlTarget = "webpartpropertiescontent"; }
/// <summary> /// Control ID validation. /// </summary> protected void formElem_OnItemValidation(object sender, ref string errorMessage) { Control ctrl = (Control)sender; if (String.Compare(ctrl.ID, "widgetcontrolid", StringComparison.InvariantCultureIgnoreCase) == 0) { TextBox ctrlTextbox = (TextBox)ctrl; string newId = ctrlTextbox.Text; // Validate unique ID WebPartInstance existingPart = pti.GetWebPart(newId); if ((existingPart != null) && (existingPart != widgetInstance) && (existingPart.InstanceGUID != widgetInstance.InstanceGUID)) { // Error - duplicit IDs errorMessage = GetString("Widgets.Properties.ErrorUniqueID"); } } }
/// <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; } } }
protected void Page_Load(object sender, EventArgs e) { // Check permissions for web part properties UI CurrentUserInfo currentUser = CMSContext.CurrentUser; if (!currentUser.IsAuthorizedPerUIElement("CMS.Content", "WebPartProperties.Layout")) { RedirectToCMSDeskUIElementAccessDenied("CMS.Content", "WebPartProperties.Layout"); } WebPartInstance webPart = null; if (webpartId != "") { // Get pageinfo PageInfo pi = GetPageInfo(aliasPath, templateId); if (pi != null) { // Get page template PageTemplateInfo pti = pi.PageTemplateInfo; // Get web part 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) { 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(1, "webpartlayoutcontent"); SetTab(0, GetString("general.general"), "webpartproperties_layout.aspx" + URLHelper.RemoveParameterFromUrl(URLHelper.Url.Query, "saved"), null); }
/// <summary> /// Init event handler. /// </summary> protected override void OnInit(EventArgs e) { base.OnInit(e); // 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); } // Try to find the web part 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; } } } if (!String.IsNullOrEmpty(WebpartId)) { // Get the page info pi = CMSWebPartPropertiesPage.GetPageInfo(this.AliasPath, this.PageTemplateId); if (pi != null) { // Get template pti = pi.PageTemplateInfo; // Get template instance templateInstance = pti.TemplateInstance; // Parent webpart WebPartInfo parentWpi = null; //Before FormInfo FormInfo beforeFI = null; //After FormInfo FormInfo afterFI = null; // Webpart form info FormInfo fi = null; if (!IsNewWebPart) { // Standard zone webPartInstance = pti.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, true); // 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 ZoneVarianID is not set when the web part was found in a regural zone. ZoneVariantID = 0; } if ((VariantID > 0) && (webPartInstance != null) && (webPartInstance.PartInstanceVariants != null)) { // Check OnlineMarketing permissions. if (CheckPermissions("Read")) { webPartInstance = webPartInstance.FindVariant(VariantID); } else { // Not authorised for OnlineMarketing - Manage. RedirectToInformation(String.Format(GetString("general.permissionresource"), "Read", (VariantMode == VariantModeEnum.ContentPersonalization) ? "CMS.ContentPersonalization" : "CMS.MVTest")); } } if (webPartInstance == null) { lblInfo.Text = GetString("WebPartProperties.WebPartNotFound"); pnlFormArea.Visible = false; return; } wpi = WebPartInfoProvider.GetWebPartInfo(webPartInstance.WebPartType); form.Mode = FormModeEnum.Update; } // Webpart instance hasn't created yet else { wpi = WebPartInfoProvider.GetWebPartInfo(ValidationHelper.GetInteger(WebpartId, 0)); form.Mode = FormModeEnum.Insert; } // Load parent if (wpi != null) { if (wpi.WebPartParentID > 0) { parentWpi = WebPartInfoProvider.GetWebPartInfo(wpi.WebPartParentID); } } // Get the form definition string wpProperties = "<form></form>"; if (wpi != null) { wpProperties = wpi.WebPartProperties; // Use parent webpart if is defined if (parentWpi != null) { wpProperties = parentWpi.WebPartProperties; } // Get before FormInfo if (BeforeFormDefinition == null) { beforeFI = PortalHelper.GetPositionFormInfo((WebPartTypeEnum)wpi.WebPartType, PropertiesPosition.Before); } else { beforeFI = new FormInfo(BeforeFormDefinition); } // Get after FormInfo if (AfterFormDefinition == null) { afterFI = PortalHelper.GetPositionFormInfo((WebPartTypeEnum)wpi.WebPartType, PropertiesPosition.After); } else { afterFI = new FormInfo(AfterFormDefinition); } } // Add 'General' category at the beginning if no one is specified if (!string.IsNullOrEmpty(wpProperties) && (!wpProperties.StartsWith("<form><category", StringComparison.InvariantCultureIgnoreCase))) { wpProperties = wpProperties.Insert(6, "<category name=\"" + GetString("general.general") + "\" />"); } // Get merged web part FormInfo fi = FormHelper.GetWebPartFormInfo(wpi.WebPartName, wpProperties, beforeFI, afterFI, true); // Get datarow with required columns DataRow dr = fi.GetDataRow(); if (IsNewWebPart) { // Load default properties values fi.LoadDefaultValues(dr); // Load overriden system values fi.LoadDefaultValues(dr, wpi.WebPartDefaultValues); // Set control ID FormFieldInfo ffi = fi.GetFormField("WebPartControlID"); if (ffi != null) { ffi.DefaultValue = WebPartZoneInstance.GetUniqueWebPartId(wpi.WebPartName, templateInstance); fi.UpdateFormField("WebPartControlID", ffi); } } // Load values from existing webpart LoadDataRowFromWebPart(dr, webPartInstance); // Set a unique WebPartControlID for athe new variant if (IsNewVariant) { // Set control ID dr["WebPartControlID"] = WebPartZoneInstance.GetUniqueWebPartId(wpi.WebPartName, templateInstance); } // Init the form InitForm(form, dr, fi); AddExportLink(); } } }
public void BindData() { if (WebpartId != "") { // Get page info pi = CMSWebPartPropertiesPage.GetPageInfo(AliasPath, PageTemplateId, CultureCode); if (pi == null) { Visible = false; return; } // Get page template info pti = pi.UsedPageTemplateInfo; if (pti != null) { // Get web part instance webPart = pti.GetWebPart(InstanceGUID, WebpartId); if (webPart == null) { CMSPage.EditedObject = null; return; } // Get the web part info WebPartInfo wpi = WebPartInfoProvider.GetBaseWebPart(webPart.WebPartType); if (wpi == null) { return; } // Get webpart properties (XML) string wpProperties = wpi.WebPartProperties; FormInfo fi = PortalFormHelper.GetWebPartFormInfo(wpi.WebPartName + FormHelper.CORE, wpi.WebPartProperties, null, null, false); // Get datarow with required columns DataRow dr = fi.GetDataRow(); // Bind drop down list if (!RequestHelper.IsPostBack()) { DataTable dropTable = new DataTable(); dropTable.Columns.Add("name"); foreach (DataColumn column in dr.Table.Columns) { dropTable.Rows.Add(column.ColumnName); } dropTable.DefaultView.Sort = "name"; drpProperty.DataTextField = "name"; drpProperty.DataValueField = "name"; drpProperty.DataSource = dropTable.DefaultView; drpProperty.DataBind(); } // Bind grid view DataTable table = new DataTable(); table.Columns.Add("LocalProperty"); table.Columns.Add("SourceProperty"); bindings = webPart.Bindings; foreach (DataColumn column in dr.Table.Columns) { string propertyName = column.ColumnName.ToLowerCSafe(); if (bindings.ContainsKey(propertyName)) { WebPartBindingInfo bi = (WebPartBindingInfo)bindings[propertyName]; table.Rows.Add(column.ColumnName, bi.SourceWebPart + "." + bi.SourceProperty); } } gvBinding.DataSource = table; gvBinding.DataBind(); } } }
protected void Page_Load(object sender, EventArgs e) { // Check permissions for web part properties UI CurrentUserInfo currentUser = CMSContext.CurrentUser; if (!currentUser.IsAuthorizedPerUIElement("CMS.Content", "WebPartProperties.Layout")) { RedirectToCMSDeskUIElementAccessDenied("CMS.Content", "WebPartProperties.Layout"); } // Check saved bool saved = false; if (QueryHelper.GetBoolean("saved", false)) { saved = true; lblInfo.Visible = true; lblInfo.Text = GetString("General.ChangesSaved"); } // Init GUI mCheckOut = GetString("WebPartLayout.CheckOut"); mCheckIn = GetString("WebPartLayout.CheckIn"); mUndoCheckOut = GetString("WebPartLayout.DiscardCheckOut"); mSave = GetString("General.Save"); this.imgSave.ImageUrl = GetImageUrl("CMSModules/CMS_Content/EditMenu/Save.png"); this.imgCheckIn.ImageUrl = GetImageUrl("CMSModules/CMS_Content/EditMenu/checkin.png"); this.imgCheckOut.ImageUrl = GetImageUrl("CMSModules/CMS_Content/EditMenu/checkout.png"); this.imgUndoCheckOut.ImageUrl = GetImageUrl("CMSModules/CMS_Content/EditMenu/undocheckout.png"); this.btnUndoCheckOut.OnClientClick = "return confirm(" + ScriptHelper.GetString(GetString("General.ConfirmUndoCheckOut")) + ");"; if (webpartId != "") { // Get pageinfo pi = GetPageInfo(aliasPath, templateId); if (pi == null) { this.lblInfo.Text = GetString("WebPartProperties.WebPartNotFound"); this.pnlFormArea.Visible = false; 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) { this.lblInfo.Text = GetString("WebPartProperties.WebPartNotFound"); this.pnlFormArea.Visible = false; return; } else { if (String.IsNullOrEmpty(LayoutCodeName)) { // Get the current layout name LayoutCodeName = ValidationHelper.GetString(webPart.GetValue("WebPartLayout"), ""); } } WebPartInfo wpi = WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType); if (wpi != null) { // Load the web part information webPartInfo = wpi; bool loaded = false; if (!RequestHelper.IsPostBack()) { pnlMenu.Visible = false; pnlCheckOutInfo.Visible = false; if (LayoutCodeName != "") { WebPartLayoutInfo wpli = WebPartLayoutInfoProvider.GetWebPartLayoutInfo(wpi.WebPartName, LayoutCodeName); if (wpli != null) { if ((LayoutCodeName != "|default|") && (LayoutCodeName != "|new|")) { SetEditedObject(wpli, "WebPartProperties_layout_frameset_frameset.aspx"); } pnlMenu.Visible = true; pnlCheckOutInfo.Visible = true; // Read-only code text area etaCode.ReadOnly = false; etaCSS.ReadOnly = false; // Set checkout panel SetCheckPanel(wpli); etaCode.Text = wpli.WebPartLayoutCode; etaCSS.Text = wpli.WebPartLayoutCSS; 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.StartsWith("~")) { fileName = "~/CMSWebparts/" + fileName; } // Check if filename exist if (!FileHelper.FileExists(fileName)) { lblError.Text = GetString("WebPartProperties.FileNotExist"); lblError.Visible = true; plcContent.Visible = false; } else { // Load default web part layout code etaCode.Text = File.ReadAllText(Server.MapPath(fileName)); // Load default web part CSS etaCSS.Text = wpi.WebPartCSS; } } } } btnOnOK.Click += new EventHandler(btnOnOK_Click); ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "ApplyButton", ScriptHelper.GetScript( "function SetRefresh(refreshpage) { document.getElementById('" + this.hidRefresh.ClientID + "').value = refreshpage; } \n" + "function OnApplyButton(refreshpage) { SetRefresh(refreshpage); " + Page.ClientScript.GetPostBackEventReference(lnkSave, "") + "} \n" + "function OnOKButton(refreshpage) { SetRefresh(refreshpage); " + Page.ClientScript.GetPostBackEventReference(btnOnOK, "") + "} \n" )); if (saved && (LayoutCodeName == "|new|")) { // Refresh menu string query = URLHelper.Url.Query; query = URLHelper.AddParameterToUrl(query, "layoutcodename", webPart.GetValue("WebPartLayout").ToString()); query = URLHelper.AddParameterToUrl(query, "reload", "true"); string scriptText = ScriptHelper.GetScript(@"parent.frames['webpartpropertiesmenu'].location = 'webpartproperties_layout_menu.aspx" + query + "';"); ScriptHelper.RegisterStartupScript(this, typeof(string), "ReloadAfterNewLayout", scriptText); } if (!RequestHelper.IsPostBack()) { InitLayoutForm(); } this.plcCssLink.Visible = String.IsNullOrEmpty(etaCSS.Text.Trim()); this.lnkStyles.Visible = !String.IsNullOrEmpty(LayoutCodeName) && (LayoutCodeName != "|default|"); }
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); }
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(); } }
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); if (pi == null) { this.Visible = false; return; } pti = pi.PageTemplateInfo; 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"), ""); } } } }
/// <summary> /// Init event handler. /// </summary> protected override void OnInit(EventArgs e) { base.OnInit(e); // 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); } // Try to find the web part 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; } } } if (!String.IsNullOrEmpty(WebpartId)) { // Get the page info pi = CMSWebPartPropertiesPage.GetPageInfo(this.AliasPath, this.PageTemplateId); if (pi != null) { // Get template pti = pi.PageTemplateInfo; // Get template instance templateInstance = pti.TemplateInstance; // Parent webpart WebPartInfo parentWpi = null; //Before FormInfo FormInfo beforeFI = null; //After FormInfo FormInfo afterFI = null; // Webpart form info FormInfo fi = null; if (!IsNewWebPart) { if (ZoneVariantID > 0) { // Zone variant WebPartZoneInstance wpzi = pti.GetZone(ZoneId, ZoneVariantID); webPartInstance = wpzi.GetWebPart(InstanceGUID); } else { // Standard zone webPartInstance = pti.GetWebPart(InstanceGUID, WebpartId); } if ((VariantID > 0) && (webPartInstance != null) && (webPartInstance.PartInstanceVariants != null)) { // Check OnlineMarketing permissions. if (CheckPermissions("Read")) { webPartInstance = webPartInstance.FindVariant(VariantID); } else { // Not authorised for OnlineMarketing - Manage. RedirectToInformation(String.Format(GetString("general.permissionresource"), "Read", (VariantMode == VariantModeEnum.ContentPersonalization) ? "CMS.ContentPersonalization" : "CMS.MVTest")); } } if (webPartInstance == null) { lblInfo.Text = GetString("WebPartProperties.WebPartNotFound"); pnlFormArea.Visible = false; return; } wpi = WebPartInfoProvider.GetWebPartInfo(webPartInstance.WebPartType); form.Mode = FormModeEnum.Update; } // Webpart instance hasn't created yet else { wpi = WebPartInfoProvider.GetWebPartInfo(ValidationHelper.GetInteger(WebpartId, 0)); form.Mode = FormModeEnum.Insert; } // Load parent if (wpi != null) { if (wpi.WebPartParentID > 0) { parentWpi = WebPartInfoProvider.GetWebPartInfo(wpi.WebPartParentID); } } // Get the form definition string wpProperties = "<form></form>"; if (wpi != null) { wpProperties = wpi.WebPartProperties; // Use parent webpart if is defined if (parentWpi != null) { wpProperties = parentWpi.WebPartProperties; } // Get before FormInfo if (BeforeFormDefinition == null) { beforeFI = PortalHelper.GetPositionFormInfo((WebPartTypeEnum)wpi.WebPartType, PropertiesPosition.Before); } else { beforeFI = new FormInfo(BeforeFormDefinition); } // Get after FormInfo if (AfterFormDefinition == null) { afterFI = PortalHelper.GetPositionFormInfo((WebPartTypeEnum)wpi.WebPartType, PropertiesPosition.After); } else { afterFI = new FormInfo(AfterFormDefinition); } } // Add 'General' category at the beginning if no one is specified if (!string.IsNullOrEmpty(wpProperties) && (!wpProperties.StartsWith("<form><category", StringComparison.InvariantCultureIgnoreCase))) { wpProperties = wpProperties.Insert(6, "<category name=\"" + GetString("general.general") + "\" />"); } // Get merged web part FormInfo fi = FormHelper.GetWebPartFormInfo(wpi.WebPartName, wpProperties, beforeFI, afterFI, true); // Get datarow with required columns DataRow dr = fi.GetDataRow(); if (IsNewWebPart) { // Load default properties values fi.LoadDefaultValues(dr); // Load overriden system values fi.LoadDefaultValues(dr, wpi.WebPartDefaultValues); // Set control ID FormFieldInfo ffi = fi.GetFormField("WebPartControlID"); if (ffi != null) { ffi.DefaultValue = WebPartZoneInstance.GetUniqueWebPartId(wpi.WebPartName, templateInstance); fi.UpdateFormField("WebPartControlID", ffi); } } // Load values from existing webpart LoadDataRowFromWebPart(dr, webPartInstance); // Set a unique WebPartControlID for athe new variant if (IsNewVariant) { // Set control ID dr["WebPartControlID"] = WebPartZoneInstance.GetUniqueWebPartId(wpi.WebPartName, templateInstance); } // Init the form InitForm(form, dr, fi); AddExportLink(); } } }
protected override void OnInit(EventArgs e) { // Do not check changes DocumentManager.RegisterSaveChangesScript = false; EditForm.OnBeforeSave += EditForm_OnBeforeSave; etaCode.Editor.Language = LanguageEnum.HTML; etaCSS.Editor.Language = LanguageEnum.CSS; wpli = CMSContext.EditedObject as WebPartLayoutInfo; layoutID = QueryHelper.GetInteger("layoutid", 0); isSiteManager = ((CMSContext.CurrentUser.IsGlobalAdministrator && layoutID != 0) || QueryHelper.GetBoolean("sitemanager", false)); isNew = (LayoutCodeName == "|new|"); isDefault = (LayoutCodeName == "|default|") || (!isSiteManager && string.IsNullOrEmpty(LayoutCodeName)); if ((wpli == null) && isSiteManager) { isNew = true; } if (wpli == null) { editMenuElem.ObjectManager.ObjectType = PredefinedObjectType.WEBPARTLAYOUT; } 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) + "; }")); RegisterResizeHeaders(); currentUser = CMSContext.CurrentUser; // Get webpart instance (if edited in CMSDesk) if ((webpartId != "") && !isSiteManager) { // Get pageinfo pi = CMSWebPartPropertiesPage.GetPageInfo(aliasPath, templateId, culture); if (pi == null) { ShowInformation(GetString("WebPartProperties.WebPartNotFound"), null, false); } // Get page template pti = pi.UsedPageTemplateInfo; if ((pti != null) && ((pti.TemplateInstance != null))) { webPart = pti.TemplateInstance.GetWebPart(instanceGuid, zoneVariantId, variantId) ?? pti.GetWebPart(webpartId); } } // If the web part is not found, try webpart ID if (webPart == null) { // Site manager wpi = WebPartInfoProvider.GetWebPartInfo(ValidationHelper.GetInteger(webpartId, 0)); if (wpi == null) { ShowError(GetString("WebPartProperties.WebPartNotFound"), null, null); 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) { if (CMSObjectHelper.UseCheckinCheckout && (!isNew || isSiteManager)) { pnlFormArea.CssClass = "PreviewDefaultContentLarge"; } else { pnlFormArea.CssClass = "PreviewDefaultContent"; } // 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"), null, null); plcContent.Visible = false; } else { // Load default web part layout code etaCode.Text = File.ReadAllText(Server.MapPath(fileName)); // Load default web part CSS etaCSS.Text = wpi.WebPartCSS; startWithFullScreen = false; } } } } if ((wpli == null) && isSiteManager) { pnlFormArea.CssClass += " NewPreviewContent"; var breadcrumbs = new string[2, 3]; breadcrumbs[0, 0] = GetString("WebParts.Layout"); breadcrumbs[0, 1] = ResolveUrl("~/CMSModules/PortalEngine/UI/WebParts/Development/WebPart_Edit_Layout.aspx?webpartid=" + QueryHelper.GetInteger("webpartid", 0)); breadcrumbs[1, 0] = GetString("webparts_layout_newlayout"); editMenuElem.PageTitleBreadcrumbs = breadcrumbs; } 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(); plcCssLink.Visible = string.IsNullOrEmpty(etaCSS.Text.Trim()); base.OnInit(e); }
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.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; // Load layouts if (!RequestHelper.IsPostBack() && (LayoutCodeName != "")) { selectLayout.Value = LayoutCodeName; } // Reload the content page if required if (!RequestHelper.IsPostBack() || QueryHelper.GetBoolean("reload", false)) { LoadContentPage(); } }
/// <summary> /// Init event handler. /// </summary> protected override void OnInit(EventArgs e) { // Do not check changes DocumentManager.RegisterSaveChangesScript = false; EditForm.OnBeforeSave += EditForm_OnBeforeSave; etaCode.Editor.Language = LanguageEnum.HTML; etaCSS.Editor.Language = LanguageEnum.CSS; wpli = CMSContext.EditedObject as WebPartLayoutInfo; layoutID = QueryHelper.GetInteger("layoutid", 0); isSiteManager = ((CMSContext.CurrentUser.IsGlobalAdministrator && layoutID != 0) || QueryHelper.GetBoolean("sitemanager", false)); isNew = (LayoutCodeName == "|new|"); isDefault = (LayoutCodeName == "|default|") || (!isSiteManager && string.IsNullOrEmpty(LayoutCodeName)); if ((wpli == null) && isSiteManager) { isNew = true; } if (wpli == null) { editMenuElem.ObjectManager.ObjectType = PredefinedObjectType.WEBPARTLAYOUT; } 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) + "; }")); RegisterResizeHeaders(); currentUser = CMSContext.CurrentUser; // Get webpart instance (if edited in CMSDesk) if ((webpartId != "") && !isSiteManager) { // Get pageinfo pi = CMSWebPartPropertiesPage.GetPageInfo(aliasPath, templateId, culture); if (pi == null) { ShowInformation(GetString("WebPartProperties.WebPartNotFound"), null, false); } // Get page template pti = pi.UsedPageTemplateInfo; if ((pti != null) && ((pti.TemplateInstance != null))) { webPart = pti.TemplateInstance.GetWebPart(instanceGuid, zoneVariantId, variantId) ?? pti.GetWebPart(webpartId); } } // If the web part is not found, try webpart ID if (webPart == null) { // Site manager wpi = WebPartInfoProvider.GetWebPartInfo(ValidationHelper.GetInteger(webpartId, 0)); if (wpi == null) { ShowError(GetString("WebPartProperties.WebPartNotFound"), null, null); 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) { if (CMSObjectHelper.UseCheckinCheckout && (!isNew || isSiteManager)) { pnlFormArea.CssClass = "PreviewDefaultContentLarge"; } else { pnlFormArea.CssClass = "PreviewDefaultContent"; } // 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"), null, null); plcContent.Visible = false; } else { // Load default web part layout code etaCode.Text = File.ReadAllText(Server.MapPath(fileName)); // Load default web part CSS etaCSS.Text = wpi.WebPartCSS; startWithFullScreen = false; } } } } if ((wpli == null) && isSiteManager) { pnlFormArea.CssClass += " NewPreviewContent"; var breadcrumbs = new string[2, 3]; breadcrumbs[0, 0] = GetString("WebParts.Layout"); breadcrumbs[0, 1] = ResolveUrl("~/CMSModules/PortalEngine/UI/WebParts/Development/WebPart_Edit_Layout.aspx?webpartid=" + QueryHelper.GetInteger("webpartid", 0)); breadcrumbs[1, 0] = GetString("webparts_layout_newlayout"); editMenuElem.PageTitleBreadcrumbs = breadcrumbs; } 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(); plcCssLink.Visible = string.IsNullOrEmpty(etaCSS.Text.Trim()); base.OnInit(e); }
protected void Page_Load(object sender, EventArgs e) { string aliasPath = QueryHelper.GetString("aliaspath", ""); string webpartId = QueryHelper.GetString("webpartid", ""); string zoneId = QueryHelper.GetString("zoneid", ""); Guid webpartGuid = QueryHelper.GetGuid("webpartguid", Guid.Empty); // Get page info PageInfo pi = PageInfoProvider.GetPageInfo(CMSContext.CurrentSiteName, aliasPath, CMSContext.PreferredCultureCode, null, CMSContext.CurrentSite.CombineWithDefaultCulture); if (pi != null) { // Get template PageTemplateInfo pti = pi.UsedPageTemplateInfo; // Get web part WebPartInstance webPart = pti.GetWebPart(webpartGuid, webpartId); if (webPart != null) { StringBuilder sb = new StringBuilder(); Hashtable properties = webPart.Properties; // Get the webpart object WebPartInfo wi = WebPartInfoProvider.GetWebPartInfo(webPart.WebPartType); if (wi != null) { // Add the header sb.Append("Webpart properties (" + wi.WebPartDisplayName + ")" + Environment.NewLine + Environment.NewLine); sb.Append("Alias path: " + aliasPath + Environment.NewLine); sb.Append("Zone ID: " + zoneId + Environment.NewLine + Environment.NewLine); string wpProperties = "<default></default>"; // Get the form info object and load it with the data if (wi.WebPartParentID > 0) { // Load parent properties WebPartInfo wpi = WebPartInfoProvider.GetWebPartInfo(wi.WebPartParentID); if (wpi != null) { wpProperties = wpi.WebPartProperties; } } else { wpProperties = wi.WebPartProperties; } FormInfo fi = new FormInfo(wpProperties); // General properties of webparts string beforeFormDefinition = PortalFormHelper.GetWebPartProperties((WebPartTypeEnum)wi.WebPartType, PropertiesPosition.Before); string afterFormDefinition = PortalFormHelper.GetWebPartProperties((WebPartTypeEnum)wi.WebPartType, PropertiesPosition.After); // General properties before custom if (!String.IsNullOrEmpty(beforeFormDefinition)) { // Load before definition fi = new FormInfo(FormHelper.MergeFormDefinitions(beforeFormDefinition, wpProperties, true)); // Add Default category for first before items sb.Append(Environment.NewLine + "Default" + Environment.NewLine + Environment.NewLine + Environment.NewLine); } // General properties after custom if (!String.IsNullOrEmpty(afterFormDefinition)) { // Load after definition fi = new FormInfo(FormHelper.MergeFormDefinitions(fi.GetXmlDefinition(), afterFormDefinition, true)); } // Generate all properties sb.Append(GetProperties(fi.GetFormElements(true, false), webPart)); // Send the text file to the user to download UTF8Encoding enc = new UTF8Encoding(); byte[] file = enc.GetBytes(sb.ToString()); Response.AddHeader("Content-disposition", "attachment; filename=webpartproperties_" + webPart.ControlID + ".txt"); Response.ContentType = "text/plain"; Response.BinaryWrite(file); RequestHelper.EndResponse(); } } } }